この問題を解くためには… |
→ 応用編第2日目参照 |
---|
問題2:継承
prob2-1.(難易度:★)
以下のプログラムに、飛行機クラスAirplaneを継承した戦闘機クラスFighterを指定されたとおりの仕様で追加し、期待された実行結果通りにプログラムが動くように改造しなさい。
probex2-1:Airplane.javapackage problemex2; public class Airplane { public void fly(){ System.out.println("飛行する"); } }
package problemex2; public class Problemex2_1 { public static void main(String[] args) { Fighter f = new Fighter(); // 戦闘機クラス Airplane a = new Airplane(); // 飛行機クラス // 飛行機が飛行する a.fly(); // 戦闘機が飛行する f.fly(); // 戦闘機が戦闘する f.fight(); } }
飛行する← Airplaneクラスのfly()メソッドによる処理
飛行する← Fighterクラスのfly()メソッドによる処理
戦闘する← Fighterクラスのfly()メソッドによる処理
クラスFighterの仕様(メンバ関数)
飛行する← Fighterクラスのfly()メソッドによる処理
戦闘する← Fighterクラスのfly()メソッドによる処理
メソッド名 | 戻り値の型 | 引数 | 概要 |
---|---|---|---|
fight | void | なし | 「戦闘する」と表示し、改行する。 |
prob2-2.(難易度:★)
以下のプログラムに、基本計算クラスFundClacを継承した新計算クラスNewCalcを指定されたとおりの仕様で追加し、期待された実行結果通りにプログラムが動くように改造しなさい。このさい、必要があれば、FundCalcクラスの必要な部分を改造しなさい。
probex2-2:FundCalc.javapackage problemex2; public class FundCalc { private double number1 = 0.0; // 一つ目の数 private double number2 = 0.0; // 二つ目の数 // 一つ目の数を設定 public void setNumber1(double number1){ this.number1 = number1; } // 二つ目の数を設定 public void setNumber2(double number2){ this.number2 = number2; } // 一つ目の数を設定 public double getNumber1(){ return number1; } // 二つ目の数を設定 public double getNumber2(){ return number2; } // 二つの数の和を出力 public double add(){ return number1 + number2; } // 二つの数の差を出力 public double sub(){ return number1 - number2; } }
package problemex2; public class Problemex2_2 { public static void main(String[] args) { NewCalc n = new NewCalc(); n.setNumber1(10); // 一つ目の数を設定 n.setNumber2(2); // 二つ目の数を設定 System.out.println(n.getNumber1() + " + " + n.getNumber2() + " = " + n.add()); System.out.println(n.getNumber1() + " - " + n.getNumber2() + " = " + n.sub()); System.out.println(n.getNumber1() + " * " + n.getNumber2() + " = " + n.mul()); System.out.println(n.getNumber1() + " / " + n.getNumber2() + " = " + n.div()); } }
10 + 2 = 12
10 - 2 = 8
10 * 2 = 20
10 / 2 = 5
10 - 2 = 8
10 * 2 = 20
10 / 2 = 5
NewCalcクラスのヘッダ クラスNewCalcの仕様(メンバ関数)
メソッド名 | 戻り値の型 | 引数 | 概要 |
---|---|---|---|
mul | double | なし | フィールドnumber1、number2の積 |
div | double | なし | フィールドnumber1、number2の商 |