練習問題⑥:クラスとオブジェクト

6日目のクラス設計を練習します。

問題6:クラスとオブジェクト

参考:6日目

問題 6-1

以下のプログラムを改造し、クラスMinMaxのメンバ関数max(),min()の引数の数を3つにし、3つの数の最大値・最小値を出せるようにプログラムを改造しなさい。

Java
package 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));
    }
}
Java
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
問題 6-2

Calcクラスに、mul(乗算)とdiv(除算)メソッドを追加し、期待される実行結果が得られるようにプログラムを変更しなさい。

Java
package 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));
    }
}
Java
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
4.0 * 2.0 = 8.0
4.0 / 2.0 = 2.0
問題 6-3

Circleクラスに、areaメソッドを追加して、円の面積を求められるようにプログラムを変更しなさい。

Java
package 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());
    }
}
Java
package problem6;

public class Circle {
    public double r;
    public double circumference(){
        return 2 * 3.14 * r;
    }
}
期待する実行結果
半径4.0の円の円周の長さは25.12
半径4.0の円の面積の長さは50.24