2013年8月4日 星期日

【JAVA】類別中的名稱遮蔽 JAVA Shadowing of Name in class

在撰寫 class 的時候

不知道大家有沒有遇到下面的這種情況:

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

大家可以參考一下, 有問題也請大家不吝指教, 謝謝 :)

沒有留言:

張貼留言