This в java
Автор Ксения Андреева задал вопрос в разделе Другие языки и технологии
Когда и зачем в java нужно использовать this. ? и получил лучший ответ
Ответ от Ra[гуру]
В перечисленных ниже случаях без this не обойтись.
При необходимости обращаться к полям класса, если в этом же блоке кода имеются локальные переменные с теми же самыми именами, как и у полей класса:
public class Pair {
private int first;
private int second;
public Pair(int first, int second) {
// здесь локальные переменные first, second имеют те же имена, что и поля класса,
// для доступа к полю используем this
this.first = first; this.second = second;
}
}
this используется для вложенных вызовов конструкторов классов:
public class Pair {
private int first;
private int second;
// первый конструктор с аргументами
public Pair(int first, int second) { this.first = first; this.second = second; }
public Pair() {
// второй конструктор без аргументов вызывает конструктор с аргументами,
// определенный ранее, используя ключевое слово this
this(0, 0);
}
}
Для обращения к полям или методам из внутреннего класса к полям или методам обрамляющего класса имеющим такие же имена, как и у внутреннего:
public class OuterClass {
private int value;
class InnerClass { // внутренний класс
private int value;
InnerClass() { value = 1; }
public void someMethod() {
System.out.println(value); // обращение к полю внутреннего класса
System.out.println(OuterClass.this.value); // обращение к полю обрамляющего класса
}
}
private InnerClass inner;
public OuterClass() {
value = 2;
inner = new InnerClass();
}
public void someMethod() {
inner.someMethod();
}
}
Тогда, когда по коду не вполне ясно, что имеется в виду поле или метод именно данного объекта.
Например, если у класса много статических и нестатических свойств, при обращении к нестатическому свойству.