Если я напишу следующий класс:
public class Example {
int j;
int k;
public Example(int j, int k) {
j = j;
k = k;
}
public static void main(String[] args) {
Example exm = new Example(1,2);
System.out.println(exm.j);
System.out.println(exm.k);
}
}
Программа компилируется, но когда я запускаю ее, метод main выводит два 0. Я знаю, что для того, чтобы сказать, что я хочу инициализировать переменные экземпляра в конструкторе, мне нужно написать:
this.j = j;
this.k = k;
Но если я не пишу это, то какая переменная вычисляется (или учитывается) в конструкторе (слева и со стороны записи выражений)? Это аргумент или переменная экземпляра? Это имеет значение?
Существуют ли другие случаи, когда использование this
обязательно?