Re: 請問final的實際用法

看板java作者時間20年前 (2004/06/19 00:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《gtk.bbs@bbs.im.cyut.edu.tw (.)》之銘言: > 那請問一小段程式.... > final Worker w = new Worker(40); > w.setHours(60); > 這樣裡面的值會改變嗎??? > ※ 引述《kvjo.bbs@zoo.badcow.com.tw (kvjo)》之銘言: > > 那 你的意思是說 > > final clas 下的成員本來就有final屬性了 > > 你如果還要再加final去修飾成員 > > 是多此一舉 試試不就知道了嗎? 答案是: 會改變的. Java 沒有像 C/C++ 的 const 的機制. 宣告一個 final variable 指的是它的值不會再改變. 記得宣告 Worker w; 中的 w 是什麼東西嗎? w *不是* Worker 的 object instance, 它只是一個 *object reference* 一個 object refernce 的所謂 不能改變 是指它不能再指向別的 object instance. (懂 C++ 的人, 用 C++ 的比喻就是 Worker * const w; ) 而不是指著的 object instance 不能改變 (C++ 中的 const Worker* w;) Java 沒有這種機制. Alien -- ┌─────程式設計樂園─────┐  ̄ ▌ ̄ ╲╱ BBS 城邦 CSZone.kkcity.com.tw ╴ ▌ ▌ ▏ KK免費撥接 └──From:202.72.0.45 ──┘ 電話:449-1999 帳號:kkcity 密碼:kkcity
文章代碼(AID): #10qna400 (java)
文章代碼(AID): #10qna400 (java)