練習問題
6.4 練習問題
本章で習った内容を元に練習問題を解いてください。
問1 次の設問①~⑤について○か×で答えなさい。
設問
① クラスのメンバであるフィールドとメソッドは、インスタンスメンバまたはクラスメンバに分類することができる。
② インスタンスメンバにはオブジェクトを生成して初めてアクセスが可能になる。
③ インスタンスメソッドからクラスメンバへアクセスは不可能。
④ オブジェクトを生成すると、クラスメンバもオブジェクトに関連付けられる。
⑤ クラスメソッドからインスタンスメンバにアクセス可能。
問2 以下に示すPractice0601.javaのソースコード①~④が、どのように間違っているか答えなさい。
ソースコード
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch06exercise
③ 名前: Practice0601
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる

問3 以下の仕様をもつBooks1.javaクラスを定義しなさい。
フィールド変数:アクセス修飾子は全て「private」にする
① クラス変数 int型 count 0で初期化
② インスタンス変数 String型 title 初期化なし
③ インスタンス変数 int型 price 初期化なし
④ インスタンス変数 int型 number 初期化なし
コンストラクタ
引数: String型 title、int型 price
処理: クラス変数のcountをインクリメント(1増やす)します。
引数の値を同一名のフィールド変数にそれぞれ格納します。
フィールド変数numberにクラス変数countの値を代入します。
ソースコード
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch06exercise
③ 名前: Books1
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
1 | package jp.co.f1.basic.ch06exercise; |
問4 問題6-3で作成したBook1.javaに、以下の仕様をもつ2つのメソッドを追加したBook2.javaを作成しなさい。
メソッド仕様: メソッドのアクセス修飾子は全て「public」にする
① メソッド名: showBook(インスタンスメソッド)
戻り値: なし
引数: なし
処理内容: 以下のメッセージを画面に出力する。※title、price、numberはフィールド変数です。
「この本のタイトルはtitle、価格はpriceです。」
「生成番号はnumberです。」
② メソッド名: getCount(クラスメソッド)
戻り値: int型
引数: なし
処理内容: クラス変数countの値をリターンする。
ソースコード
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch06exercise
③ 名前: Books2
1 | package jp.co.f1.basic.ch06exercise; |
問5 問4で作成したBook2.javaをコピーしBook3クラスを作成し、以下の実行結果になるようにPractice0602.javaを作成しなさい。
実行結果
Practice0602クラスのmainメソッド仕様
① キーボード入力用のクラスScannerクラスをオブジェクト化する。※2
② 3回ループするfor文を記述する。
③ キーボードから本のタイトルを入力する。※1
④ キーボードから本の価格を入力する。※1
⑤ ③と④で入力した値を引数に、Book3型のオブジェクトを生成する。※1
⑥ Book3型オブジェクトのインスタンスメンバである、showBookメソッドにアクセスする。※1
⑦ Book3クラスメンバであるgetCountメソッドを利用して、画面に本の総生成回数を表示する。※2
※1:②のループ内で処理を行う。 ※2:②のループ外で処理を行う。
ソースコード
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch06exercise
③ 名前: Practice0602
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
1 | package jp.co.f1.basic.ch06exercise; |
3 | import java.util.Scanner; |
9 | public class Practice0602 { |
10 | public static void main(String[] args) { |
15 | System.out.print( "本のタイトルを入力してください->" ); |
16 | String title = sin.next(); |
18 | System.out.print( "本の価格を入力してください->" ); |
19 | int price = sin.nextInt(); |
NEXT>> 6.5 練習問題 解答