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>
上記の実行ができるプログラムを以下に示します。
■■■■の部分を正しく直して完成させましょう。
←正しく修正してからクリックください。
←わからない場合は、クリック