На мой взгляд это :
- одно из пятидесяти ключевых слов Java
- специальная (например, только для чтения) ссылка на текущий объект
Вы можете использовать его в четырех различных контекстах:
- для указания на поля текущего объекта и методы (this.)
- для указания на текущий объект (например, Object object = this;)
- для вызова конструктора в другом конструкторе (this ())
- (квалифицировано this) для указания на внешний объект во внутреннем (не статическом) классе (например, OuterClassName.this.OuterClassField)
Чтобы получить лучшее понимание, вам нужен пример:
class Box {
// Implementing Box(double width = 1, double length = 1, double height = 1):
Box(double width, double length, double height) {
this.width = width; // width is local parameter
this.length = length; // this.length is object's field
this.height = height;
}
Box(double width, double length) {
// no statements here allowed
this(width, length, 1);
// you can call at most one constructor (recursion not allowed)
}
Box(double width) {
this(width, 1, 1);
}
Box() {
this(1, 1, 1);
System.out.println("I am default constructor");
}
public double getWidth() {
return this.width; // explicit way (width means the same)
// return Box.this.width; // full-explicit way
}
public void showWidth() {
System.out.println(this.getWidth());
}
public void showWidthAlternate() {
Box box = this; // the same as explicitly Box box = Box.this;
// this = box; // can't touch me (read-only reference)
System.out.println(box.width);
}
private double width, length, height;
}
Дополнительная информация: