不知道大家有沒有遇到下面的這種情況:
class Test {int num = 100;void edit_num(int num) {System.out.println("Local Variable num: " + num);System.out.println("Member Attribute num: " + this.num);}}
edit_num 中的參數 num 與 class 裡的屬性 num 同名
這屬於類別裡的 名稱遮蔽 (Shadowing of Name)
如果在method 裡面修改 num
JAVA 會以 method 裡面的 num 為主
此時如果想要使用 class 裡面的屬性
則必須加上 this 這個關鍵字
簡單的範例讓大家理解:
class_shadowing
大家可以參考一下, 有問題也請大家不吝指教, 謝謝 :)
沒有留言:
張貼留言