3 回答

TA貢獻1776條經(jīng)驗 獲得超12個贊
您的代碼接近正確 - 無論如何對于初學(xué)者:)
在您接近解決方案的方式上似乎存在輕微的概念性誤解。如果我過于簡單化,或者假設(shè)你知道的比你知道的少,我深表歉意,但過度解釋似乎比解釋不足更好。
先說main()方法。就其本身而言static,這意味著只有其中之一 - 您可以將其視為大老板,控制您的小應(yīng)用程序中發(fā)生的事情。
該main()方法(老板)創(chuàng)建了一個Box,這是“事物”的單個實例。老板知道這件事,并稱他的盒子為a。他將那個盒子添加到一個集合中,這個集合目前只有一個盒子a,但將來可能會有很多個盒子。我相信到目前為止您已經(jīng)了解了所有內(nèi)容,只是將其作為背景提及。
這個Box類可以做一些事情。它知道width,height和depth本身,并且知道如何根據(jù)這些屬性計算volume和price。它也可以print在系統(tǒng)控制臺上代表自己。
在您的main方法中,創(chuàng)建名為的框后,a您想詢問該框的體積是多少。為此,您必須在您感興趣的框?qū)嵗险{(diào)用該volume方法。
因此,您不只是要求任何體積,而是要求 box 的體積a。您可以使用以下語法執(zhí)行此操作:
a.volume();
您不需要向該volume方法傳遞任何內(nèi)容(因此您應(yīng)該double BoxV從volume方法中刪除,因為該volume方法是其Box自身的一部分,因此它已經(jīng)知道所有Box知道的內(nèi)容 - width、height和depth,這就是它所需要的全部內(nèi)容能夠計算體積。
因此,您需要進行一些更改:
該volume方法不需要接受任何參數(shù),應(yīng)該是:
public double volume() {
return width * height * depth;
}
(請注意,您也不需要將其分配給int Boxvolume并且可以刪除該變量 - 或者如果您愿意,可以保留它,完全由您決定)
在您的main方法中完成此操作后,您可以使用以下命令獲取并打印盒子的體積a:
double volume = a.volume();
System.out.println(volume);
如果您想打印列表中所有框的體積(目前只是一個),您可以在for循環(huán)中放入等效代碼,例如:
for (Box bx : boxes) {
bx.print();
double volume = bx.volume();
System.out.println(volume);
}
請注意,這里我們調(diào)用的是bx.volume(),而不是a.volume(),因為在這種情況下,我們對循環(huán)中當前正在考慮的盒子的體積感興趣,而不僅僅是盒子a。

TA貢獻1796條經(jīng)驗 獲得超4個贊
你的代碼根本就錯了。首先,您從實例變量(即a.volume();. 此外,您的數(shù)量和價格方法中不需要雙參數(shù)。價格方法已經(jīng)調(diào)用了成交量并且您沒有在成交量中使用 BV 參數(shù)。
所以正確的版本應(yīng)該是這樣的:
public static void main(String[] args) {
Box a = new Box(20, 30, 40);
ArrayList<Box> boxes = new ArrayList<>();
boxes.add(a);
for (Box bx : boxes) {
bx.print();
System.out.println(bx.volume());
}
}
class Box {
int width;
int height;
int depth;
public Box(int w, int h, int d) {
this.width = w;
this.height = h;
this.depth = d;
}
public double volume() {
int Boxvolume = width * height * depth;
return Boxvolume;
}
public double price() {
double Boxprice = volume() * 5;
return Boxprice;
}
public void print() {
System.out.println(this.width);
System.out.println(this.height);
System.out.println(this.depth);
System.out.println();
}
}
添加回答
舉報