練習問題
3.5 練習問題
本章で習った内容を元に練習問題を解いてください。
問1 次の設問①~⑤について○か×で答えなさい。
設問
① アクセス制限のパターンは「public」、「デフォルト」、「private」の3つがある。
② private修飾子は外部からのアクセスを不可能にする。
③ アクセス修飾子はクラス内のメンバのみにしか設定できない。
④ カプセル化とはフィールド変数をprivateに設定しアクセス不可能にしただけのクラスのことをさす。
⑤ アクセサメソッドとは値を設定するセッターメソッドと、値を取得するゲッターメソッドの総称である。
問2 以下に示すアクセス修飾子を制限の「強い順」に番号をつけて答えなさい。
アクセス修飾子
① protected
② デフォルト
③ private
④ public
問3 以下のカプセル化したソースコードの誤り3つ答えなさい。
ソースコード
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch03exercise
③ 名前: Dog
1 | package jp.co.f1.basic.ch03exercise; |
6 | public String getname() { |
10 | void setName(String name) { |
問4 以下に示すBooks1クラスをカプセル化しなさい。
ヒント
- フィールド変数のprivate定義
- 各フィールド変数に対応するアクセサメソッドの定義
ソースコード
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch03exercise
③ 名前: Books1
1 | package jp.co.f1.basic.ch03exercise; |
9 | System.out.println( "この本のタイトルは" + this .title + "で、値段は" + this .price+ "です。" ); |
問5 問4でカプセル化したクラスBooks1.javaで、不正な値を防ぐ処理を追加したBooks2.javaを作成しなさい。
変更仕様
価格について負の値が入力された場合は「0」を設定する処理をpriceのセッターメソッドに追加する。
不正な値の場合は以下のメッセージを画面に出力する。
「設定する値が-Xのため、価格は0を設定しました。」
※「-X」は引数の値を出力するためその都度変わります。
問6 以下の実行結果になるようなPractice0301.javaのmainメソッドの処理を作成しなさい。Practice0301.java内には問題3-5で作成したBooks2クラスをコピーしてBooks3クラスを定義する。
実行結果
mainメソッドの処理仕様
①Books3オブジェクトを2つ生成する。
②1つ目のオブジェクトにタイトル「Java入門テキスト」、価格「2580」を設定する。
③②の結果を画面に表示するshowメソッドを呼び出す。
④2つ目のオブジェクトにタイトル「Java基礎テキスト」、価格「-3800」を設定する。
⑤④の結果を画面に表示するshowメソッドを呼び出す。
※②④の値の設定には各セッターメソッドを利用する。
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch03exercise
③ 名前: Practice0301
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
1 | package jp.co.f1.basic.ch03exercise; |
9 | System.out.println( "この本のタイトルは" + this .title + "で、値段は" + this .price + "です。" ); |
12 | public String getTitle() { |
16 | public int getPrice() { |
20 | public void setTitle(String title) { |
24 | public void setPrice( int price) { |
27 | System.out.println( "設定する値が" + price + "のため、価格は0を設定しました。" ); |
34 | public class Practice0301 { |
35 | public static void main(String[] args) { |
NEXT>> 3.6 練習問題 解答