每種編程語言都有自己的數據處理方式
有些時候
程序員必須時刻留意准備處理的是什麼類型
您曾利用一些特殊語法直接操作過對象
或處理過一些間接表示的對象嗎(C或C++裡的指針)?
所有這些在Java裡都得到了簡化
任何東西都可看作對象
因此
我們可采用一種統一的語法
任何地方均可照搬不誤
但要注意
盡管將一切都
看作
對象
但操縱的標識符實際是指向一個對象的
句柄
(Handle)
在其他Java參考書裡
還可看到有的人將其稱作一個
引用
甚至一個
指針
可將這一情形想象成用遙控板(句柄)操縱電視機(對象)
只要握住這個遙控板
就相當於掌握了與電視機連接的通道
但一旦需要
換頻道
或者
關小聲音
我們實際操縱的是遙控板(句柄)
再由遙控板自己操縱電視機(對象)
如果要在房間裡四處走走
並想保持對電視機的控制
那麼手上拿著的是遙控板
而非電視機
此外
即使沒有電視機
遙控板亦可獨立存在
也就是說
只是由於擁有一個句柄
並不表示必須有一個對象同它連接
所以如果想容納一個詞或句子
可創建一個String句柄
String s;
但這裡創建的只是句柄
並不是對象
若此時向s發送一條消息
就會獲得一個錯誤(運行期)
這是由於s實際並未與任何東西連接(即
沒有電視機
)
因此
一種更安全的做法是
創建一個句柄時
記住無論如何都進行初始化
String s =
asdf
;
然而
這裡采用的是一種特殊類型
字串可用加引號的文字初始化
通常
必須為對象使用一種更通用的初始化類型
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25945.html