オブジェクト指向基本問題。
Q1
1.
車に関するクラス「Car」を次のメンバーで作成する
<フィールド変数>
・ガソリンの残量(リットル) … private double fuelRest
・燃費(キロメートル/リットル) … private double fuelRatio
・タンク容量のフィールド変数 … private double fuelMax
<コンストラクタ>
public Car(double fuelRest, double fuelRatio, double fuelMax){setterでセットすること}
<一般メソッド>
public void displayFuel()
… ガソリン残量を表示
public void addFuel(double fuel)
… ガソリンを給油するメソッド。fuelは給油量(リットル)(入らない場合は入らないと表示)
public void run(double distance)
… 車を走行させるメソッド。distanceは走行距離(キロメートル)(走れない場合は走れないと表示)
「setter&getter」
fuelRestのsetter -> 値が負の場合は0をセット
fuelRatio -> 値が1.0より小さい場合や100.0より大きい場合はIllegalArgumentException(“不正な燃費です。処理を中止”)を発生させる
fuelMax ->値が10.0より小さい場合や1000.0より大きい場合はIllegalArgumentException(“不正なタンク容量です。処理を中止”)を発生させる
getterはルール通りのgetterを作成する
2.
アプリケーションクラスにおいて
<初期値>
・ガソリンの残量(リットル)… 30.0
・燃費(キロメートル/リットル)… 8.4
・タンク容量のフィールド変数… 60.0
で一台newして以下の実行結果を得よ。
[実行例]
【実行結果】 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>3 現在の燃料は30.0リットルです。 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>1 何キロ走行しますか >>-1000 走れません! 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>1 何キロ走行しますか >>1000 走れません! 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>1 何キロ走行しますか >>210 210.0キロ走行します 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>3 現在の燃料は5.0リットルです。 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>2 何リットル給油しますか >>-10 入りません! 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>2 何リットル給油しますか >>100 入りません! 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>2 何リットル給油しますか >>10 10.0リットル給油します 現在の燃料は15.0リットルです。 1. 走行 / 2. 給油 / 3. 残量表示 / 4. 終了 >>4 アプリケーションを終了します。
コメント