Record2の
Scannerを引数とするinitメソッドを、
Record3でオーバーライドする例です。
そして、これを利用し、
Scannerを引数とするコンストラクタも
Record3クラスに追加します。
この変更後のクラス図を
右記に示します。
赤の部分が追加するメソッドです。
以下にこの
Record3クラスに追加するするコードを
示します。
//商品コードと数量、単価をキー入力するオバーライドメソッド
public void init(java.util.Scanner stdin)
{
super.init(stdin);// スーパークラスのinitを呼び出す
//この場合はsuperを省略でません。省略すると、
//自身を呼び出す(再帰)ため無限ループなり、StackOverflowErrorの実行エラーになる
System.out.print(" 単価>>");
String s = stdin.nextLine();
tanka = Integer.parseInt(s);
}
//商品コードと数量、単価をキー入力で生成するコンストラクタ
public Record3(java.util.Scanner stdin)
{
init(stdin);//商品コードと数量、単価をキー入力
}
上記の追加メソッドを確認するためのプログラムを、Test.javaで作成して、 その実行結果を示します。
D:\java>java Test
Record3をキー入力生成
商品コード>>A10
数量>>10
単価>>100
1番目レコード
商品コード:A10
数量:10
単価:100
キー入力で変更
商品コード>>B20
数量>>20
単価>>200
1番目レコード
商品コード:B20
数量:20
単価:200
Record2を生成して、キー入力で変更
商品コード>>C30
数量>>30
1番目レコード
商品コード:C30
数量:30
D:\java>
上記の実行ができるプログラムを以下に示します。
■■■■の部分を正しく直して完成させましょう。
←正しく修正してからクリックください。
←わからない場合は、クリック