java對(duì)象賦值給另一個(gè)對(duì)象 1.說(shuō)明使用變量之前是不是都要先聲明變量。說(shuō)明使用變量之前是不是都要先賦值,為什么?
1.說(shuō)明使用變量之前是不是都要先聲明變量。說(shuō)明使用變量之前是不是都要先賦值,為什么?您可以這樣理解:Java中的所有變量都是“使用前聲明的”;Java中的所有變量都必須有初始值,但如果成員變量沒(méi)有賦值
1.說(shuō)明使用變量之前是不是都要先聲明變量。說(shuō)明使用變量之前是不是都要先賦值,為什么?
您可以這樣理解:
Java中的所有變量都是“使用前聲明的”;
Java中的所有變量都必須有初始值,但如果成員變量沒(méi)有賦值,則會(huì)根據(jù)變量類型為其分配不同的默認(rèn)值,局部變量必須在使用前顯式賦值(也就是說(shuō),您必須自己給它一個(gè)初始值)。
Java中的類,成員變量的值,在聲明的時(shí)候直接賦值與在構(gòu)造函數(shù)中再賦值,這個(gè)是無(wú)所謂的,還是有什么規(guī)矩?
聲明時(shí),無(wú)論是否賦值,不同類型(內(nèi)置和類的基本類型)都有默認(rèn)值。例如,int為0,object為null。因此,如果沒(méi)有特殊的初始賦值,則不需要初始化構(gòu)造函數(shù)中的屬性/換句話說(shuō),如果在對(duì)象創(chuàng)建過(guò)程中沒(méi)有特殊的初始化要求,則不需要編寫默認(rèn)構(gòu)造函數(shù),并且JVM知道如何處理它。
所示的構(gòu)造函數(shù)有自己的用法。它為您提供了在創(chuàng)建對(duì)象時(shí)進(jìn)行自定義和初始化的機(jī)會(huì)。例如,如果您的類中有一個(gè)成員:
private list<member> members;
您想要統(tǒng)一getmembers()的行為,即無(wú)論是否有成員,您都將返回一個(gè)list對(duì)象,而不是null或list<member>,這將給調(diào)用者帶來(lái)麻煩。
然后在構(gòu)造函數(shù)中解決此問(wèn)題,添加一行代碼,例如:這個(gè)。成員=New ArrayList<member>()]即使對(duì)象剛剛是新的,對(duì)其調(diào)用getmembers也不會(huì)返回null。