Вы должны понимать два модификатора переменной temp
:
static
означает, что делает эту переменную class , поэтому, когда вы делаете присваивание в конструкторе объектов, это не член объекта, а класс. При создании t2
вы делаете второе присвоение единственной переменной класса (не переменной-члену объекта).
final
означает, что переменной может быть присвоено значение только один раз, и поэтому присвоение в конструкции t2
завершается неудачей.
Намереваетесь ли вы, чтобы temp
было полем члена объекта? Затем удалите static
.
Если вы намереваетесь, чтобы temp
была переменной класса, которая была переназначена? Затем удалите final
.