Другие языки программирования и технологии

Когда и зачем в java нужно использовать this. ?

В перечисленных ниже случаях без 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();
}
}
Руслан Валиев
Руслан Валиев
72 760
Лучший ответ
Илхомжон Иброхимов Ага, всё понятно...
Тогда, когда по коду не вполне ясно, что имеется в виду поле или метод именно данного объекта.
Например, если у класса много статических и нестатических свойств, при обращении к нестатическому свойству.