Кроме того, сделайте свои поля окончательными, если они абсолютно не могут быть. Есть несколько причин (кроме этой), чтобы сделать это.
я напишу следующий класс:
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
обязательно?