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();
}
}
Тогда, когда по коду не вполне ясно, что имеется в виду поле или метод именно данного объекта.
Например, если у класса много статических и нестатических свойств, при обращении к нестатическому свойству.
Чем Java отличается от JavaScript
Между Java и JS - разница, как между барабаном и барабанной перепонкой.
Java - язык
подробнее...
абсолютный путь в java
Paths.get(this.getClass().getResource("path").toURI())
Максим
(115833)
подробнее...
Объясните делегирование конструкторов в java! Только начал изучать программирование
По моему тут имеется ввиду super(). Остальные авторы написали какой то несусветный бред.
подробнее...
Объясните как реализовать метод в java.
Apple.applesPrice += applesPrice;
Максим
(115835)
this.applesPrice =
подробнее...
Как импортировать библиотеку в Java?
У javac есть ключик:
-cp path or -classpath path
Specifies where to find user class
подробнее...
Не выводит изображение в JAVA
Замени это
IMG(){
JFrame frame = new JFrame();
подробнее...
объясните зачем метод void в java? как можно проще, я новичек К примеру тут public static void main (string[] args)
- главный метод, без него ничего не запустится
он принимает аргументы/параметры во время
подробнее...
Конструкторы в java
А почему нельзя сделать два конструктора? И метод типа SetID()?
Василий
подробнее...
Какие команды программирование в java сущестуют.
abstract
continue
for
new
switch
assert
default
goto*
подробнее...
В чём различие get и set в Java?
private int value;
public int getVal() {return value;}
public void setVal(int v) {value =
подробнее...