MovingVan对象应具有与Truck对象相同的所有状态和行为。此外,它应该保持跟踪的额外状态: 从地面到货物区域的距离(正整数) 是否有斜坡(真或假) 当打印MovingVan对象时,它应显示其容量,到货物区域的距离以及是否有斜坡。例如:
capacity = 10000, distance to cargo = 5, has a ramp
您的班级定义应包括以下内容:
1)编写一个构造函数,该构造函数将make,model,year,wheel数和到货物区域的距离作为参数,以及一个布尔值,指示移动货车是否有坡道。构造函数应该确保对象没有处于无效状态,并且它应该采取初始化对象所需的任何步骤。
2)任何必要的实例方法。您应该假设到货物区域的距离和坡道的存在与否将永远不会改变,因此这些区域不需要改变方法。
这是我到目前为止所拥有的。对于1号,我有:
public MovingVan(String make, String model, int year, int numWheels,
int distance, boolean hasRamp) {
super(make, model, year, numWheels);
if (distance <= 0) {
throw new IllegalArgumentException();
}
this.distance = distance;
this.hasRamp = hasRamp;
}
我遇到2号问题;这就是我到目前为止所做的:
public int getDistance() {
return distance;
}
public boolean hasRamp() {
return hasRamp;
}
我错过了什么吗?我觉得我错过了一些其他必要的实例方法?你觉得怎么样?
答案 0 :(得分:0)
More of a comment that an answer, but I needed the extra space
不错,但根据你的老师POV,你可能会失踪
1)getCapacity()
metod(你必须打印)。
2)或toString()
的实现,其中数据形成为人类可读的字符串。
无论如何,有一个&#34; getter&#34;构造函数中传递的每个属性的getX()
方法。
在一个小注释中,返回布尔值的getter方法通常以is
开头(事实上,如果你想把你的类称为bean,它必须)。 isRamp()
听起来很奇怪,也许是isRampIncorporated()
?
此外,由于distance
是现实世界中可能经常更改的值,因此我会添加setDistance
方法。
答案 1 :(得分:0)
当打印MovingVan对象时,它应显示其容量,与货物区域的距离以及是否有斜坡。例如:capacity = 10000,货物距离= 5,有一个斜坡
@Override public String toString() {
return "capacity = " + capacity /*or getCapacity()? I can't tell*/ + ", distance to cargo = " + distance + (hasRamp)?", has a ramp":", does not have a ramp";
}
不确定其他任何事情,但听起来像是他希望你覆盖toString()
还要确保在适用的情况下有获取/设置。