| <演習1>の解答例 |
| class Note extends Paper { private int page; // ページ数 public void setPage( int p ){ // ページ数を設定する page = p; } public void show(){ // 表示 System.out.println(" ページ数 = " + page ); // ページ数を表示 super.show(); // 用紙サイズを表示 } } class Paper { private String size; // サイズ、"A4","B5"など public void setSize( String s ){ // サイズを設定する size = new String(s); } public void show(){ // 表示 System.out.println(" 用紙サイズ = " + size ); } } class Ensyu1401 { public static void main(String[] args) { // ノートクラスのオブジェクト System.out.println("\n- ノート ----"); Note nt = new Note(); nt.setSize( "A4" ); nt.setPage( 80 ); nt.show(); } } |
| <演習2>の解答例 |
| class Wizard extends Brave { private int mp; // マジックポイント public Wizard( String n, int h, int m ){ // コンストラクタ super( n, h ); mp = m; } public void attack(){ System.out.println(" 魔法使い" + name + "は呪文を唱えた(残りmp=" + mp + ")"); } } class Brave { protected String name; private int hp; public Brave( String n, int h ){ // name = new String(n); hp = h; } public void attack(){ // 表示 int dmg = (int)(Math.random()*100); System.out.print(" 勇者" + name + "の攻撃 " + dmg + " のダメージ!"); System.out.println(" (残りhp=" + (hp-dmg) + ")"); } } class Ensyu1402 { public static void main(String[] args) { Brave [] ch = new Brave[5]; ch[0] = new Brave( "ichiro", 157 ); ch[1] = new Wizard( "jiro", 298, 120 ); ch[2] = new Wizard( "saburo", 107, 100 ); ch[3] = new Brave( "shiro", 353 ); ch[4] = new Wizard( "goro", 216, 110 ); for(int i=0;i<ch.length;i++) ch[i].attack(); } } |
| <演習3>の解答例 |
| class Chugaku extends Shogaku { int shakai,eigo; // 得点(社会、英語) // 引数は 国語、算数、理科、社会、英語 public Chugaku(int k, int sa, int r, int sh, int e){ super(k,sa,r); shakai = sh; eigo = e; goukei = goukei + sh + e; // 3科目+2科目の合計 } public void showTen2(){ System.out.print(" " + shakai + " " + eigo); } public String toString(){ String str = " " + kokugo + " " + sansu + " " + rika + " " + shakai + " " + eigo + " 合計 = " + goukei; return str; } } class Shogaku // 小学生クラス { int kokugo,sansu,rika; // 得点(国語、算数、理科) int goukei; // 引数は 国語、算数、理科 public Shogaku( int k, int sa, int r ){ kokugo = k; sansu = sa; rika = r; goukei = k + sa + r; // 3科目の合計 } public void showTen3(){ System.out.print(" " + kokugo + " " + sansu + " " + rika); } public String toString(){ String str = " " + kokugo + " " + sansu + " " + rika + " 合計 = " + goukei; return str; } } class Ensyu1403 { public static void main(String[] args) { // Shogakuクラスのオブジェクト System.out.println("\n- 小学生クラス ----"); Shogaku sho = new Shogaku( 93, 78, 85 ); //sho.showTen3(); //System.out.println(" 合計 = " + sho.goukei ); System.out.println( sho ); // Chugakuクラスのオブジェクト System.out.println("\n- 中学生クラス ----"); Chugaku chu = new Chugaku( 65, 95, 88, 94, 82 ); //chu.showTen3(); //chu.showTen2(); //System.out.println(" 合計 = " + chu.goukei ); System.out.println( chu ); } } |
| <演習4>の解答例 |
| class LimitedExpress extends Train { int ex_charge; // 特急料金 // コンストラクタ、引数)車名、運賃、特急料金 public LimitedExpress( String n, int u, int ec ){ super( n, u ); ex_charge = ec; } public int getRyokin(){ // 運賃 + 特急料金を返す return super.getRyokin() + ex_charge; } } class Train // 普通電車クラス { public String name; // 名前 private int unchin; // 運賃 // コンストラクタ、引数)車名、運賃 public Train( String n, int u ){ name = new String( n ); unchin = u; } public int getRyokin(){ // 運賃を返す return unchin; } } class Ensyu1404 { public static void main(String[] args) { // Trainクラスのオブジェクト System.out.println("\n- Trainクラス ----"); Train fu = new Train( "普通", 4750 ); System.out.print( " " + fu.name + " " ); System.out.println( fu.getRyokin() ); // LimitedExpressクラスのオブジェクト System.out.println("\n- LimitedExpressクラス ----"); LimitedExpress le = new LimitedExpress( "サンダーバード", 4750, 2900 ); System.out.print( " " + le.name + " " ); System.out.println( le.getRyokin() ); } } |
| <演習5>の解答例 |
| class F1Car extends RacingCar //
F1クラス { public String team; // チーム名 // コンストラクタ n:番号、g:ガソリン、c:コース数、t:チーム名 public F1Car( int n, double g, int c, String t ){ super( n, g, c ); team = new String( t ); } public void show(){ super.show(); // スーパークラスの表示を呼び出す System.out.println(" チーム = " + team); } } class RacingCar extends Car // RacingCarクラス { public int course; // コース数 // コンストラクタ n:番号、g:ガソリン、c:コース数 public RacingCar( int n, double g, int c ){ super( n, g ); course = c; } public void show(){ super.show(); // スーパークラスの表示を呼び出す System.out.println(" コース = " + course); } } class Car // Carクラス { public int num; // ナンバー public double gas; // ガソリン // コンストラクタ n:番号、g:ガソリン public Car( int n, double g ){ num = n; gas = g; } public void show(){ System.out.println(" ナンバー = " + num + " ガソリン = " + gas); } } class Ensyu1405 { public static void main(String[] args) { // Carクラスのオブジェクト System.out.println("\n- Carクラス ----"); Car c = new Car( 1234, 55.0 ); c.show(); // RacingCarクラスのオブジェクト System.out.println("\n- RacingCarクラス ----"); RacingCar rc = new RacingCar( 5678, 85.0, 8 ); rc.show(); // F1クラスのオブジェクト System.out.println("\n- F1クラス ----"); F1Car f1 = new F1Car( 9999, 110.0, 15, "フェラーリ" ); f1.show(); } } |