在Java中,“var = 3;”之间有什么区别?和“this.var = 3;”?

时间:2012-12-06 03:46:13

标签: java

this.var的唯一目的是区分可能冲突的外部变量名吗?

4 个答案:

答案 0 :(得分:5)

通常情况下,当你是阴影时会发生这种情况。这是一个阴影的例子。

public class YourClass
{

       private int var;

}

碰巧你有这个方法:

public void yourMethod(int var)
{

       this.var = var; // Shadowing

}

'this.var'碰巧是你的实例变量,并在你的类下面声明。另一方面,在我的例子中,var是一个参数。

答案 1 :(得分:3)

使用this显式指示实例var,而不是构造函数/方法变量或同名参数。

答案 2 :(得分:2)

一个用例是:

如果您的方法/构造函数参数也命名为var并且您想要访问该方法中的实例变量,那么您可能需要明确告诉this.var使用实例变量。

答案 3 :(得分:1)

有时,当您编写构造函数时,作为参数传递的变量的名称可能与您在方法中声明的实例变量具有相同的名称。所以this.var指的是实际的实例变量。