這是我寫的一段代碼。Java變量初始化
public class cube {
private int length;
private int breadth;
private int height;
private int volume;
private int density;
private int weight;
public cube(int l,int b,int h, int d) {
length=l;
breadth=b;
height=h;
density=d;
}
public void volmeShow(){
volume = length * breadth * height;
System.out.println("The Volume of the cube is "+this.volume);
}
}
所以,如果我實現上面的立方體類這樣的,
public class cubeApp {
public static void main(String[] args){
cube mycube = new cube(5,6,9,2);
mycube.volumeShow();
}
}
我得到告訴我,體積的輸出爲270
但我得到的輸出音量說:另一方面,如果我定義像這樣的體積變量:
public class cube {
private int length;
private int breadth;
private int height;
private int volume=length*breadth*height;
private int density;
private int weight;
public cube(int l,int b,int h, int d) {
length=l;
breadth=b;
height=h;
density=d;
}
public void volmeShow(){
System.out.println("The Volume of the cube is " + this.volume);
}
}
爲什麼會發生這種情況?
感謝您的答案,但我只是想知道爲什麼這些變量的值改變時,我用構造函數實現類?我的意思是一旦我實現構造函數創建一個新的「立方體」類與我已經提供的值,爲什麼不是這個新的類創建與我提供的值的默認變量值,爲什麼值仍然從類的初始化? –
您正在正確初始化變量,卷除外。所以「長度」,「寬度」,「高度」和「密度」都將被正確計算。但'volume'不會是因爲計算'volume = length * widthth * height;'在這些變量被初始化之前執行,因此'volume'爲什麼是零。 – jonny2k9
明白了!謝謝! –