スーパークラス、サブクラスを作成し、各操作をするプログラム

スーパークラス、サブクラスを作成し、各操作をするプログラム

練習問題4

本を表すスーパークラスBook、ノートを表すサブクラスNotebookを作成し、各操作ができるプログラムを作成する。

 

クラス:Book
メンバ変数:

  • private int page ページ数
  • private int price 価格

    コンストラクタ:

  • public Book(int page, int price) ページ数と価格を設定する

    メンバメソッド:

  • public void display() 機能:ページ数と価格を表示する

     

    クラス:Notebook (extends Book)
    メンバ変数:

  • private String contents ノートに書かれた内容

    コンストラクタ:

  • public Notebook(int page, int price) ページ数と価格を設定する

    メンバメソッド:

  • public void write(String message) 機能:ノートに内容を追加書き込みする
  • public void display() 機能:ページ数、価格、内容を表示する

     

    クラス:ren13_4.java(メインのクラス)

     まず、本とノートのページ数と価格を入力させて、それぞれのインスタンスを1個ずつ生成

    する。その後、機能を番号で選択させる。

     

    実行画面

    本のページ数を入力して下さい > 250【enterキー】

    本の価格を入力して下さい > 1000【enterキー】
    ノートのページ数を入力して下さい > 60【enterキー】
    ノートの価格を入力して下さい > 200【enterキー】
    操作を入力して下さい
    本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>1【enterキー】
    ページ数:250
    価格:1000

     

    操作を入力して下さい
    本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>2【enterキー】
    ページ数:60
    価格:200
    内容:

     

    操作を入力して下さい
    本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>3
    書き込む内容を入力して下さい > aaa

     

    操作を入力して下さい
    本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>2【enterキー】
    ページ数:60
    価格:200
    内容:aaa

     

    操作を入力して下さい
    本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>3【enterキー】
    書き込む内容を入力して下さい > bbbbb

     

    操作を入力して下さい
    本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>2
    ページ数:60
    価格:200
    内容:aaabbbbb

     

    操作を入力して下さい
    本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>0【enterキー】

  • 解答例

    class Book {

     

    private int page;
    private int price;

     

    public Book(int page, int price) {
    this.page = page;
    this.price = price;
    }

     

    public void display() {
    System.out.println("ページ数:" + page);
    System.out.println("価格:" + price);
    }

     

    }

    class Notebook extends Book {

     

    private String contents;

     

    public Notebook(int page, int price) {
    super(page, price);
    contents = "";
    }

     

    public void write(String message) {
    contents += message;
    }

     

    public void display() {
    super.display();
    System.out.println("内容:" + contents);
    }

     

    }

    import java.io.*;

     

    public class ren13_4 {

     

    public static void main(String[] args) throws IOException {
    BufferedReader br
    = new BufferedReader( new InputStreamReader(System.in) );

     

    int b_page, b_price;
    System.out.print("本のページ数を入力して下さい > ");
    b_page = Integer.parseInt(br.readLine());
    System.out.print("本の価格を入力して下さい > ");
    b_price = Integer.parseInt(br.readLine());
    Book book = new Book(b_page, b_price);

     

    int n_page, n_price;
    System.out.print("ノートのページ数を入力して下さい > ");
    n_page = Integer.parseInt(br.readLine());
    System.out.print("ノートの価格を入力して下さい > ");
    n_price = Integer.parseInt(br.readLine());
    Notebook notebook = new Notebook(n_page, n_price);

     

    System.out.println("操作を入力して下さい");
    System.out.print("本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>");
    int n = Integer.parseInt(br.readLine());
    while( 1 <= n && n <= 3) {
    switch( n ) {
    case 1:
    book.display();
    break;
    case 2:
    notebook.display();
    break;
    case 3:
    System.out.print("書き込む内容を入力して下さい > ");
    notebook.write(br.readLine());
    break;
    }

    System.out.println();
    System.out.println("操作を入力して下さい");
    System.out.print("本の情報表示(1), ノートの情報表示(2), ノートに追加書込(3), 終了(他)>");
    n = Integer.parseInt(br.readLine());
    }
    }

     

    }