请问各位高手,
public class Testfloat
{
   float i;
   Testfloat a = new Testfloat();
   Testfloat b = new Testfloat();
   public static void main(String[] args)
   {
      
         a.i = 9.99f;
         b.i = 99.99f;
         System.out.println("a = "+ a.i+"b ="+b.i);
         
         a = b;
         a.i = 21.99f;
         System.out.println("a = "+ a.i+"b ="+b.i);
   }
}
为什么实例化一定要放入Mainframe里面?放在外面就不行?

解决方案 »

  1.   

    Testfloat a = new Testfloat();
    Testfloat b = new Testfloat();改为static Testfloat a = new Testfloat();
    static  Testfloat b = new Testfloat();
      

  2.   

    静态变量、静态函数与类定义一样都是存放在静态区的。这个问题实质上是关于内存区域划分的问题,不是一两句话说得清的。LZ最好先记住,这方面的知识是需要一定的底层知识作为基础的。如果不好记的话,LZ可以记住OOP概念上的定义:
    在标准的OOP模型中是不存在静态变量与函数的,用static修饰的叫做“类属性”与“类方法”。与之对应的没有static修饰的叫做实例属性与方法。从名字上可以看出,类属性与方法是与类定义在一起的,而在类型的定义中是没有实例属性与方法的(它们只是在实例化时为每个实例生成一份)。因此,在类方法里调用不属于类定义的实例对象在概念上是行不通的。