2011-01-27 47 views
10

我該如何做到這一點?成員變量和本地方法變量可以具有相同的名稱嗎?

class Test { 
    private int var1; 

    public Test(int var1) { 
     var1 = var1; //set the member variable to what was passed in 
    } 
} 

我確定有一個非常明顯的答案。它現在只是逃避我。

+0

看看一些不錯的代碼。你會看到這個(`this.x = x`)被setter和構造函數使用。發明一個新名字沒有意義。 – maaartinus 2011-01-27 03:38:36

回答

19

是的,他們可以共享相同的名稱。然而,引用實例變量,你需要使用this前綴:

public Test(int var1) { 
    this.var1 = var1; 
} 
+1

所以「this」通常是可選的?但在這種情況下,我需要它,因爲名稱衝突?我的理解是否正確? – Greg 2011-01-27 03:00:26

+1

@Greg - 確切地說。 – 2011-01-27 03:00:53

2

是的,我們能。但只是「可以」。這不好。

4

是的,你可以,但局部變量將隱藏類變量。

相關問題