オブジェクト指向基本問題。
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; } } } }
コメント