オブジェクト指向プログラミング(実習3回目)


以下の課題を解け. 必要に応じて講義資料を参考にすること.講義資料は ここにある. 課題の提出期限および提出方法は以下の通りとする.

課題1:

Exercise9 という名前のプロジェクトを作成し,その中に Exercise9 という名前のメインクラスを作成せよ.
次に,同じプロジェクトの中に Person という名前のメインでないクラスを作成し,以下のように書き換えよ.

public class Person {
   String name;		// 名前

   void setName(String n) {
      name = n;
   }
   String getName() {
      return name;
   }
   void playGame() {
   }
}

さらに,以下のプログラムを参考に Exercise9 クラスの空白部分を埋めて, 生成された Person クラスの2つのインスタンスに対し,
1つには "トランプ" という名前が, もう1つには "プーチン" という名前が設定されるように書き換えよ.
課題は,完成した Exercise9 クラスのソースコードのみ提出すること.

public class Exercise9 {

   /**
    * @param args
    */
   public static void main(String[] args) {
      Person p1 = new Person();
      Person p2 = new Person();  
      [ここにコードを書く]
   }
}

課題2:

課題1で作成した Exercise9 プロジェクトの中に Person クラスの子クラスとして, Member クラスと Guest クラスを作成し,
以下のように書き換えよ.
次に,Exercise9 クラス の main() メソッドを書き換え, その中で Member クラスのインスタンスと Guest クラスの
インスタンスをそれぞれ1つずつ作成し, Member クラスのインスタンスに "プーチン" という名前を, Guest
クラスのインスタンスに "トランプ" という名前を設定するようにせよ.
課題は,完成した Exercise9 クラスのソースコードのみ提出すること.

public class Member extends Person {
   void playGame() {
      System.out.println(name + "さんはポケモンGOで課金して遊ぶ");
   }
}
public class Guest extends Person {
   void playGame() {
      System.out.println(name + "さんはポケモンGOで無料で遊ぶ");
   }
}

課題3:

課題2で書き換えた Exercise9 プロジェクト中の Exercise9 クラスの main() メソッドをさらに書き換え,
Member クラスとGuest クラスのそれぞれのインスタンスの playGame() メソッドを呼び出して,
"プーチンさんはポケモンGOで課金して遊ぶ",
"トランプさんはポケモンGOで無料で遊ぶ" と表示されるようにせよ.
課題は,完成した Exercise9 クラスのソースコードのみ提出すること.

課題4(自由課題):

多相性を用いたJavaプログラムの例を作成せよ.ただし, 講義で用いたプログラム例は用いないこと.