2011-01-27 35 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

是的,你可以,但局部变量将隐藏类变量。

相关问题