我有一个A类,在B类里声明一个A类,但我不用 A a=new A();
我就直接申明一个A的属性方B类里面,请问这样有什么区别?
=========================================
我就直接申明一个A的属性方B类里面,请问这样有什么区别?
这两者没有可比性,楼主的意思很明白
class B {
public A a;
}
与 A a = new A();
前者,a 是 B类的属性
当 B b = new B()的时候,a并没有分配空间,也就是说
b.a == null is true
除非这样写:
class B {
public A a=new A();
}
========================================================
你是说
A a;
和A a=new A();
的区别吧?
一个 是创建了A的引用 但没分配内存空间、、
一个是既分配的引用也创建了内存地址 把引用指向该内存
========================================================
A a;
//对象的声明,如果你不new就用a,会报空指针异常(NullpointException)
A a=new A();
已经在堆里开辟了内存。记住:没有new的对象是不能用的!!!