スーパークラス、サブクラスを作成し、各操作をするプログラム
練習問題4
本を表すスーパークラスBook、ノートを表すサブクラスNotebookを作成し、各操作ができるプログラムを作成する。
クラス:Book
メンバ変数:
コンストラクタ:
メンバメソッド:
クラス:Notebook (extends Book)
メンバ変数:
コンストラクタ:
メンバメソッド:
クラス:ren13_4.java(メインのクラス)
まず、本とノートのページ数と価格を入力させて、それぞれのインスタンスを1個ずつ生成する。その後、機能を番号で選択させる。
実行画面
本の価格を入力して下さい > 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キー】
解答例
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);
}
}
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);
}
}
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());
}
}
}