我有一個(gè)A類,在B類里聲明一個(gè)A類,但我不用 A a=new A();
我就直接申明一個(gè)A的屬性方B類里面,請問這樣有什么區(qū)別?
=========================================
我就直接申明一個(gè)A的屬性方B類里面,請問這樣有什么區(qū)別?
這兩者沒有可比性,樓主的意思很明白
class B {
public A a;
}
與 A a = new A();
前者,a 是 B類的屬性
當(dāng) B b = new B()的時(shí)候,a并沒有分配空間,也就是說
b.a == null is true
除非這樣寫:
class B {
public A a=new A();
}
========================================================
你是說
A a;
和A a=new A();
的區(qū)別吧?
一個(gè) 是創(chuàng)建了A的引用 但沒分配內(nèi)存空間、、
一個(gè)是既分配的引用也創(chuàng)建了內(nèi)存地址 把引用指向該內(nèi)存
========================================================
A a;
//對象的聲明,如果你不new就用a,會(huì)報(bào)空指針異常(NullpointException)
A a=new A();
已經(jīng)在堆里開辟了內(nèi)存。記住:沒有new的對象是不能用的!!!