看板 java 關於我們 聯絡資訊
※ 引述《[email protected] (.)》之銘言: > 那請問一小段程式.... > final Worker w = new Worker(40); > w.setHours(60); > 這樣裡面的值會改變嗎??? > ※ 引述《[email protected] (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