При исследовании another question, я с удивлением обнаружил, что следующий код Java компилируется без ошибок:Использование this.var во время инициализации Var в
public class Clazz {
int var = this.var + 1;
}
В моей JDK6, var
инициализируется в 1
.
Имеет ли вышеуказанный код хорошо определенную семантику, или его поведение не определено? Если вы говорите, что это четко определено, процитируйте соответствующие части JLS.
Что здесь не так? –
@Sudhanshu: 'var' используется для инициализации' var'. – NPE
Во-первых, this.var = 0, то вы добавите его на 1, тогда это станет 1 –