對象的三個特征:
對象的行為:這個對象能做什么,也就是能完成什么樣的功能。比如自行車可以載我們想去的地方,節(jié)省體力。
對象的狀態(tài):當通過一個操縱對象的方法時,對象所保持的一種包含特定的屬性的狀態(tài)。比如我們可以通過扭轉車頭,使自行車拐彎;剎車時,可以讓自行車減速或停下來。
對象的標識符:可以通過標識符,區(qū)別具有相同行為或類似狀態(tài)的對象。說到自行車,可以有很多種樣子的,很多生產(chǎn)廠家的,都可以說是自行車,可以根據(jù)顏色,生產(chǎn)廠家等等與其它的自行車區(qū)分。
對象的句柄
對象的句柄:操縱對象的標識符,它是指向一個對象的句柄。根據(jù)前面對變量的定義,變量名是內存地址(棧)的一個別名,對于基本類型來講,它的值就是存放在這個內存地址的空間內,對于對象類型來講,它的值是一個指向實際對象的一個地址(堆),而真正的對象是存放于堆中,我們就可以理解為:這就是一個對象的句柄。
例如:String str;
這里只擁有了一個對象句柄,句柄(str)并沒有與任何對象內容相關聯(lián)。操縱句柄str時,并向它發(fā)送一條消息,這時系統(tǒng)會提示錯誤。所以在創(chuàng)建對象句柄時,一定不要忘記將句柄與實際的對象內容相關聯(lián)(也就是對象變量的初始化)。
對象變量的初始化
對象變量的初始化是通過new關鍵字來完成對象的創(chuàng)建過程。它是向內存堆中申請一個空間,將這個對象內容放到這里,然后將內容與對象句柄(存在于棧中)關聯(lián)起來。
例如:String str = new String( “ Hello ” );