Java第4章 総合練習問題【前半】

記事上広告

この総合演習問題では第4章の総まとめ復習問題となります。

問題はどんどん難しくなっていきます。

前半はメソッドやオーバーロード、コンストラクタ等の問題。

後半では前半の内容にプラスして、継承やオーバーライド、インタフェースと実装等の問題となっています。

2018/11/13 問題を追加

フィールドとメソッド

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

ここからの問題は第4章までの様々な記述を利用してプログラムを作成していきます。

極力、APIなどのすでに作られたプログラムは利用せずに、この練習問題は一部を除き基本構文のみで作成してください。

【Java】総合練習問題 フィールドとメソッド基礎

以下の「プログラム内容」「実行結果」を確認して、プログラムを完成させてください。examフォルダ内に「Exam1011.java」「Dog.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

【Dogクラス プログラム内容】

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

クラス名
Dog
アクセス修飾子 フィールド名 初期値
private name String なし(宣言のみ)
private type String なし(宣言のみ)
private color String なし(宣言のみ)
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
なし setName void String n 引数の値をnameに設定する
なし setType void String t 引数の値をtypeに設定する
(ただし条件あり※1
なし setColor void String c 引数の値をtypeに設定する
(ただし条件あり※2
なし info void なし name、type、colorに設定されているデータを表示する※3

※1 条件は指示2参照
※2 条件は指示3参照
※3 表示は実行結果参照

指示2 setType()内の条件

typeに設定できる犬種は現在のところ「プードル」「チワワ」「プレーリードッグ」「ブルドッグ」とします。それ以外の犬種が引数で指定された場合「雑種」とします。

指示3 setColor()内の条件

colorに設定できる色は現在のところ「白」「黒」「茶」とします。それ以外の色が指定されてた場合は「茶」とします。

【Exam1011クラス プログラム内容】

コマンドライン引数から入力される「名前」「犬種」「色」を作成したインスタンスにセットします。また、データセット後は表示を行います。コメント下にプログラムを追加して実行結果のように表示してください。

実行結果

C:\work\exam>javac Exam1011.java

C:\work\exam>java Exam1011 太郎 プードル 白
犬の名前は太郎です。
犬種はプードルです。
色は白です。

C:\work\exam>java Exam1011 太郎 ゴールデンレトリバー 茶
犬の名前は太郎です。
犬種は雑種です。
色は茶です。

※実行させる際、名前と犬種と色の間は全角スペースではなく半角スペースを入力するように気を付けましょう

コンストラクタとオーバーロード

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

以下の「プログラム内容」「実行結果」を確認して、プログラムを完成させてください。examフォルダ内に「Exam1012.java」「ThanksConverter.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

【ThanksConverterクラス プログラム内容】

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

クラス名
ThanksConverter
アクセス修飾子 フィールド名 初期値
private countries String[] 国名を初期値で格納※データは表下に記載
private thanks_data String[] 国ごとの感謝の言葉を初期値で格納※データは表下に記載
private kana_data String[] 国ごとの感謝の言葉(カタカナ)を初期値で格納※データは表下に記載
private cursor int なし(宣言のみ)※現在選択されている国のインデックスを格納
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
public convert String String country 引数で取得した国名を元に、対応するthanks_data配列のデータを戻り値で返す。
public convert String String country, boolean isKana 第一引数で取得した国名を元に、対応する配列のデータを戻り値で返す。

ただし、第二引数の値がtrueの場合は、kana_data配列のデータを、falseの場合はthanks_data配列のデータを返す。

※該当する国がない場合の戻り値は”該当なし”としてください

国名

“usa”,”spa”,”fra”,”ger”,”ita”,”por”

国ごとの感謝の言葉

“Thank you”,”Gracias”,”Merci”,”Danke schon”,”Grazie”,”Obrigado”

国ごとの感謝の言葉(カタカナ)

“サンキュー “,”グラシアス”,”メルシー”,” ダンケ・シェーン”,”グラッツィエ”,”オブリガード”

【Exam1012クラス プログラム内容】

ThanksConverterクラスを利用してプログラムを実行します。コメント下にプログラムを追加して実行結果のように表示してください。

実行結果

C:\work\exam>javac Exam1012.java

C:\work\exam>java Exam1012
イタリアのありがとう
Grazie(グラッツィエ)

下記のヒントは一例です。どのように記述してよいかわからない人はクリックして確認してください。

ThanksConverterクラスのヒント

xxxxxの部分は右のコメントを見て埋めてください。

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

以下の「プログラム内容」「実行結果」を確認して、プログラムを完成させてください。examフォルダ内に「Exam1013.java」「Dog2.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

【Dog2クラス プログラム内容】

Dog2クラスは上で作成したDogクラスをコピーして修正します。Dog2クラスはDogと違い「名前」「犬種」「色」はコンストラクタで設定し、メソッドでは設定できないように変更します。

もともとあったDogクラスで設定されているメソッドは削除してください。

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

クラス名
Dog2
アクセス修飾子 フィールド名 初期値
private name String なし(宣言のみ)
private type String なし(宣言のみ)
private color String なし(宣言のみ)
アクセス修飾子 引数 コンストラクタの処理内容
public String n, String t, String c 「名前」「犬種」「色」をフィールドに設定するコンストラクタ※1
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
public info void なし name、type、colorに設定されているデータを表示する※2

※1 条件は指示2参照
※2 表示は実行結果参照(変更なし)

指示2 コンストラクタ内の条件

typeに設定できる犬種は現在のところ「プードル」「チワワ」「プレーリードッグ」「ブルドッグ」とします。それ以外の犬種が引数で指定された場合「雑種」とします。

colorに設定できる色は現在のところ「白」「黒」「茶」とします。それ以外の色が指定されてた場合は「茶」とします。

【Exam1013クラス プログラム内容】

コマンドライン引数から入力される「名前」「犬種」「色」を作成したインスタンスにセットします。また、データセット後は表示を行います。コメント下にプログラムを追加して実行結果のように表示してください。

実行結果

C:\work\exam>javac Exam1013.java

C:\work\exam>java Exam1013 太郎 プードル 白
犬の名前は太郎です。
犬種はプードルです。
色は白です。

C:\work\exam>java Exam1013 太郎 ゴールデンレトリバー 茶
犬の名前は太郎です。
犬種は雑種です。
色は茶です。

※実行させる際、名前と犬種と色の間は全角スペースではなく半角スペースを入力するように気を付けましょう

【Java】総合練習問題 コンストラクタとオーバーロード

以下の「プログラム内容」「実行結果」を確認して、プログラムを完成させてください。examフォルダ内に「Exam1014.java」「Dog3.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

【Dog3クラス プログラム内容】

Dog3クラスは上で作成したDog2クラスをコピーして修正します。Dog3クラスはDog2と違い「名前」「犬種」「色」はコンストラクタで設定し、メソッドでは設定できないように変更します。

Dog2と違い、コンストラクタを複数定義(オーバーロード)します。どのようなコンストラクタを作成するかは以下の表を参考にしてください。

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

クラス名
Dog3
アクセス修飾子 フィールド名 初期値
private name String なし(宣言のみ)
private type String なし(宣言のみ)
private color String なし(宣言のみ)
アクセス修飾子 引数 コンストラクタの処理内容
public String n, String t, String c 「名前」「犬種」「色」をフィールドに設定するコンストラクタ※1
public String n 「名前」をフィールドに設定するコンストラクタ※1
「犬種」は雑種、「色」は茶をフィールドに設定する
public String n,String t 「名前」「犬種」をフィールドに設定するコンストラクタ※1
「色」は茶をフィールドに設定する
アクセス修飾子 メソッド名 戻り値の型 引数 処理内容
public info void なし name、type、colorに設定されているデータを表示する※2

※1 条件は指示2参照
※2 表示は実行結果参照(変更なし)

指示2 コンストラクタ内の条件

typeに設定できる犬種は現在のところ「プードル」「チワワ」「プレーリードッグ」「ブルドッグ」とします。それ以外の犬種が引数で指定された場合「雑種」とします。

colorに設定できる色は現在のところ「白」「黒」「茶」とします。それ以外の色が指定されてた場合は「茶」とします。

※引数を2つ指定するコンストラクタと、引数を1つ指定するコンストラクタは、引数3つのコンストラクタを内部で利用すると処理が少なくて済みます。(参考

下記のヒントは一例です。どのように記述してよいかわからない人はクリックして確認してください。

Dog3クラスのヒント

xxxxxの部分は右のコメントを見て埋めてください。

【Exam1014クラス プログラム内容】

コマンドライン引数から入力される「名前」「犬種」「色」を作成したインスタンスにセットします。また、データセット後は表示を行います。コメント下にプログラムを追加して実行結果のように表示してください。

実行結果

C:\work\exam>javac Exam1014.java

C:\work\exam>java Exam1014 太郎
犬の名前は太郎です。
犬種は雑種です。
色は茶です。

C:\work\exam>java Exam1014 太郎 プレーリードッグ
犬の名前は太郎です。
犬種はプレーリードッグです。
色は茶です。

C:\work\exam>java Exam1014 太郎 プレーリードッグ 白
犬の名前は太郎です。
犬種はプレーリードッグです。
色は白です。

※実行させる際、名前と犬種と色の間は全角スペースではなく半角スペースを入力するように気を付けましょう

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