練習問題

2.7 練習問題

本章で習った内容を元に練習問題を解いてください。

問1 次の設問①~⑤について○か×で答えなさい。

設問
① クラスは必ず「フィールド変数」と「メソッド」を定義しなければならない。
② クラスは型として使用できオブジェクト変数を定義できる。
③ オブジェクト変数にはnew演算子で生成された、オブジェクト自身のデータがそのまま代入される。
④ Javaプログラムのデータの型は、大きく分けると基本データ型と参照型の2種類が存在する。
⑤ thisキーワードでメンバにアクセスする場合、処理内容は変わらないので記述しない方がよい。

問2 以下のメンバをもつクラスPerson01.javaを定義しなさい。

フィールド変数
①文字列型 name //名前
②整数型 age //年齢

メソッド
①メソッド名:showPerson
 戻り値:無し 引数:無し
 処理内容:画面に「この人の名前はnameで、年齢はage歳です。」と表示する。
 ※nameとageはフィールド変数の値になります。

問3 以下の仕様を持つPractice0201.javaを作成し、実行結果になるようにmainメソッドの処理を作成しなさい。問2で作成したPerson01クラスをコピーしたPerson02クラスを作成し、Practice0201.java内に記述して下さい。

実行結果

作成仕様

① Person02クラスよりオブジェクトを2つ生成する。その際のオブジェクト変数名はperson1とperson2とする。
② ①で生成した個々のオブジェクトのフィールド変数に、実行結果になる値を設定します。
③ オブジェクト内のshowPersonメソッドにアクセスし、個々の結果を画面に表示する。

① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch02exercise
③ 名前: Practice0201
④ 作成するメソッド・スタブの選択: public static void main(String[] args) にチェックを入れる

1package jp.co.f1.basic.ch02exercise;
2 
3class Person02 {
4  String name; // 名前
5  int age; // 年齢
6 
7  // フィールド変数の値を画面にメッセージとして出力する
8  public void showPerson() {
9    System.out.println("この人の名前は" + this.name + "で、年齢は" + this.age + "歳です。");
10  }
11}
12 
13public class Practice0201 {
14  public static void main(String[] args) {
15    // Person02オブジェクトを2つ作成
16    // ①の仕様を記述
17 
18    // 個々のオブジェクトのフィールド変数に値を設定
19    // ②の仕様を記述
20 
21    // メソッドにアクセスし個々の結果を表示する
22    // ③の仕様を記述
23  }
24}

問4 問2で作成したクラスPerson01.javaに、以下の仕様のメソッドを追加したPerson03.javaを作成しなさい。

メソッド

① メソッド名:setName
 戻り値:無し 引数:String name
 処理内容:引数nameの値をフィールド変数nameに格納する。

② メソッド名:setAge
 戻り値:無し 引数:int age
 処理内容:引数ageの値をフィールド変数ageに格納する。

③ メソッド名:getName
 戻り値:String 引数:無し
 処理内容:フィールド変数nameの値を返す。

④ メソッド名:getAge
 戻り値:int 引数:無し
 処理内容:フィールド変数ageの値を返す。

※thisキーワードを必ず使用してください。

① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch02exercise
③ 名前: Person03

1package jp.co.f1.basic.ch02exercise;
2 
3public class Person03 {
4  String name; // 名前
5  int age; // 年齢
6 
7  // フィールド変数の値を画面にメッセージとして出力する
8  public void showPerson() {
9    System.out.println("この人の名前は" + this.name + "で、年齢は" + this.age + "歳です。");
10  }
11 
12  // メソッド①
13  public void setName(String name) {
14    // ここに処理を記述
15  }
16 
17  // メソッド②
18  public void setAge(int age) {
19    // ここに処理を記述
20  }
21 
22  // メソッド③
23  public String getName() {
24    // ここに処理を記述
25  }
26 
27  // メソッド④
28  public int getAge() {
29    // ここに処理を記述
30  }
31}

問5 以下のPractice0202.javaを実行すると、結果がどうなるか選択肢より選んで答えなさい。

選択肢
a. 「この人の名前は神田太郎で、年齢は30歳です。」が表示される。
b. 実行時エラーになりエラーメッセージが表示される。
c. 「null」が表示される。
d. コンパイルエラーになり実行できない。

① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch02exercise
③ 名前: Practice0202
④ 作成するメソッド・スタブの選択: public static void main(String[] args) にチェックを入れる

1package jp.co.f1.basic.ch02exercise;
2 
3class Person04 {
4  String name; // 名前
5  int age; // 年齢
6 
7  // フィールド変数の値を画面にメッセージとして出力する
8  public void showPerson() {
9    System.out.println("この人の名前は" + this.name + "で、年齢は" + this.age + "歳です。");
10  }
11}
12 
13public class Practice0202 {
14  public static void main(String[] args) {
15    // Person04オブジェクトを作成
16    Person04 person = new Person04();
17 
18    // オブジェクトに値を設定
19    person.name = "神田太郎";
20    person.age = 30;
21 
22    // オブジェクト変数にnullを代入
23    person = null;
24 
25    // メソッドにアクセスし個々の結果を表示する
26    person.showPerson();
27  }
28}

問6 以下のPractice0203.javaを実行すると、画面に結果がどのように表示されるか答えなさい。

① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch02exercise
③ 名前: Practice0203
④ 作成するメソッド・スタブの選択: public static void main(String[] args) にチェックを入れる

1package jp.co.f1.basic.ch02exercise;
2 
3class Person05 {
4  String name; // 名前
5  int age; // 年齢
6 
7  // フィールド変数の値を画面にメッセージとして出力する
8  public void showPerson() {
9    String name = "山田花子";
10    int age = 25;
11    System.out.println("この人の名前は" + name + "で、年齢は" + age + "歳です。");
12  }
13}
14 
15public class Practice0203 {
16  public static void main(String[] args) {
17    // Person05オブジェクトを作成
18    Person05 person = new Person05();
19 
20    // オブジェクトに値を設定
21    person.name = "神田太郎";
22    person.age = 30;
23 
24    // メソッドにアクセスし個々の結果を表示する
25    person.showPerson();
26  }
27}

NEXT>> 2.8 練習問題 解答

f