我是一名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