オーバーロードおよびコンストラクタ 練習問題

記事上広告

カプセル化、オーバーロード、コンストラクタ 練習問題

今回の練習問題は第4章のカプセル化(4-5)からコンストラクタ(4-8)までの内容となっています。カプセル化、null、オーバーロード、コンストラクタについての練習問題になっています。

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

【Java】カプセル化 練習問題

以下の指示に従ってプログラミングを行ってください。examフォルダ内に「Test04.java」「Exam1004.java」で保存してください。
保存後、「Exam1004.java」をコンパイルおよび実行を行ってください。

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

クラス名
Test04
アクセス修飾子 フィールド名 初期値
private action String なし(宣言のみ)
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
なし setAction void String a 引数の値をactionに設定する
(ただし条件あり
なし act void なし actionの内容を表示する

※条件は指示2参照
※表示内容は実行結果参照のこと

指示2 setAction()メソッド内の条件

actionフィールドは”飛ぶ”、”走る”、”歩く”、”しゃべる”しか設定できません。

それ以外の値は”そのアクションは現在設定できません”と表示してください

指示3 Exam1004クラスは以下のコメントを参考に作成

実行結果

C:\work\exam>javac Exam1004.java

C:\work\exam>java Exam1004
飛ぶことを練習中です

setAction()内のヒント
ifで条件分岐を行います。
今回は文字列での比較となります。また、条件にはor演算を利用したほうが、記述は短くなります。
以下は条件部分のみの参考例です(答えではありません)

【Java】null 練習問題

以下の指示に従いプログラムを作成してください。
保存後、「Exam1004.java」をコンパイルおよび実行を行ってください。

指示1 Exam1004のmain()メソッド内を変更

setAction()メソッドに設定する値を”しゃがむ”に変更してください。変更後、Exam1004.javaをコンパイルおよび実行してください。

実行結果

C:\work\exam>javac Exam1004.java

C:\work\exam>java Exam1004
そのアクションは現在設定できません
nullことを練習中です

指示2 Test04のact()メソッド内を修正

指示1の実行結果のようにact()メソッドの表示に不備があります。これはactionフィールドの初期値がnullになっていることが原因です。

そこで、act()メソッド内に条件を設定し、actionがnullの際には「”現在アクションは設定されていません”」というメッセージを表示するように変更してください。

実行結果

C:\work\exam>javac Exam1004.java

C:\work\exam>java Exam1004
そのアクションは現在設定できません
現在アクションは設定されていません

※表示が変わらない場合は、Test04.javaをコンパイルして後に、Exam1004.javaのコンパイルおよび実行を行ってください。

null比較のヒント
ifで条件分岐を行います。
nullかどうかを比較するには「変数名 == null」で比較できます。

【Java】オーバーロード 練習問題

以下の指示に従いプログラムを作成してください。また、プログラム内にもコメントで指示がありますので、コメントの下にプログラミングを行ってください。examフォルダ内に「Test05.java」「Exam1005.java」で保存してください。
保存後、「Exam1005.java」をコンパイルおよび実行を行ってください。

指示1 Test05クラスおよびメンバ(フィールド、メソッド)の内容指示

クラス名
Test05
 アクセス修飾子 フィールド名 初期値
private numbers int[] なし(宣言のみ)
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
なし setNumbers void int a numbers配列の0番目に引数の値を格納する
なし setNumbers void int a, int b numbers配列に引数aからbまでの値を順序良く格納する
例:5,10の場合は5から10の6つが配列に格納される
なし print void なし numbers配列の情報を表示する

※引数のデータがa >= bとなっている場合は、以下のようにエラーメッセージを表示すること
「”setNumbers(int a, int b)の引数はa < bとなるように設定してください”」
※表示内容は実行結果参照

各メソッド定義のヒント

各setNumbers()メソッド内でnumbers配列のnewを忘れずに行いましょう。例えば引数の値が「a = 5 , b = 10」の場合、配列の数は6つ必要になります。

print()メソッド内で配列内を表示する際には、numbers.lengthで配列分ループを回すようにしましょう。

指示2 Exam1005.javaは以下のように記述

実行結果

C:\work\exam>javac Exam1005.java

C:\work\exam>java Exam1005
現在配列には以下の数値が保存されています
1
現在配列には以下の数値が保存されています
5 6 7 8 9 10
setNumbers(int a, int b)の引数はa < bとなるように設定してください

【Java】コンストラクタ 練習問題

以下の指示に従ってプログラミングを行ってください。examフォルダ内に「Test06.java」「Exam1006.java」で保存してください。
保存後、「Exam1006.java」をコンパイルおよび実行を行ってください。

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

クラス名
Test06
アクセス修飾子 フィールド名 初期値
private numbers int[] なし(宣言のみ)
アクセス修飾子 コンストラクタ名 引数 処理内容
なし Test05 なし numbers配列に1-10までの数値を格納する
なし Test05 n 引数で指定した数値から10個分の数値をnumbers配列に格納する
例:n=12の場合は12-21まで
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
なし print void なし numbers配列の情報を表示する
なし getNumbers int[] なし numbers配列をreturnする

※表示内容は実行結果参照のこと

指示3 Exam1006クラスは以下のコメントを参考に作成

実行結果

C:\work\exam>javac Exam1006.java

C:\work\exam>java Exam1006
1 2 3 4 5 6 7 8 9 10
配列の最後は15です

スポンサーリンク
レクタングル