オブジェクト指向基本問題。

Q1
1.
車に関するクラス「Car」を次のメンバーで作成する

<フィールド変数>
・ガソリンの残量(リットル) … -fuelRest : double
・燃費(キロメートル/リットル) … -fuelRatio : double
・タンク容量のフィールド変数 … -fuelMax : double

<コンストラクタ>

public Car(double fuelRest, double fuelRatio, double fuelMax)

<一般メソッド>
public void displayFuel()
… ガソリン残量を表示

public void addFuel(double fuel)
… ガソリンを給油するメソッド。fuelは給油量(リットル)

public void run(double distance)
… 車を走行させるメソッド。distanceは走行距離(キロメートル)

「setter&getter」
必要に応じて作成

2.
アプリケーションクラスにおいて
<初期値>
・ガソリンの残量(リットル)… 30.0
・燃費(キロメートル/リットル)… 8.4
・タンク容量のフィールド変数… 60.0

で一台newして以下の実行結果を得よ。

[実行例]

【実行結果】
1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 > 3
現在の燃料は30.0リットルです。

1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 > 1
何キロ走行しますか > 210
210キロ走行します

1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 > 3
現在の燃料は5.0リットルです。

1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 > 2
何リットル給油しますか >10
10リットル給油します。
現在の燃料は15.0リットルです。

1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 > 4
アプリケーションを終了します。

Carクラス

public class Car {
    private double fuelRest;
    private double fuelRatio;
    private double fuelMax;
 
    public Car(double fuelRest, double fuelRatio, double fuelMax) {
        this.setFuelRest(fuelRest);
        this.setFuelRatio(fuelRatio);
        this.setFuelMax(fuelMax);
    }
    public void displayFuel(){
        System.out.printf("現在の燃料は%.1fリットルです。%n",this.fuelRest);
    }
    public void addFuel(double fuel){
        if(this.fuelRest+fuel > this.fuelMax){
            System.out.println("そんなに入りません!");
        }else{
            this.fuelRest += fuel;
            System.out.printf("%.0fリットル給油します。%n", fuel);
            this.displayFuel();
        }
    }
    public  void run(double distance){
        if(distance/this.fuelRatio > this.fuelRest){
            System.out.println("燃料が足りません!");
        }else{
            this.fuelRest -= distance/this.fuelRatio;
            System.out.printf("%.0fキロ走行します%n", distance);
        }
    }
    public double getFuelRest() {
        return fuelRest;
    }
    public void setFuelRest(double fuelRest) {
        this.fuelRest = fuelRest;
    }
    public double getFuelRatio() {
        return fuelRatio;
    }
    public void setFuelRatio(double fuelRatio) {
        this.fuelRatio = fuelRatio;
    }
    public double getFuelMax() {
        return fuelMax;
    }
    public void setFuelMax(double fuelMax) {
        this.fuelMax = fuelMax;
    }
}

CarAppクラス

import java.util.Scanner;

public class CarApp {

	public static void main(String[] args) {
		Car car=new Car(30.0,8.4,60.0);
		Scanner s=new Scanner(System.in);
		while(true){
			System.out.print("1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >");
			int select=s.nextInt();
			switch(select){
			case 1:
				System.out.print("何キロ走行しますか>");
				double km=s.nextDouble();
				car.run(km);
				break;
			case 2:
				System.out.print("何リットル給油しますか>");
				double l=s.nextDouble();
				car.addFuel(l);
				break;
			case 3:
				car.displayFuel();
				break;
			case 4:
				System.out.println("アプリケーションを終了します");
				return;

			}
		}
	}
}