[PR] 迷惑メール トップページプロ3ゼミJavaJava入門講座二学期単位75時間目→単位7問題の答え

単位7問題の答え

単位7問題

 単位7の課題は、オブジェクト指向ではないプログラムをオブジェクト指向に対応させて下さい。
又、どこが問題なのか、つまりどこがオブジェクト指向ではないのかも答えれるとなお良いです。
プログラムです。
Sample7_5.java
class School {

    String name; // 学校名
    String studenNumber; // 生徒数
    String openDate; // 開校日
}

public class Sample7_5 {

    public static void main(String[] args) {

        School javaHigh = new School(); // ジャバ高校

        javaHigh.name = "ジャバ高校";
        javaHigh.studenNumber = "3000";
        javaHigh.openDate = "1980年4月1日";

        System.out.println("学校情報");
        System.out.println("学校名:" + javaHigh.name);
        System.out.println("生徒数:" + javaHigh.studenNumber);
        System.out.println("開校日:" + javaHigh.openDate);
    }
}
  
学校情報
学校名:ジャバ高校
生徒数:3000
開校日:1980年4月1日

単位7問題の答えと解説

まずは、ソースをご覧ください。
Sample7_5_ans.java
class School {

    private String name; // 学校名
    private String studenNumber; // 生徒数
    private String openDate; // 開校日

    // 学校名のゲッタ
    public String getName() {

        return name;
    }

    // 学校名のセッタ
    public void setName(String name) {

        this.name = name;
    }

    // 生徒数のゲッタ
    public String getStudenNumber() {

        return studenNumber;
    }

    // 生徒数のセッタ
    public void setStudenNumber(String studenNumber) {

        this.studenNumber = studenNumber;
    }

    // 開校日のゲッタ
    public String getOpenDate() {

        return openDate;
    }

    // 開校日のセッタ
    public void setOpenDate(String openDate) {

        this.openDate = openDate;
    }
}

public class Sample7_5_ans {

    public static void main(String[] args) {

        School javaHigh = new School(); // ジャバ高校

        javaHigh.setName("ジャバ高校");
        javaHigh.setStudenNumber("3000");
        javaHigh.setOpenDate("1980年4月1日");

        System.out.println("学校情報");
        System.out.println("学校名:" + javaHigh.getName());
        System.out.println("生徒数:" + javaHigh.getStudenNumber());
        System.out.println("開校日:" + javaHigh.getOpenDate());
    }
}
学校情報
学校名:ジャバ高校
生徒数:3000
開校日:1980年4月1日

 オブジェクト指向では、メソッドを介して処理を行います。
これを、オブジェクト指向では、メッセージと呼んでいます。
プログラムで実現するには、カプセル化をする必要があります。
問題のSample7_5.javaでは、直接フィールドを操作できてしまう為に予期せぬ値を代入されたり、後々プログ ラムを変更する場合に修正箇所が増えてしまいます(例えば、フィールド名を変更したい場合など)。

 オブジェクト指向にするには、問題のSample7_5.javaをカプセル化する必要があります。
カプセル化してオブジェクト指向に対応したのが、Sample7_5_ans.javaです。
4時間目 クラス及びインスタンスの要素に戻る     単位8 クラスのライブラリに進む

単位7 クラスの特徴に戻る

トップページに戻る