我是一名Java初学者,努力了解以下变量初始化问题,希望能得到专家的帮助。Java变量值初始化
鉴于从考试代码:
public class SimpleCalc {
public int value;
public void calculate() { value += 7; }
}
和
public class MultiCalc extends SimpleCalc {
public void calculate() { value -= 3; }
public void calculate(int multiplier) {
calculate();
super.calculate();
value *= multiplier;
}
public static void main (String[] args) {
MultiCalc calculator = new MultiCalc();
calculator.calculate(2);
System.out.println(calculator.value);
}
}
我的理解是,这需要抛出一个运行时异常,因为变量“值”永远不会分配给实际的初始值它(public int value;)。但是,代码的工作方式和行为就好像变量“值”被赋值为0(与public int value = 0;相同)。有人可以解释为什么会发生这种情况?非常感谢
非常感谢您的解释,非常感谢。 – 2013-04-23 08:58:34
因为你有其他常量键入我会写'(字节)0'和'(短)0'顺便说一句,彼尔姆将在Java 8中离开;;) – 2013-04-23 09:04:47
@PeterLawrey基本上我从Oracle java轨迹复制表。 :) – PermGenError 2013-04-23 09:05:51