简单的Java(关于继承)

时间:2014-04-29 19:55:25

标签: java inheritance

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;
  }

我错过了什么吗?我觉得我错过了一些其他必要的实例方法?你觉得怎么样?

2 个答案:

答案 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()

还要确保在适用的情况下有获取/设置。