オブジェクト指向、継承の基本問題。
Q1
Wiiを表すクラス、
WiiUを表すクラスを作成し
各操作ができるプログラムを作成する。
■クラス:Wii
<フィールド>
・id(シリアル番号)
<コンストラクタ>
・シリアル番号を設定する
<メソッド>
public void playOnTV(){}
public void checkId(){}
■クラス:WiiU(スーパークラス:Wii)
<メソッド>
public void playOnGamepad(){}
■アプリケーションクラス
まず、WiiとWiiUのインスタンスを一つずつ作成する、
その後、メニューにて操作を選択させる。
詳しくは実行例参考のこと
[実行例]
1.Wiiで遊ぶ,2.WiiUで遊ぶ,3.終わり>1 1.シリアル確認,2.TVで遊ぶ,3.quit>1 SerialID:100 1.シリアル確認,2.TVで遊ぶ,3.quit>2 TVで遊びます。 1.シリアル確認,2.TVで遊ぶ,3.quit>3 Wiiを置いた。 1.Wiiで遊ぶ,2.WiiUで遊ぶ,3.終わり>2 1.シリアル確認,2.TVで遊ぶ,3.Gamepadで遊ぶ,4.quit>1 SerialID:200 1.シリアル確認,2.TVで遊ぶ,3.Gamepadで遊ぶ,4.quit>2 TVで遊びます。 1.シリアル確認,2.TVで遊ぶ,3.Gamepadで遊ぶ,4.quit>3 Gamepadで遊びます 1.シリアル確認,2.TVで遊ぶ,3.Gamepadで遊ぶ,4.quit>4 WiiUを置いた。 1.Wiiで遊ぶ,2.WiiUで遊ぶ,3.終わり>3 アプリケーション終了
一般クラス
public class Wii { int id; Wii(int id){ this.id=id; } void playOnTV(){ System.out.println("TVで遊びます。"); } void checkId(){ System.out.println("SerialID:"+this.id); } } class WiiU extends Wii{ WiiU(int id) { super(id); } void playOnGamepad(){ System.out.println("Gamepadで遊びます"); } }
アプリケーションクラス
import java.util.Scanner; public class WiiApp { static Wii wii = new Wii(100); static WiiU wiiU = new WiiU(200); static Scanner sc = new Scanner(System.in); public static void main(String[] args) { while (true) { System.out.print("1.Wiiで遊ぶ,2.WiiUで遊ぶ,3.終わり>"); int select = sc.nextInt(); switch (select) { case 1: playWii(); break; case 2: playWiiU(); break; case 3: System.out.println("アプリケーション終了"); sc.close(); return; } } } private static void playWii() { while (true) { System.out.print("1.シリアル確認,2.TVで遊ぶ,3.quit>"); int select = sc.nextInt(); switch (select) { case 1: wii.checkId(); break; case 2: wii.playOnTV(); break; case 3: System.out.println("Wiiを置いた。"); return; } } } private static void playWiiU() { while (true) { System.out.print("1.シリアル確認,2.TVで遊ぶ,3.Gamepadで遊ぶ,4.quit>"); int select = sc.nextInt(); switch (select) { case 1: wiiU.checkId(); break; case 2: wiiU.playOnTV(); break; case 3: wiiU.playOnGamepad(); break; case 4: System.out.println("WiiUを置いた。"); return; } } } }
(別解)アプリケーションクラス[ラベル付きbreak]
import java.util.Scanner; public class WIiApp { public static void main(String[] args) { Wii wii=new Wii(100); WiiU wiiU=new WiiU(200); Scanner s=new Scanner(System.in); while(true){ System.out.print("1.Wiiで遊ぶ,2.WiiUで遊ぶ,3.終わり>"); int select=s.nextInt(); switch(select){ case 1: outer1: while(true){ System.out.print("1.シリアル確認,2.TVで遊ぶ,3.quit>"); select=s.nextInt(); switch(select){ case 1: wii.checkId(); break; case 2: wii.playOnTV(); break; case 3: System.out.println("Wiiを置いた。"); break outer1; } } break; case 2: outer2: while(true){ System.out.print("1.シリアル確認,2.TVで遊ぶ,3.Gamepadで遊ぶ,4.quit>"); select=s.nextInt(); switch(select){ case 1: wiiU.checkId(); break; case 2: wiiU.playOnTV(); break; case 3: wiiU.playOnGamepad(); break; case 4: System.out.println("WiiUを置いた。"); break outer2; } } break; case 3: System.out.println("アプリケーション終了"); s.close(); return; } } } }
コメント