package arunjava;
public class sample3 {
public static void main(String[] args) {
Box25 b1 = new Box25();
Box25 b2 = new Box25();
b1.Dimension(25, 32, 65);
b2.Dimension(25, 45, 62);
System.out.println("volume is" + b1.volume());
System.out.println("volume is" + b2.volume());
b1.Dimension(4, 6, 8);
b2.Dimension(6, 8, 4);
System.out.println("volume is" + b1.vol());
System.out.println("volume is" + b2.vol());
}
}
class Box25 {
double height, width, depth;
int height1, width1, depth1;
public void Dimension(double height, double width, double depth) {
this.height = height;
this.width = width;
this.depth = depth;
}
public void Dimension(int height1, int width1, int depth1) {
this.height1 = height1;
this.width1 = width1;
this.depth1 = depth1;
}
double volume() {
return height * depth * width;
}
int vol() {
return height1 * depth1 * width1;
}
}
我在我的Java教程中創建了上述程序。問題是我無法計算具有雙數據類型的盒子的音量。運行時重載的方法解析以及類型提升如何工作?
程序結果顯示如下:
volume is0.0
volume is0.0
volume is192
volume is192
其次,我感到困惑的方法重載的Java的概念,因爲我知道,在方法重載,我們可以使用相同的方法名與不同的參數,但如我創建了卷方法,我不得不修改方法的名稱(volume,vol),以便重載卷方法並獲得答案。這是爲什麼?
重載'volume()' - *因爲我知道在方法重載時,我們可以使用相同的方法名稱與不同的參數* - 關鍵詞是參數,您不能通過更改它們的返回來重載方法類型。 –
原因很明顯:您將整數傳遞給構造函數,所以double值從不設置。他們總是零。 – duffymo