java this



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();
}
}

Ответ от [гуру]
Тогда, когда по коду не вполне ясно, что имеется в виду поле или метод именно данного объекта.
Например, если у класса много статических и нестатических свойств, при обращении к нестатическому свойству.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Когда и зачем в java нужно использовать this. ?
Java на Википедии
Посмотрите статью на википедии про Java
Петушков Роман Александрович на Википедии
Посмотрите статью на википедии про Петушков Роман Александрович
Суперкласс программирование на Википедии
Посмотрите статью на википедии про Суперкласс программирование
Тамбовская областная универсальная научная библиотека имени А С Пушкина на Википедии
Посмотрите статью на википедии про Тамбовская областная универсальная научная библиотека имени А С Пушкина
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*