問題6:クラスとオブジェクト
この問題を解くためには… |
→ 基本編第6日目参照 |
---|
prob6-1.(難易度★)
以下のプログラムを改造し、クラスMinMaxのメンバ関数max(),min()の引数の数を3つにし、期待される実行結果にならい、3つの数の最大値・最小値を出せるようにプログラムを改造しなさい。
prob6-1:Problem6_1.javapackage problem6; public class Problem6_1 { public static void main(String[] args) { Minmax m = new Minmax(); int a = 4,b = 2; System.out.println(a + "と" + b + "のうち、最大のものは" + m.max(a,b)); System.out.println(a + "と" + b + "のうち、最小のものは" + m.min(a,b)); } }
package problem6; public class Minmax { // 最大値の取得 public int max(int n1,int n2){ if (n1 > n2){ return n1; } return n2; } // 最大値の取得 public int min(int n1,int n2){ if (n1 < n2){ return n1; } return n2; } }
4と2のうち、最大のものは4
4と2のうち、最小のものは2
4と2のうち、最小のものは2
prob6-2.(難易度★)
以下のプログラムは、二つの実数の値の計算をするくらす、Calcを使ったプログラムである。このクラスに、指定したメソッド追加し、期待される実行結果が得られるようにプログラムを変更しなさい。
prob6-2:Problem6_2.javapackage problem6; public class Problem6_2 { public static void main(String[] args) { Calc c = new Calc(); double a = 4.0,b = 2.0; System.out.println(a + " + " + b + " = " + c.add(a,b)); System.out.println(a + " - " + b + " = " + c.sub(a,b)); } }
package problem6; public class Calc { // 加算 double add(double a,double b){ return a + b; } // 加算 double sub(double a,double b){ return a - b; } }
これを実行すると、以下のようになる。
実行結果
4.0 + 2.0 = 6.0
4.0 - 2.0 = 2.0
Calcクラスに追加するメソッド
4.0 - 2.0 = 2.0
メソッド名 | mul |
---|---|
処理内容 | 与えられた二つの引数の積を返す。 |
引数 | 二つの数値(ともにdouble) |
戻り値 | 二つの引数の積 |
メソッド名 | div |
---|---|
処理内容 | 与えられた二つの引数の商を返す。 |
引数 | 二つの数値(ともにdouble) |
戻り値 | 二つの引数の商 |
4.0 + 2.0 = 6.0
4.0 - 2.0 = 2.0
4.0 * 2.0 = 8.0 ← mul()メソッドで実行
4.0 / 2.0 = 2.0 ← div()メソッドで実行
4.0 - 2.0 = 2.0
4.0 * 2.0 = 8.0 ← mul()メソッドで実行
4.0 / 2.0 = 2.0 ← div()メソッドで実行
prob6-3.(難易度★)
以下のプログラムは、円の半径から、円周の長さを求めるものである。このクラスに、指定したメソッド追加し、期待される実行結果が得られるようにプログラムを変更しなさい。
prob6-3:Problem6_3.javapackage problem6; public class Problem6_3 { public static void main(String[] args) { Circle c = new Circle(); // 円の半径を設定 c.r = 4.0; System.out.println("半径" + c.r +"の円の円周の長さは" + c.circumference()); } }
package problem6; public class Circle { // 半径 public double r; // 円周の長さを求める public double circumference(){ return 2 * 3.14 * r; } }
これを実行すると、以下のようになる。
実行結果
半径4.0の円の円周の長さは25.12
このプログラムのCalcクラスに、以下のメソッドを追加する。
Calcクラスに追加するメソッドメソッド名 | area |
---|---|
処理内容 | メンバ変数rで与えられた円の面積を求める。 |
引数 | なし |
戻り値 | メンバ変数rで与えられる円の面積 |
これにより、期待される実行結果は以下の通り
期待される実行結果
半径4.0の円の円周の長さは25.12
半径4.0の円の面積の長さは50.24 ← 同一の円の面積を求めた結果
半径4.0の円の面積の長さは50.24 ← 同一の円の面積を求めた結果