所以我有一个简单的编程问题,我似乎找不到答案。在浏览Google的一些代码时,我注意到他们在代码中将很多方法放在了“this”之前。这样做的目的是什么?相比不使用它有什么好处吗?
一个例子:
this.doMethod();
与:相比:
doMethod();
我确信这是一个简单的答案,我只是想了解我读到的所有代码。
答案 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
表示理智的类对象。