1. アクセス修飾子


演習 2-1 (個人): 演習 1-8 で使った Score スーバークラスのフィールドのアクセス修飾子を private に変更するとどうなるか確認してみましょう。

フォルダ「OELM_1_8」をフォルダ「OELM_2_1」に丸ごとコピーし、その中に移動します。
Score.java を開き、Score スーパークラスの name, math, english フィールドのアクセス修飾子を private に変更します。
コンパイルしようとするとエラーが出ます。表示されるエラーメッセージの内容を確認して下さい。
提出物はありません。


2. カプセル化とは

3. getter と setter


演習 2-2 (個人): getter と setter を使ってコンパイルエラーを消しましょう

仕様:

Score クラスに name、math、english の getter を追加する
Score クラスに name の setter を追加する
Taro のコンストラクタで setter を使って name に "タロー" をセットする
Hanako のコンストラクタで setter を使って name に "ハナコ" をセットする
getter、setter を使う様に Main クラスの表示部を書き換える

結果:

引数なしコンストラクタ実行
引数なしコンストラクタ実行
name = タロー math = 91 english = 94 平均 = 92.5 合計 = 185
name = ハナコ math = 95 english = 3 平均 = 49.0 合計 = 196

※ 乱数を使っているので、実行するたびに結果が変わります

フォルダ「OELM_2_1」をフォルダ「OELM_2_2」に丸ごとコピーし、その中に移動します。
Score.java を開きます。
name の値を取得する getter (メソッド名は public String get_name() ) を Score クラスに追加します。
math の値を取得する getter (メソッド名は public int get_math() ) を Score クラスに追加します。
english の値を取得する getter (メソッド名は public int get_english() ) を Score クラスに追加します。
Main.java を開き、getter を使う様に表示部を書き換えます。
一度コンパイルします。Main.java のエラーが無くなったことを確認します。 ※ Taro.javaとHanako.javaのエラーはまだ出ます
Score.java を開き、name の setter(メソッド名は public void set_name( String a ) ) を Score クラスに追加します。
Taro.java を開き、コンストラクタの中で setter を使って Score クラスの name フィールドに "タロー" を代入して下さい。
Hanako.java を開き、コンストラクタの中で setter を使って Score クラスの name フィールドに "ハナコ" を代入して下さい。
Hanako.java の total メソッドを getter を使う様に書き換えます。
実行します。
指定場所に「Main、Score、Taro、Hanakoクラスのソースコード」「実行結果」を記入して下さい。