我有一個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的對象是不能用的!!!