定义A a;只是给了a一个空的引用,并没有为a分配内存空间,a未被初始化,所以不能调用A的方法.定义成A a=new A();以为a分配了内存空间,可以调用A的方法,new 为a分配了内存空间.
定义好比说有一个名字叫做a 的产品如芯片名,我们并不知道它是已生产的老芯片,还是刚刚生产出来,抑或是未生产的芯片。
A a=new A();则表示a为新成员,
A b=new A();
A a;
a=b;
这个a就是老成员啦
定义成A a=new A()是实例化;
定义成A a并没有实例化.
如果你想调用A里的方法(具体哪个类型的要看类的位置,可以了解一下public,private,protected的区别),你就一定要先实例化一个A,再用这个实例去调用.
如:A里定义个public String getName() 方法,你就可以在B类里这么写:
A a = new A();
String name = a.getName();
这样说懂了吗?