継承およびオーバーライド 練習問題

記事上広告

今回の練習問題は第4章の継承(4-9)とオーバーライド(4-10)の内容となっています。

examフォルダ内にファイルは保存してください。(階層→c:\work\exam)

継承、オーバーライド 練習問題

【Java】継承およびオーバーライド 練習問題

以下の指示に従ってプログラミングを行ってください。また、プログラム内にもコメントで指示がありますので、コメントの下にプログラミングを行ってください。examフォルダ内に「Test07.java」「Test07Super.java」「Exam1007.java」で保存してください。

なお、Test07クラスはTest07Superクラスを継承して記述して下さい。

保存後、「Exam1007.java」をコンパイルおよび実行を行ってください。

指示1 Test07Superクラスのメンバ指示

クラス名
Test07Super
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
なし search int String[] array,
int start,
String data
第一引数の配列内に第三引数の文字列が含まれているかどうかをチェックする

第二引数は検索をスタートする配列番号の位置

検索にヒットした場合は配列番号を、検索にヒットしなかった場合は-1を戻り値として返す

指示2 Test07クラスのメンバ指示

search()メソッドはオーバーライドで作成しています。

クラス名
Test07
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
なし search int String[] array,
int start,
String data
第一引数の配列内に第三引数の文字列が含まれているかどうかをチェックする

第二引数は検索をスタートする配列番号の位置

ただし、親クラスのsearch()と違い、重複データも考慮する為、戻り値は以下のように変更する

検索にヒットした場合はヒットした件数を、検索にヒットしなかった場合は0を戻り値として返す

指示3 Exam1007.javaは以下のように記述

ヒント
あくまでも参考のヒントです。

Test07Super.javaのヒント

Test07.javaのヒント

実行結果

C:\work\exam>javac Exam1007.java
C:\work\exam>java Exam1007 システム
1件ヒットしました
1番目にありました
C:\work\exam>java Exam1007 営業
2件ヒットしました
0番目にありました

※1行目の表示はTest07のsearch()メソッドの結果となっており検索結果を出力。2行目の表示はTest07Superのsearch()メソッドの結果となっており見つかった配列番号を出力。

※営業を検索した際の2行目の表示は重複を考慮していないため、最初にヒットした0番目だけ表示されます。

【Java】継承 練習問題

以下の指示に従ってプログラミングを行ってください。examフォルダ内に「Test08.java」「Test08Super.java」「Exam1008.java」で保存してください。

なお、Test08クラスはTest08Superクラスを継承して記述して下さい。

保存後、「Exam1008.java」をコンパイルおよび実行を行ってください。

指示1 Test08Superクラスのメンバ指示

クラス名
Test08Super
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
なし power double double number,
int count
第一引数の数値を第二引数の回数分で乗算する

乗算した結果を戻り値で返す

指示2 Test08クラスのメンバ指示

クラス名
Test08
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
なし execute double int number,
int count
第一引数の数値(%)を第二引数分繰り返したときに、何パーセントの確率で当選するかを戻り値で返す

例えば、30(%)を3回繰り返すと、65.7(%)がリターンされる

指示3 Exam1008.javaは以下のように記述

実行結果

C:\work\exam>javac Exam1008.java

C:\work\exam>java Exam1008
30%で1回抽選すると
当たる確率は[30.000000000000004]%です
30%で2回抽選すると
当たる確率は[51.0]%です
30%で3回抽選すると
当たる確率は[65.7]%です
30%で4回抽選すると
当たる確率は[75.99000000000001]%です
30%で5回抽選すると
当たる確率は[83.19300000000001]%です
30%で6回抽選すると
当たる確率は[88.23510000000002]%です
30%で7回抽選すると
当たる確率は[91.76457]%です
30%で8回抽選すると
当たる確率は[94.23519900000001]%です
30%で9回抽選すると
当たる確率は[95.9646393]%です
30%で10回抽選すると
当たる確率は[97.17524751]%です

ヒント

Test08.javaのexecute()メソッドヒント

※変数bのデータを算出する計算式は、計算する際の型に注意

Test08Super.javaのpower()メソッドヒント
スポンサーリンク
レクタングル