オブジェクト指向、継承の基本問題。

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

■クラス:Book

<フィールド>
・ページ数
・価格

<コンストラクタ>
・ページ数と価格を設定する

<メソッド>
・ページ数と価格を表示する

■クラス:NoteBook(スーパークラス:Book)

<フィールド>
・ノートに書かれた内容

<コンストラクタ>
・スーパークラスのコンストラクタでページ数と価格を設定する

<メソッド>
・ノートに内容を追加書き込みする
・ページ数、価格、内容を表示する

■アプリケーションクラス

まず、本とノートのページ数と価格を入力させて、
それぞれのインスタンスを1個ずつ生成する。
その後、機能を番号で選択させる。

[実行例]

本のページ数を入力して下さい >250
本の価格を入力して下さい >1000
ノートのページ数を入力して下さい >60
ノートの価格を入力して下さい >200
1. 本の情報表示 / 2. ノートの情報表示 / 3. ノートに追加書込 / 4.   終了>1
ページ数:250
価格:1000
1. 本の情報表示 / 2. ノートの情報表示 / 3. ノートに追加書込 / 4.   終了>2
ページ数:60
価格:200
内容:
1. 本の情報表示 / 2. ノートの情報表示 / 3. ノートに追加書込 / 4.   終了>3
書き込む内容を入力して下さい >aaa
1. 本の情報表示 / 2. ノートの情報表示 / 3. ノートに追加書込 / 4.   終了>2
ページ数:60
価格:200
内容:aaa
1. 本の情報表示 / 2. ノートの情報表示 / 3. ノートに追加書込 / 4.   終了>3
書き込む内容を入力して下さい >bbb
1. 本の情報表示 / 2. ノートの情報表示 / 3. ノートに追加書込 / 4.   終了>2
ページ数:60
価格:200
内容:aaabbb
1. 本の情報表示 / 2. ノートの情報表示 / 3. ノートに追加書込 / 4.   終了>4
アプリケーションを終了します。

一般クラス

public class Book {
	protected int page;
	protected int price;
	public Book(int page,int price){
		this.page=page;
		this.price=price;
	}
	public void info(){
		System.out.printf("ページ数:%d%n価格:%d%n",this.page,this.price);
	}
}
class NoteBook extends Book{
	protected String content="";
	public NoteBook(int page, int price) {
		super(page, price);
	}
	public void append(String str){
		content += str;
	}
	@Override
	public void info() {
		super.info();
		System.out.printf("内容:%s%n",this.content);
	}
}

アプリケーションクラス

import java.util.Scanner;
public class BookApp {
	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		System.out.print("本のページ数を入力して下さい >");
		int page=s.nextInt();
		System.out.print("本の価格を入力して下さい >");
		int price=s.nextInt();
		Book book=new Book(page,price);
		System.out.print("ノートのページ数を入力して下さい >");
		page=s.nextInt();
		System.out.print("ノートの価格を入力して下さい >");
		price=s.nextInt();
		NoteBook notebook=new NoteBook(page,price);
		while(true){
			System.out.print("1. 本の情報表示 / 2. ノートの情報表示 / 3. ノートに追加書込 / 4.   終了>");
			int select=s.nextInt();
			switch(select){
			case 1:
				book.info();
				break;
			case 2:
				notebook.info();
				break;
			case 3:
				System.out.print("書き込む内容を入力して下さい >");
				String str=s.next();
				notebook.append(str);
				break;
			case 4:
				System.out.println("アプリケーションを終了します。");
				return;
			}
		}
	}
}