継承したクラスを作成し、表示する

継承したクラスを作成し、表示する

練習問題1

下記のCarクラスを継承したTruckクラスを作成し、実行画面のように表示させる。

 

トラックに関するTruckクラスの構成

  • private int amountMax→トラックの最大積載量(kg)
  • private int amount→トラックの積載量(kg)。 amountMaxを超えないようにする。
  • public Truck(int aMax, double fRatio, double fMax)→コンストラクタ。aMaxは最大積載量。 fRatioは燃費。fMaxは燃料の最大量。これらに渡された値を各フィールド変数にセットする。
  • public void loadGoods(int a)→トラックい新たに重さa(kg)の荷物を積む。
  • public void unloadGoods(int a)→トラックからa(kg)の荷物を下ろす。引数がない場合は、すべての荷物を下ろすようにメソッドをオーバーロードしておく。
  • public void displayAmount()→現在の荷物の積載量を画面に表示する。

     

    Carクラス

    class Car

    {
    private double fuelRest;
    private double fuelRatio;
    private double fuelMax;
    public Car(double fRest, double fRatio, double fMax)
    {
    fuelRest = fRest;
    fuelRatio = fRatio;
    fuelMax = fMax;
    if(fuelMax < 0){
    fuelMax = 0;
    }
    if(fuelRest > fuelMax){
    fuelRest = fuelMax;
    }
    if(fuelRatio < 0){

    fuelRatio = 0;
    }
    }
    public Car(double fRatio, double fMax)
    {
    fuelRest = 0.0;
    fuelRatio = fRatio;
    fuelMax = fMax;
    if(fuelMax < 0){
    fuelMax = 0;
    }
    if(fuelRatio < 0){
    fuelRatio = 0;
    }
    }

     

    public void displayFuel()
    {
    System.out.println("現在の燃料は " + fuelRest + " リットルです");
    }
    public void addFuel(double fuel)
    {
    fuelRest += fuel;
    if(fuelRest > fuelMax){
    fuelRest = fuelMax;
    }
    }

     

    public void run(double distance)
    {
    fuelRest = fuelRest - distance / fuelRatio;
    if(fuelRest < 0){
    fuelRest = 0;
    }
    }
    public void addFuel()
    {
    fuelRest = fuelMax;
    }

     

    }

     

     

    実行画面

    40リットル給油します。

    現在の燃料は40.0リットルです。
    210キロ走行します。
    現在の燃料は、20.0リットルです。
    1000キロの荷物を積みます。
    現在の積載量は1000キロです。
    荷物を全て降ろします。
    現在の積載量は0キロです。

  • 解答例

    class Car

    {
    private double fuelRest;
    private double fuelRatio;
    private double fuelMax;
    public Car(double fRest, double fRatio, double fMax)
    {
    fuelRest = fRest;
    fuelRatio = fRatio;
    fuelMax = fMax;
    if(fuelMax < 0){
    fuelMax = 0;
    }
    if(fuelRest > fuelMax){
    fuelRest = fuelMax;
    }
    if(fuelRatio < 0){

    fuelRatio = 0;
    }
    }
    public Car(double fRatio, double fMax)
    {
    fuelRest = 0.0;
    fuelRatio = fRatio;
    fuelMax = fMax;
    if(fuelMax < 0){
    fuelMax = 0;
    }
    if(fuelRatio < 0){
    fuelRatio = 0;
    }
    }

     

    public void displayFuel()
    {
    System.out.println("現在の燃料は " + fuelRest + " リットルです");
    }
    public void addFuel(double fuel)
    {
    fuelRest += fuel;
    if(fuelRest > fuelMax){
    fuelRest = fuelMax;
    }
    }

     

    public void run(double distance)
    {
    fuelRest = fuelRest - distance / fuelRatio;
    if(fuelRest < 0){
    fuelRest = 0;
    }
    }
    public void addFuel()
    {
    fuelRest = fuelMax;
    }

     

    }

     

    class Truck extends Car

    {
    private int amountMax;
    private int amount;
    public Truck(int aMax, double fRatio, double fMax)
    {
    super( fRatio, fMax );
    amountMax = aMax;
    if(amountMax < 0){
    amountMax = 0;
    }
    }
    public void loadGoods(int a)
    {
    amount += a;
    if(amount > amountMax){
    amount = amountMax;

    }
    }
    public void unloadGoods(int a)
    {
    amount -= a;
    if(amount < 0){
    amount = 0;
    }
    }
    public void unloadGoods()
    {
    amount = 0;
    }
    public void displayAmount()
    {
    System.out.println("現在の積載量は " + amount + " キロです。");

    }
    }

    public class ren13_1

    {
    public static void main(String[] args)
    {
    Truck truck = new Truck(4000, 10.5, 40.0);
    System.out.println("40リットル給油します。");
    truck.addFuel(40.0);
    truck.displayFuel();
    System.out.println("210キロ走行します。");
    truck.run(210);
    truck.displayFuel();
    System.out.println("1000キロの荷物を積みます。");
    truck.loadGoods(1000);
    truck.displayAmount();
    System.out.println("荷物を全て降ろします。");
    truck.unloadGoods();
    truck.displayAmount();

    }
    }