我有一個A類,在B類里聲明一個A類,但我不用 A a=new A();
我就直接申明一個A的屬性方B類里面,請問這樣有什么區(qū)別?
=========================================
我就直接申明一個A的屬性方B類里面,請問這樣有什么區(qū)別?
這兩者沒有可比性,樓主的意思很明白
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();
的區(qū)別吧?
一個 是創(chuàng)建了A的引用 但沒分配內(nèi)存空間、、
一個是既分配的引用也創(chuàng)建了內(nèi)存地址 把引用指向該內(nèi)存
========================================================
A a;
//對象的聲明,如果你不new就用a,會報空指針異常(NullpointException)
A a=new A();
已經(jīng)在堆里開辟了內(nèi)存。記?。簺]有new的對象是不能用的!??!