練習問題
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) にチェックを入れる
package jp.co.f1.basic.ch02exercise;
class Person02 {
String name; // 名前
int age; // 年齢
// フィールド変数の値を画面にメッセージとして出力する
public void showPerson() {
System.out.println("この人の名前は" + this.name + "で、年齢は" + this.age + "歳です。");
}
}
public class Practice0201 {
public static void main(String[] args) {
// Person02オブジェクトを2つ作成
// ①の仕様を記述
// 個々のオブジェクトのフィールド変数に値を設定
// ②の仕様を記述
// メソッドにアクセスし個々の結果を表示する
// ③の仕様を記述
}
}
問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
package jp.co.f1.basic.ch02exercise;
public class Person03 {
String name; // 名前
int age; // 年齢
// フィールド変数の値を画面にメッセージとして出力する
public void showPerson() {
System.out.println("この人の名前は" + this.name + "で、年齢は" + this.age + "歳です。");
}
// メソッド①
public void setName(String name) {
// ここに処理を記述
}
// メソッド②
public void setAge(int age) {
// ここに処理を記述
}
// メソッド③
public String getName() {
// ここに処理を記述
}
// メソッド④
public int getAge() {
// ここに処理を記述
}
}
問5 以下のPractice0202.javaを実行すると、結果がどうなるか選択肢より選んで答えなさい。
選択肢
a. 「この人の名前は神田太郎で、年齢は30歳です。」が表示される。
b. 実行時エラーになりエラーメッセージが表示される。
c. 「null」が表示される。
d. コンパイルエラーになり実行できない。
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch02exercise
③ 名前: Practice0202
④ 作成するメソッド・スタブの選択: public static void main(String[] args) にチェックを入れる
package jp.co.f1.basic.ch02exercise;
class Person04 {
String name; // 名前
int age; // 年齢
// フィールド変数の値を画面にメッセージとして出力する
public void showPerson() {
System.out.println("この人の名前は" + this.name + "で、年齢は" + this.age + "歳です。");
}
}
public class Practice0202 {
public static void main(String[] args) {
// Person04オブジェクトを作成
Person04 person = new Person04();
// オブジェクトに値を設定
person.name = "神田太郎";
person.age = 30;
// オブジェクト変数にnullを代入
person = null;
// メソッドにアクセスし個々の結果を表示する
person.showPerson();
}
}
問6 以下のPractice0203.javaを実行すると、画面に結果がどのように表示されるか答えなさい。
① ソース・フォルダー: myproj_basic/src
② パッケージ: jp.co.f1.basic.ch02exercise
③ 名前: Practice0203
④ 作成するメソッド・スタブの選択: public static void main(String[] args) にチェックを入れる
package jp.co.f1.basic.ch02exercise;
class Person05 {
String name; // 名前
int age; // 年齢
// フィールド変数の値を画面にメッセージとして出力する
public void showPerson() {
String name = "山田花子";
int age = 25;
System.out.println("この人の名前は" + name + "で、年齢は" + age + "歳です。");
}
}
public class Practice0203 {
public static void main(String[] args) {
// Person05オブジェクトを作成
Person05 person = new Person05();
// オブジェクトに値を設定
person.name = "神田太郎";
person.age = 30;
// メソッドにアクセスし個々の結果を表示する
person.showPerson();
}
}