オブジェクト指向基本問題。
Q1
プールを表すクラスPoolとそれを実行するアプリケーションクラスを作り
各操作ができるプログラムを作成する
<フィールド変数>
・現在の水量 -water : double
<コンストラクタ>
public Pool()
… 水量を0.0立方メートルにしてインスタンスを生成する。
<メソッド>
public void feedWater(double water)
… 引数として渡された水量だけ給水する
ただし満水(600.0立方メートル)を超える分は給水しない
public void drainWater(double water)
… 引数として渡された水量だけ排水する
public void display()
… 現在の水量を表示する
[実行例]
1. 給水 / 2. 排水 / 3. 表示 / 4. 終了>3 |
1. 給水 / 2. 排水 / 3. 表示 / 4. 終了>1 |
1. 給水 / 2. 排水 / 3. 表示 / 4. 終了>1 |
1. 給水 / 2. 排水 / 3. 表示 / 4. 終了>2 |
1. 給水 / 2. 排水 / 3. 表示 / 4. 終了>2 |
1. 給水 / 2. 排水 / 3. 表示 / 4. 終了>3 |
1. 給水 / 2. 排水 / 3. 表示 / 4. 終了>4 |
Poolクラス
02 | private static final double MAX= 600 .0d; |
07 | public void feedWater( double water){ |
08 | double feed= this .water+water > MAX ? MAX- this .water:water; |
10 | System.out.printf( "%.1f立方メートル給水しました。%n" ,feed); |
13 | public void drainWater( double water){ |
14 | double drain = this .water-water > 0 ? water : this .water; |
16 | System.out.printf( "%.1f立方メートル排水しました。%n" , drain); |
19 | public void display(){ |
20 | System.out.printf( "現在の水量は%.1f立方メートルです。%n" , this .water); |
PoolAppクラス
01 | import java.util.Scanner; |
03 | public static void main(String[] args) { |
05 | Scanner s= new Scanner(System.in); |
07 | System.out.print( "1. 給水 / 2. 排水 / 3. 表示 / 4. 終了>" ); |
08 | int select=s.nextInt(); |
13 | System.out.print( "給水する水量を入力して下さい >" ); |
16 | System.out.println( "[給水量は正の値をいれてください。]" ); |
19 | pool.feedWater(water); |
23 | System.out.print( "排水する水量を入力して下さい >" ); |
26 | System.out.println( "[排水量は正の値をいれてください。]" ); |
29 | pool.drainWater(water); |
35 | System.out.println( "アプリケーションを終了します。" ); |
コメント