The this keyword is primarily used in three situations. The first and most common is in setter methods to disambiguate variable references. The second is when there is a need to pass the current class instance as an argument to a method of another object. The third is as a way to call alternate constructors from within a constructor.
In Java setter methods, we commonly pass in an argument with the same name as the private member variable we are attempting to set. We then assign the argument x to this.x. This makes it clear that you are assigning the value of the parameter “name” to the instance variable “name”.
public class Foo{private String name;public void setName(String name) {this.name = name;}}
public class Foo{public String useBarMethod() {Bar theBar = new Bar();return theBar.barMethod(this);}public String getName() {return "Foo";}}public class Bar{public void barMethod(Foo obj) {obj.getName();}}
When you have multiple constructors for a single class, you can use this(arg0, arg1, …) to call another constructor of your choosing, provided you do so in the first line of your constructor.
class Foo{public Foo() {this("Some default value for bar");//optional other lines}public Foo(String bar) {// Do something with bar}}
I have also seen this used to emphasize the fact that an instance variable is being referenced (sans the need for disambiguation), but that is a rare case in my opinion.
Source : https://stackoverflow.com/a/2411283/5231773
Quick Links
Legal Stuff
Social Media