在定義類時,只是通知編譯器需要準(zhǔn)備多大的內(nèi)存空間,并沒有為它分配內(nèi)存空間。只有用類創(chuàng)建了對象后,才會真正占用內(nèi)存空間。
1. 聲明對象
對象的聲明和基本類型的數(shù)據(jù)聲明在形式上是一樣的:
類名 對象名;
對象名也是用戶標(biāo)識符,和基本類型的變量遵循同樣的命名規(guī)則和使用規(guī)則。
聲明一個變量,并不會分配一個完整的對象所需要的內(nèi)存空間,只是將對象名所代表的變量看成是一個引用變量,并為它分配所需內(nèi)存空間,它所占用的空間遠(yuǎn)遠(yuǎn)小于一個類的對象所需要的空間。
如此處理,使得Java中聲明一個對象的消耗很小,但也有一個副作用,就是對象不能馬上使用,還需要對它進(jìn)行實例化。
2. 實例化對象
用new關(guān)鍵字創(chuàng)建一個新對象,即進(jìn)行實例化。格式如下:
new構(gòu)造方法([參數(shù)列表])
實例化的過程就是為對象分配內(nèi)存空間的過程,此時,對象才成為類的實例。new所執(zhí)行的具體操作是調(diào)用相應(yīng)類中的構(gòu)造方法(包括祖先類的構(gòu)造方法),來完成內(nèi)存分配以及變量的初始化工作,然后將分配的內(nèi)存地址返回給所定義的變量。
實質(zhì):實例化了就有自己內(nèi)存空間。而沒有實例化就和引用的對象內(nèi)存空間地址相同,指向同一個空間。
人是一個類;比如你叫張偉,就是人實例化出來的一個對象。有人類的一切特征。