3 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個贊
由于您的Calculator
類只有默認(rèn)構(gòu)造函數(shù)(沒有任何參數(shù)的構(gòu)造函數(shù))和一個僅接受 的構(gòu)造函數(shù)double, double
,因此您無法創(chuàng)建Calculator
提供Carpet
實(shí)例和Floor
實(shí)例的實(shí)例。
所以你有兩個選擇:
將建筑面積和地毯成本傳遞給當(dāng)前建造者。
Calculator calculator = new Calculator(floor.getArea(), carpet.getCost());
更改構(gòu)造函數(shù)以接受一個
Carpet
實(shí)例和一個Floor
實(shí)例(那么您的Calculator
類邏輯也應(yīng)該修改)
public class Calculator {
private Floor floor;
private Carpet carpet;
public Calculator() {
}
public Calculator(Floor floor, Carpet carpet) {
this.carpet=carpet;
this.floor=floor;
}
public double getTotalCost()
{
return (this.floor.getArea() * this.carpet.getCost());
}
}

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個贊
你不能乘以物體。看起來,你想在地板上鋪上地毯,然后得到……什么東西?這不是這樣的,想得更深一點(diǎn)——事實(shí)是你真的想將地毯的平方(更具體地說是平方米的數(shù)量)乘以 1 平方米的成本(貨幣數(shù)量)。當(dāng)您理解這一點(diǎn)時,您應(yīng)該可以輕松地更正您的代碼,因此地板地毯字段并能夠根據(jù)地板面積和地毯成本計算總成本

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個贊
Calculator 類的參數(shù)是(double, double)這樣的,因此它不會接受 Floor 和 Carpet 對象。您可以像這樣調(diào)用構(gòu)造函數(shù):
Calculator calc = new Calculator(carpet.getCost(), floor.getCost());
或者將構(gòu)造函數(shù)更改為以下內(nèi)容:
Calculator (Floor f, Carpet c) {
this.floor = f.getCost();
this.carpet = c.getCost();
}
添加回答
舉報