JAVA句柄解释
【用句柄操作對象】
每種編程語言都有自己的數(shù)據(jù)處理方式。有些時(shí)候,程序員必須時(shí)刻留意準(zhǔn)備處理的是什么類型。您曾利用一些特殊語法直接操作過對象,或處理過一些 間接表示的對象嗎(C 或C++里的指針)?所有這些在Java 里都得到了簡化,任何東西都可看作對象。注意,盡管將一切都“看作”對象,但操縱的標(biāo)識符實(shí)際是指向一個(gè)對象的“句柄”(Handle)。還可看到有的人 將其稱作一個(gè)“引用”,甚至一個(gè)“指針”。可將這一情形想象成用遙控板(句柄)操縱電視機(jī)(對象)。只要握住這個(gè)遙控板,就相當(dāng)于掌握了與電視機(jī)連接的通 道。但一旦需要“換頻道”或者“關(guān)小聲音”,我們實(shí)際操縱的是遙控板(句柄),再由遙控板自己操縱電視機(jī)(對象)。如果要在房間里四處走走,并想保持對電 視機(jī)的控制,那么手上拿著的是遙控板,而非電視機(jī)。此外,即使沒有電視機(jī),遙控板亦可獨(dú)立存在。也就是說,只是由于擁有一個(gè)句柄,并不表示必須有一個(gè)對象 同它連接。所以如果想容納一個(gè)詞或句子,可創(chuàng)建一個(gè)String 句柄:String s;但這里創(chuàng)建的只是句柄,并不是對象。若此時(shí)向s 發(fā)送一條消息,就會(huì)獲得一個(gè)錯(cuò)誤(運(yùn)行期)。這是由于s 實(shí)際并未與任何東西連接(即“沒有電視機(jī)”)。因此,一種更安全的做法是:創(chuàng)建一個(gè)句柄時(shí),記住無論如何都進(jìn)行初始化:String s = "asdf";然而,這里采用的是一種特殊類型:字串可用加引號的文字初始化。通常,必須為對象使用一種更通用的初始化類型。
轉(zhuǎn)載于:https://www.cnblogs.com/kakusousou/p/4001521.html
總結(jié)
- 上一篇: 【DFS】 HDU 3298 Conte
- 下一篇: Pycharm 配置autopep8到菜