3 回答
TA贡献2036条经验 获得超8个赞
由于您的Calculator
类只有默认构造函数(没有任何参数的构造函数)和一个仅接受 的构造函数double, double
,因此您无法创建Calculator
提供Carpet
实例和Floor
实例的实例。
所以你有两个选择:
将建筑面积和地毯成本传递给当前建造者。
Calculator calculator = new Calculator(floor.getArea(), carpet.getCost());
更改构造函数以接受一个
Carpet
实例和一个Floor
实例(那么您的Calculator
类逻辑也应该修改)
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贡献1828条经验 获得超6个赞
你不能乘以物体。看起来,你想在地板上铺上地毯,然后得到……什么东西?这不是这样的,想得更深一点——事实是你真的想将地毯的平方(更具体地说是平方米的数量)乘以 1 平方米的成本(货币数量)。当您理解这一点时,您应该可以轻松地更正您的代码,因此地板地毯字段并能够根据地板面积和地毯成本计算总成本
TA贡献1847条经验 获得超11个赞
Calculator 类的参数是(double, double)这样的,因此它不会接受 Floor 和 Carpet 对象。您可以像这样调用构造函数:
Calculator calc = new Calculator(carpet.getCost(), floor.getCost());
或者将构造函数更改为以下内容:
Calculator (Floor f, Carpet c) {
this.floor = f.getCost();
this.carpet = c.getCost();
}
添加回答
举报