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