在调用方法之前使用'this'。

时间:2012-12-23 15:13:58

标签: java methods

所以我有一个简单的编程问题,我似乎找不到答案。在浏览Google的一些代码时,我注意到他们在代码中将很多方法放在了“this”之前。这样做的目的是什么?相比不使用它有什么好处吗?

一个例子:

this.doMethod();

与:相比:

doMethod();

我确信这是一个简单的答案,我只是想了解我读到的所有代码。

3 个答案:

答案 0 :(得分:5)

不,它对方法调用没有任何影响。使用你认为更具可读性的那些。

请注意,在消除实例变量和参数(或其他局部变量)之间的歧义时, 会产生影响。例如:

public void setFoo(int foo) {
    this.foo = foo;
}

从参数中分配实例变量一个值 - 只需使用foo = foo;就可以了。

答案 1 :(得分:3)

它们之间没有任何区别。你总是在一些参考上调用一个方法。如果您不使用任何引用,则this引用是隐含的。

因此,doMethod()this.doMethod()相同。使用this,您只需明确说明。

需要明确使用this引用的地方是将method / constructor参数的值赋给实例变量的位置,并且两者具有相同的名称,如下例所示: / p>

public Demo(int var) {  // Constructor
    this.var = var;
}

因此,在上面的示例中,this.var引用实例变量,与var不同,后者引用构造函数参数。

答案 2 :(得分:3)

this表示当前类的对象实例。 在编程实践中,大多数情况下,它用于打破歧义。,例如例如,有一个名为name的类变量和名为named的方法参数,因此用于区分两者。

     public void setName(String name){
         this.name= name;
     }

如果你没有任何歧义,那么它就不会产生很大的不同,即setName("John");this.setName("John");是一回事。但仍有一点不同。 this.setName("John");遵循与调用对象上的方法相同的模式(例如emp.setName("A");); 此处this表示理智的类对象。