【Java SE Bronze】問題まとめ

Java
Toshi
Toshi
Javaの勉強を始めて、Java SE Bronzeの資格を取得しなければいけなくなった人向けにWebで勉強できるように問題と解答この記事にまとめてみました。※解説は含みません

 本記事の内容

Java SE Bronze 問題集

Java SE Bronze 問題集 

 

Java SE Bronze (Available only in Japan)
試験番号: 1Z0-818
出題形式: 選択問題
試験時間: 65 分
受験料(税抜): ¥11,400
出題数: 60 問
合格ライン: 60 %

Java言語のプログラムの流れ

1. Javaに関する説明として、正しいものを選びなさい。(2つ選択)
A. すべての変数は、型の宣言をしなければならない
B. すべての式は、型を持たない
C. 式の型はコンパイル時に解釈される
D. 実行時にエラーを発生させることで、型の整合性を確認する
解答
2. Javaに関する説明として、正しいものを選びなさい。(2つ選択)
A. マルチスレッドによる並行処理をサポートする
B. マルチプロセスによる並行処理をサポートする
C. シングルスレッドアプリケーションのみをサポートする
D. 並行処理を完全に制御できる
E. 並行処理を部分的に制御できる
解答
3. Javaに関する説明として、正しいものを選びなさい。(2つ選択)
A. 特定のOSに特化したプログラミング言語である
B. ほかのプログラミング言語に比べて高速に実行できる
C. あらかじめ機械語にコンパイルされる
D. メモリ管理が自動化される
E. セキュリティが向上する実行方式を取り入れている
解答
4. Javaプログラムの作成から実行までの流れに関する説明として、正しいものを選びなさい。(2つ選択)
A. コンパイラによって機械語にコンパイルされる
B. コンパイラによって中間コードにコンパイルされる
C. 実行可能ファイルを作成する
D. JVMにクラスファイルを読み込ませる
解答
5. Javaのクラスファイルに関する説明として、正しいものを選びなさい。(1つ選択)
A. プラットフォームに依存したネイティブコードが記述されている
B. プラットフォームに依存しないネイティブコードが記述されている
C. JVMだけが理解できるコードが記述されている
D. 人間が理解できるコードが記述されている
解答
6. Javaに関する説明として、正しいものを選びなさい。(2つ選択)
A. 自動的にメモリを解放する
B. メモリを任意のタイミングで解放できる
C. ポインタを使ってメモリを自由に操作できる
D. メモリの効率的な利用を自動化する
解答
7. アプリケーションのエントリーポイントとなるメソッドの条件として、正しいものを選びなさい。(3つ選択)
A. publicであること
B. staticであること
C. 1つのソースファイルに複数記述できる
D. 戻り値型はintであること
E. 引数はString配列型もしくはString型の可変長引数であること
F. 戻り値として0、もしくは1を戻すこと
解答
8. Javaのソースファイルに関する説明として、正しいものを選びなさい。(2つ選択)
A. 1つのソースファイルにpublicなインターフェイスを複数記述できる
B. ソースファイルの名前はpublicなクラス名と一致させなくてはいけない
C. 1つのソースファイルには、1つのクラスだけを記述できる
D. 1つのソースファイル内に、デフォルトのアクセス修飾子で修飾したインタフェースとpublicなクラスの両方を記述できる
E. 1つのソースファイルにpublicなクラスを複数記述できる
解答
9. JavaのエディションのうちJava SEに関する説明として、正しいものを選びなさい。(2つ選択)
A. JVMが含まれる
B. GUIアプリケーション開発に向いている
C. 大規模システム向けの機能をセットして提供している
D. 仕様のみを提供している
解答
10. JavaのエディションのうちJava EEに関する説明として、正しいものを選びなさい。(2つ選択)
A. Java EEでは仕様だけを定め、実装は各社が提供している
B. Java SEの範囲は含まない
C. エンタープライズ用途向けの多くの機能をセットにしたものである
D. 携帯電話のような、リソースが制限されたデバイス向けの機能を提供している
解答
11. JavaのエディションのうちJava MEに関する説明として、正しいものを選びなさい。(2つ選択)
A. Java SEの機能の一部を抜き出して定義したエディションである
B. 基本的なライブラリとJVMを組み合わせたものを「プロファイル」よ呼ぶ
C. 特定のデバイスに対応するAPIだけを抽出したものを「コンフィギュレーション」と呼ぶ
D. Java MEでは、JVMではなく「KVM」と呼ばれる仮想マシンを使うことがある
解答
Java言語のプログラムの流れ(解答)
1. A、C
2. A、E
3. D、E
4. B、D
5. C
6. A、D
7. A、B、E
8. B、D
9. A、B
10. A、C
11. A、D

データ宣言と使用

1. プリミティブ型として正しいものを選びなさい。(2つ選択)
A. Integer
B. double
C. Number
D. byte
E. Character
解答
2. 参照型として正しいものを選びなさい。(3つ選択)
A. String
B. Date
C. int
D. boolean
E. char[]
解答
3. 整数値を代入できる型として正しいものを選びなさい。(3つ選択)
A. double
B. char
C. short
D. int
E. float
解答
4. 真偽値を保持できる型として正しいものを選びなさい。(1つ選択)
A. char
B. boolean
C. double
D. int
E. String
解答
5. プリミティブ型および参照型変数の説明として正しいものを選びなさい。(2つ選択)
A. プリミティブ型の変数は配列インスタンスへの参照を保持できる
B. プリミティブ型の変数は文字列を保持できる
C. 参照型の変数はインスタンスへの参照を保持できる
D. 参照の変数は整数値を保持できる
E. プリミティブ型の変数は数値、文字、真偽値を保持できる
解答
6. 変数の宣言方法として正しいものを選びなさい。(2つ選択)
A. int number;
B. length log;
C. String name, code;
D. bolean long;
E. double 3.7;
解答
7. 数値を扱う変数の宣言と初期化方法として正しいものを選びなさい。(2つ選択)
A. long number = 2.5;
B. float number = 5;
C. byte number = 128;
D. double number = 4.3;
E. int number = 3.0;
解答
8. 真偽値を扱う変数の宣言と初期化方法として正しいものを選びなさい。(1つ選択)
A. boolean flag = TRUE;
B. boolean flag = “true”;
C. boolean flag = false;
D. boolean flag = 0;
E. boolean flag = ‘false’;
解答
9. 文字を扱う変数の宣言と初期化方法として正しいものを選びなさい。(3つ選択)
A. char c = ‘AB’;
B. char c = “T”;
C. char c = ‘¥u1F1C’;
D. char c = ‘U’;
E. char c = 97;
解答
10. 次のコードのうち、コンパイルエラーにならないものを選びなさい。(3つ選択)
A. String str = “A”;
B. String str = “null”;
C. String str = ‘A’;
D. String str = “true”;
E. String str = true;
解答
11. 定数の宣言方法として正しいものを選びなさい。(2つ選択)
A. int final a = 10;
B. int frozen a = 17;
C. frozen int a = 13;
D. final int a = 8;
E. int a final = 3;
F. final int a;
解答

12. 次のプログラムをコンパイル、実行しったときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		final String COLOR = "blue";
		// other code
		COLOR = "red";
		System.out.println(COLOR);
	}
}

A.「blue」と表示される
B.「red」と表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

13. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		char a = 'A'; b = 'B';
		System.out.println(a);
		System.out.println(b);
	}
}

A.「AB」と表示される
B.「A」と表示される
C.「B」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

14. 次のプログラムの2行目に挿入するコードとして、正しいものを選びなさい。(1つ選択)

public class Doument {
    // insert code here
}

A. private title String;
B. private String title;
C. String title private;
D. String private title;
解答

15. 次のプログラムの2行目に挿入するコードとして、正しいものを選びなさい。(2つ選択)

public class Item {
    // insert code here
}

A. static int count;
B. int count static;
C. static private int count;
D. static count int;
解答

16. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 3; 
		for(int i = 0; i < 3; i++) {
			int total = 0;
			total += a;
		}
		System.out.println(total);
	}
}

A. 0が表示される
B. 9が表示される
C. 12が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

17. 配列の宣言・生成方法として正しいものを選びなさい。(1つ選択)
A. int[] array = new int[];
B. int() array = new int(3);
C. int array = new int[3];
D. int[3] array = new int[];
E. int[] array = new int[3];
解答
18. 配列の初期化の記述として正しいものを選びなさい。(1つ選択)
A. int[] array = {3, 8, 10};
B. int[] array = new {3, 8, 10};
C. int[] array = (3, 8, 10);
D. int() array = {3, 8, 10};
E. int array = {3, 8, 10};
解答
19. 配列の変数名をarrayとした場合、配列の長さを参照する方法として正しいものを選びなさい。(1つ選択)
A. array.size;
B. array.length();
C. attay length;
D. array.length;
E. array.size();
解答

20. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int[] array = {3, 7, 5};
		System.out.println(array[1]);
	}
}

A. 3が表示される
B. 7が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

21. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int[] array = {1, 0, 2, 3};
		System.out.println(array[4]);
	}
}

A. 3が表示される
B. 4が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

22. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int[] array = new int[3];
		array[0] = 3.5;
		System.out.println(array[0]);
	}
}

A. 3が表示される
B. 3.5が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

23. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int[] array1 = {3, 8, 4};
		int[] array2 = array1;
		System.out.println(array2[0]);
	}
}

A. 0が表示される
B. 3が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

24. 次のプログラムを実行したときに表示結果のとおりになるようにしたい。実行するコマンドとして正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(arg[0]);
		System.out.println(arg[1]);
	}
}

【表示結果】

Hello
World

A. java Main HelloWorld
B. java Main Hello, World
C. java Main Hello World
D. java Main (Hello World)
解答

25. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(arg[0]);
	}
}

【実行方法】

java Main

A. 0が表示される
B. 何も表示されない
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

データ宣言と使用(解答)
1. B、D
2. A、B、E
3. B、C、D
4. B
5. C、E
6. A、C
7. B、D
8. C
9. C、D、E
10. A、B、D
11. D、F
12. C
13. D
14. B
15. A、C
16. D
17. E
18. A
19. D
20. B
21. D
22. C
23. B
24. C
25. D

演算子と分岐文

1. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(5 / 2);
	}
}

A. 2.5が表示される
B. 2が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

2. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(2 * 3.0);
	}
}

A. 6が表示される
B. 6.0が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

3. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(10 % 3);
	}
}

A. 1が表示される
B. 3が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

4. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 2;
		i *= 3;
		System.out.println(i);
	}
}

A. 2が表示される
B. 6が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

5. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 1;
		i--;
		System.out.println(i);
	}
}

A. 1が表示される
B. 0が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

6. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(10 + "5");
	}
}

A. 105が表示される
B. 15が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

7. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(2 * 3 + 4 / 2);
	}
}

A. 5が表示される
B. 7が表示される
C. 8が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

8. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println((7 + 2) * 2 / (2 - 6));
	}
}

A. 3が表示される
B. -4が表示される
C. -4.5が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

9. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(5 + 10 + "5");
	}
}

A. 155が表示される
B. 20が表示される
C. 5105が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

10. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
                int a = 2;
		int b = 5;
		System.out.println(++a + b--);
	}
}

A. 6が表示される
B. 7が表示される
C. 8が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

11. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 0;
		if(a = 0)
		    System.out.println("A");
	}
}

A. 「A」と表示される
B. 何も表示されない
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

12. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		if(false)
			System.out.print("A");
			System.out.print("B");
			System.out.print("C");
	}
}

A. 何も表示されない
B. 「BC」と表示される
C. 「ABC」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

13. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 0;
		if(a == 1) {
			System.out.print("A");
		} else {
			System.out.print("B");
		}
		System.out.print("C");
	}
}

A. 「AC」と表示される
B. 「BC」と表示される
C. 「C」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

14. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		String str1 = "sample";
		String str2 = "sample";
		if(str1 == str2) {
			System.out.println("same");
		} else {
			System.out.println("different");
		}
	}
}

A. 「same」と表示される
B. 「different」と表示される
C. 何も表示されない
D. コンパイルエラーが発生する
解答

15. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 80;
		if (a < 50) {
			System.out.println("A");
		} else if(a < 70) {
			System.out.println("B");
		} else {
			System.out.println("C");
		}
	}
}

A.「A」と表示される
B.「B」と表示される
C.「C」と表示される
D. 何も表示されない
E. コンパイルエラーが発生する
解答

16. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 80;
                int b = 60;
		if (a >= 80 && b >= 80) {
			System.out.println("A");
		} else if(a >= 80 || b >= 80) {
			System.out.println("B");
		} else {
			System.out.println("C");
		}
	}
}

A.「A」と表示される
B.「B」と表示される
C.「C」と表示される
D. 何も表示されない
E. コンパイルエラーが発生する
解答

17. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 0;
		int b = 0;
		if (++a > 0 && ++b > 0) {
			System.out.print("a=" + a);
			System.out.print(",b=" + b);
		}
	}
}

A. 何も表示されない
B.「a=0,b=0」と表示される
C.「a=1,b=1」と表示される
D.「a=1,b=0」と表示される
E.「a=0,b=1」と表示される
解答

18. 次のプログラムの5行目、8行目に挿入するコードとして、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 1;
		switch (a) {
			// insert code here
				System.out.println("A");
				break;
			// insert code here
				System.out.println("B");
				break;	
		}
	}
}

A. 5行目 when 1; / 8行目 when 2;
B. 5行目 else 1; / 8行目 else 2;
C. 5行目 while 1; / 8行目 while 2;
D. 5行目 case 1; / 8行目 case 2;
解答

19. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		double b = 1.5;
		switch (b) {
			case 1.0:
				System.out.print("A");
				break;
			case 1.5:
				System.out.print("B");
				break;
			case 1.5:
				System.out.print("C");
				break;
		}
	}
}

A.「A」と表示される
B.「B」と表示される
C.「C」と表示される
D. 何も表示されない
E. コンパイルエラーが発生する
解答

20. 次のプログラムを実行し、「Z」が表示されるようにしたい。9行目に挿入するコードとして正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		char c = 'e';
		switch (c) {
			case 'a':
				System.out.print("A");
			case 'b':
				System.out.print("B");
			// insert code here
				System.out.print("Z");
		}
	}
}

A. end:
B. finally:
C. default:
D. exit:
解答

21. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 1;
		switch (a) {
			case 1:
				System.out.print("A");
			case 2:
				System.out.print("B");
				break;
			case 3:
				System.out.print("C");
				break;
		}
	}
}

A.「BC」と表示される
B.「B」と表示される
C.「AB」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

22. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		String name = "cd";
		switch (name) {
			case "book":
				System.out.print("本");
				break;
			case "game":
				System.out.print("ゲーム");
				break;
			default:
				System.out.print("その他");
		}
	}
}

A.「本」と表示される
B.「ゲーム」と表示される
C.「その他」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

23. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int a = 1;
		switch (a) {
			case 1:
				System.out.print("A");
			case 2:
				System.out.print("B");
			default:
				System.out.print("C");
		}
	}
}

A.「ABC」と表示される
B.「AB」と表示される
C.「A」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

演算子と分岐文(解答)
1. B
2. B
3. A
4. B
5. B
6. A
7. C
8. B
9. A
10. C
11. C
12. B
13. B
14. A
15. C
16. B
17. D
18. D
19. D
20. C
21. C
22. C
23. A

ループ文

1. 次のプログラムの空欄に挿入するコードとして、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 0;
		while (          ){
			System.out.println("LOOP.");
			i++;
		}
	}
}

A. i = 5
B. i = 1; i < 5
C. i < 5
D. i < 5; i = i +1
解答

2. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 0;
		while (i < 5) {
			i++;
		}
		System.out.println(i);
	}
}

A. 4が表示される
B. 5が表示される
C. 6が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる

3. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 1;
		int j = 2;
		while (i < 10) {
			i = j * i;
		}
		System.out.println("i=" + i + ", j=" + j);
	}
}

A.「i=8,j=1」が表示される
B.「i=16,j=2」が表示される
C.「i=32,j=2」が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

4. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 1;
		int j = 10;
		while (i < j) {
			System.out.println("LOOP");
			i *= 2;
			j /= 2;
		}
	}
}

A. 何も表示されない
B.「LOOP」が1回表示される
C.「LOOP」が2回表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

5. 次のプログラムの空欄に挿入するコードとして、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for(          ) {
			System.out.println("LOOP");
		}
	}
}

A. int i = 0; i++; i < 5
B. int i = 0; i < 5; i++
C. i < 5; int i = 0; i++
D. i = 0; i < 5; i ++
解答

6. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for(int i = 0; ; i++) {
			System.out.println("LOOP");
		}
	}
}

A. 何も表示されない
B.「LOOP」が1回表示される
C.「LOOP」が無限に表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

7. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for(int i = 0; i < 3; i++) {
			System.out.println(i + " ");
		}
	}
}

A. 何も表示されない
B.「0 1 2」と表示される
C.「0 1 2 3」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

8. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for(int i = 0; i <= 6; i += 2) {
			System.out.println("LOOP");
		}
	}
}

A. 何も表示されない
B.「LOOP」が3回表示される
C.「LOOP」が4回表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

9. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for(int i = 0; i > 3; i++) {
			System.out.println(i + " ");
		}
	}
}

A. 何も表示されない
B.「0 1 2」と表示される
C.「0 1 2 3」と回表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

10. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for(int i = 0; i < 5; i++) {
			if(i < 3) {
				continue;
			}
			System.out.println("LOOP");
		}
	}
}

A. 何も表示されない
B.「LOOP」と2回表示される
C.「LOOP」と3回表示される
D.「LOOP」と4回表示される
E. コンパイルエラーが発生する
F. 実行時に例外がスローされる
解答

11. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

 public class Main {
	public static void main(String[] args) {
		int i = 0;
		while (true) {
			System.out.println("LOOP");
			i++;
			if(i >= 5) {
				break;
			}
		}
	}
}

A.「LOOP」が無限に表示される
B.「LOOP」が5回表示される
C.「LOOP」と6回表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

12. 次のプログラムの空欄に挿入するコードとして、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int[] array = {0, 2, 4, 6};
		for(          ) {
			System.out.print(e + " ");
		}
	}
}

A. int e : array
B. int e ; array
C. array : int e
D. e : array
解答

13. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		String[] array = {"A", "B", "C"};
		for (String e : array) {
			System.out.print(e + " ");
		}
	}
}

A. 何も表示されない
B.「A」と表示される
C.「A B C」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

14. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 0;
		do (i < 3) {
			System.out.print(i + " ");
			i++;
		} while;
	}
}

A. 何も表示されない
B.「0 1 2」と表示される
C.「0 1 2 3」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

15. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 0;
		do {
		    System.out.print("LOOP");
		    i++;
		} while (i > 3);
	}
}

A. 何も表示されない
B.「LOOP」と表示される
C.「LOOP」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

16. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for (int i = 0; i < 2; i++) {
			for (int j = 0; j <= 2; j++) {
				System.out.println("LOOP");
			}
		}
	}
}

A. 何も表示されない
B.「LOOP」が6回表示される
C.「LOOP」が9回表示される
D.「LOOP」が12回表示される
解答

17. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for (int i = 0; i < 3; i++) {
			for (int j = 0; j < i; j++) {
				System.out.println("LOOP");
			}
		}
	}
}

A. 何も表示されない
B.「LOOP」が1回表示される
C.「LOOP」が3回表示される
D.「LOOP」が4回表示される
解答

18. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		for (int i = 0; i < 2; i++) {
			for (int j = 0; j <= 2; j += i) {
				System.out.println("LOOP");
			}
		}
	}
}

A.「LOOP」が無限に表示される
B.「LOOP」が1回表示される
C.「LOOP」が3回表示される
D.「LOOP」が4回表示される
解答

19. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int i = 0;
		while (i < 2) {
			i++;
			for (int j = 0; j < 2; j++) {
				System.out.print(i * j + " ");
			}
		}
	}
}

A. 何も表示されない
B.「0 1 2 4」と表示される
C.「0 1 0 1」と表示される
D.「0 1 0 2」と表示される
E.「0 1 0 2 0 3」と表示される
解答

20. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int j = 0;
		for (int i = 0; i < 2; i ++) {
			while (j <= i) {
				System.out.println("LOOP");
				j++;
			}
		}
	}
}

A. 何も表示されない
B.「LOOP」が1回表示される
C.「LOOP」が2回表示される
D.「LOOP」が3回表示される
解答

ループ(解答)
1. C
2. B
3. B
4. C
5. B
6. C
7. B
8. C
9. A
10. B
11. B
12. A
13. C
14. D
15. B
16. B
17. D
18. A
19. D
20. C

オブジェクト指向の概念

1. カプセル化の説明として、正しいものを選びなさい。(1つ選択)
A. 同種の異なるインスタンスを同じ型に扱う
B. 公開すべきものと非公開にすべきものを区別して扱う
C. 関係するものをひとまとめにする
D. クラスのフィールドを隠蔽し、ほかのクラスからは直接使えないようにする
解答

2. 従業員の情報を表すEmployeeクラスがある。正しくカプセル化されるようクラスを修正したい。修正内容として、正しいものを選びなさい。(2つ選択)

public class Employee {
	String corporateName;
	String corporateAddress;
	int employeeNo;
	String name;
}

A. すべてのフィールドのアクセス修飾子をprivateにする
B. フィールドにアクセスするためのgetterメソッドとsetterメソッドを追加する
C. corporateNameとcorporateAddressフィールドをほかのクラスに移動する
D. 名前を名乗って挨拶するメソッドを追加する
E. 給与計算メソッドを追加する
解答

3. カプセル化の維持に欠かせない原則として、正しいものを選びなさい。(1つ選択)
A. データ隠蔽
B. 情報隠蔽
C. 抽象化
D. データ抽象
解答
4. データ隠蔽を実現するためには、フィールドをどのように修飾すればよいか。正しいものを選びなさい。(1つ選択)
A. public final
B. public static
C. private
D. private static
E. private final
解答
5. データ隠蔽の説明とてし、もっとも適切なものを選びなさい。(1つ選択)
A. 関係するデータとそのデータを扱う処理をひとまとめにする
B. 属性の公開範囲を制限する
C. getterやsetterなどのアクセサメソッドを提供する
D. 実装の詳細を隠蔽する
解答
6. 共通部分だけを抽出し、それ以外を無視して扱うことを何と呼ぶか。正しい用語を選びなさい。(1つ選択)
A. 抽象化
B. カプセル化
C. データ隠蔽
D. 情報隠蔽
解答

7. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class A {
	public void test() {
		System.out.println("A");
	}
}
public class B extends A {
	public void test() {
		System.out.println("B");
	}
}
public class Main {
	public static void main(String[] args) {
		A a = new B();
		a.test();
	}
}

A.「A」と表示される
B.「B」と表示される
C.「A」「B」と表示される
D.「B」「A」と表示される
E. Bクラスでコンパイルエラーが発生する
F. Mainクラスでコンパイルエラーが発生する
G. 実行時に例外がスローされる
解答

8. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Parent {
	public void method() {
		System.out.println("Parent");
	}
}
public class Child extends Parent {
	public void method(String val) {
		System.out.println(val);
	}
}
public static void main(String[] args) {
	Parent p = new Child();
	p.method("Child");
}

A.「Parent」と表示される
B.「Child」と表示される
C.  Childクラスの2行目でコンパイルエラーが発生する
D.  Mainクラスの3行目でコンパイルエラーが発生する
E.  Mainクラスの4行目でコンパイルエラーが発生する
F. 実行時に例外がスローされる
解答

9. ポートフィズムのメリットに関する説明として、正しいものを選びなさい。(1つ選択)
A. 変更されたクラスのサブクラスに変更の影響が及ばない
B. 変更されたクラスのスーパークラスに変更の影響が及ばない
C. 変更されたクラスを使うクラスに、変更の影響を及ばない
D. インタフェースの変更が実現クラスに及ばない
解答
10. 情報隠蔽の説明として、正しいものを選びなさい。(1つ選択)
A. 公開すべきものと非公開にすべきものを区別して扱う
B. 関係するデータをひとまとめにして扱える
C. 外部からフィールドを直接操作できないようにすることができる
D. 異なる引数を受け取る同名のメソッドを複数定義できる
解答
11. 情報隠蔽を実現する手段として、正しいものを選びなさい。(3つ選択)
A. フィールドのアクセス修飾子をprivateにする
B. getterやsetterなどのアクセサメソッドを提供する
C. 公開メソッドを集めたインタフェースを用意する
D. protectedで修飾したクラスを宣言する
E. パッケージ宣言を追加する
F. コンストラクタをprotectedにする
解答
12. インタフェースに関する説明として、正しいものを選びなさい。(1つ選択)
A. インタフェースは型を定義するためのものである
B. インタフェースには実装を定義できない
C. インタフェースはインスタンス化できない
D. インタフェースにはメソッド宣言だけが定義できる
解答
13. ポリモーフィズムに関係が深い用語として、もっとも適切なものを選びなさい。(2つ選択)
A. 抽象化
B. 情報隠蔽
C. データ隠蔽
D. カプセル化
解答

14. AとBの2つのクラスがある。この2つのクラスで「A has-a B」の関係を表現しているコードとして、正しいものを選びなさい。(1つ選択)

A.
public class B {
	public void sample() {
		A a = new A();
	}
}
B.
public class A {
	public void sample() {
		B b = new B();
	}
}
C.
public class B {
	private A a;
}
D.
public class A {
	private B b;
}

解答

15. 次のようなインターフェイスやクラスがあるとき、is-a関係を正しく表現しているものを選びなさい。(2つ選択)

public interface A {
	// any one
}
public abstract class B implements A {
	// any one
}
public class C extends B {
	// any one
public class D implements A {
	// any one
}

A. A is-a B
B. C is-a A
C. B is-a A
D. D is-a B
E. B is-a D
F. B is-a C
解答

16. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public interface MusicPlayer {
	String play();
}
public class CdPlayer implements MusicPlayer{
	public String play() {
		return "A";
	}
}
public class Mp3Player{
	public String play() {
		return "B";
	}
}
public class Main {
	public static void main(String[] args) {
		MusicPlayer[] players = {new CdPlayer(), new Mp3Player, new CdPlayer()};
		for (MusicPlayer player : players) {
			System.out.println(player.play());
		}
	}
}

A. CdPlayerクラスでコンパイルエラーが発生する
B. Mp3Playerクラスでコンパイルエラーが発生する
C. Mainクラスでコンパイルエラーが発生する
D. Mainクラスの実行中に例外がスローされる
E.「ABA」と表示される
F.「AB」と表示される
解答

17. 具象クラスと抽象クラスに関する説明として、正しいものを選びなさい。(1つ選択)
A. 具象クラスは、インスタンス化できない
B. 抽象クラスは、継承されることを前提としたクラスである
C. 抽象クラスは、インスタンス化できる
D. 具象クラスは、継承されることを前提としたクラスである
解答
オブジェクト指向の概念(解答)
1. C
2. C、D
3. A
4. C
5. B
6. A
7. B
8. E
9. C
10. A
11. C、E、F
12. D
13. A、B
14. D
15. B、C
16. C
17. B

クラス定義とオブシェクトの使用

1. クラスの名前として適切なものを選びなさい。(2つ選択)
A. EmployeeList
B. $EmployeeList
C. Employee-List
D. %EmployeeList
解答
2. クラスブロック内に定義できる要素として正しいものを選びなさい。(3つ選択)
A. フィールド
B. メソッド
C. コンストラクタ
D. パッケージ文
解答

3. クラス定義の記述として正しいものを選びなさい。(1つ選択)

A.
class ClassA(int a) {
	// クラス内の定義
}
B.
ClassA {
	// クラス内の定義
}
C.
class ClassA() {
	// クラス内の定義
}
D.
class ClassA {
	// クラス内の定義
}

解答

4.  次のプログラムの3行目にインスタンスを生成するコードを記述したい。正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		// インスタンス生成のコード
	}
}
class ClassA {
	// クラス内の定義
}

A. ClassA classA = new ClassA;
B. ClassA classA = new ClassA();
C. ClassA classA = create ClassA();
D. ClassA classA = create ClassA;
解答

5. コンストラクタの定義に関する説明として正しいものを選びなさい。(1つ選択)
A. コンストラクタの戻り値型はvoidにする
B. コンストラクタには、引数を定義できない
C. コンストラクタ名は、クラス名と同じにする
D. コンストラクタには、戻り値型を指定できる
解答

6. 次のプログラムの4行目にメソッド呼び出しのコードを記述したい。正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		ClassA classA = new ClassA();
		// メソッドと呼び出しのコード
	}
}
class ClassA {
	void doMethod() {
	// メソッド内の処理
	}
}

A. classA.doMethod();
B. classA+doMethod();
C. classA doMethod();
D. classA:doMethod();
解答

7. 次のプログラムの実行後に、Documentクラスのインスタンスはいくつ生成されるか。正しい個数を選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		Document doc1 = null;
		Document doc2 = new Document();
		Document doc3 = doc2;
		Document doc4 = doc3;
	}
}

A. 1個
B. 2個
C. 3個
D. 4個
解答

8. メソッドをオーバーロードする場合に、一致させなければいけないメソッド定義の要素として適切なものを選びなさい。(1つ選択)
A. メソッド名、引数の数
B. メソッド名、引数の型と順番
C. メソッド名、戻り値型
D. メソッド名のみ
解答
9. メソッドのシグニチャを構成する要素として正しいものを選びなさい。(4つ選択)
A. 引数の数
B. 引数の名前
C. アクセス修飾子
D. 引数の型
E. メソッド名
F. 戻り値の型
G. 引数の順番
解答

10. 次のクラスにメソッドをオーバーロードして定義する場合の記述として、正しいものを選びなさい。(2つ選択)

public class ClassA {
	int doMethod(int a) {
		return 1;
	}
}
A.
String doMethod(int a) {
	return "abc";
}
B.
int doMethod() {
	return 1;
}
C.
int doMethod(int a, int b) {
	return 1;
}
D.
int doMethod(int a) {
	return 1;
}

解答

11. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		ClassA classA = new ClassA();
		classA.doMethod(0);
	}
}

class ClassA{
	public void doMethod() {
		System.out.println("doMedhod-A");
	}
	public void doMethod(int a) {
		System.out.println("doMedhod-B");
	}
}

A. 何も表示されない
B.「doMethod-A」と表示される
C.「doMethod-B」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

12. 次のクラスに定義するコンストラクタとして、正しいものを選びなさい。(1つ選択)

public class Account {
	private int balance;
}
A.
public void Account(int balance) {
	this.balance = balance;
}
B.
public Account() {
	this.balance = 0;
}
C.
public static Account() {
	this.balance = 0;
}
D.
public Constructor(int balance) {
	this.balance = balance;
}

解答

13. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		Station s = new Station();
		s.setName("Santa Clara");
		s.printName();
	}
}

class Station {
	private String name;

	public Station(String name) {
		this.name = name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public void printName() {
		System.out.println(name);
	}
}

A. 何も表示されない
B.「Santa Clara」と表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

14. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		Document d = new Document("James");
		d.printOwner();
	}
}

class Document {
	private String owner;

	public Document() {
		this.owner = "none";
	}
	public Document(String owner) {
		this.owner = owner;
	}
	public void printOwner() {
		System.out.println(owner);
	}
}

A. 何も表示されない
B.「none」と表示される
C.「james」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

15. this()の説明として正しいものを選びなさい。(1つ選択)
A. 自クラスのインスタンスを指し示し、メソッドの呼び出しに利用する
B. 自クラスのコンストラクタを指し示し、コンストラクタの呼び出しに利用する
C. 自クラスのインスタンスを指し示し、フィールドの参照に利用する
D. 自クラスのコンストラクタを指し示し、メソッドの呼び出しに利用する
解答

16. 次のプログラムの13行目に挿入するコードとして正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		Book b = new Book();
		b.print();
	}
}

class Book {
	private String title;
	private int price;

	public Book() {
		// insert code here
	}
	public Book(String title, int price) {
		this.title = title;
		this.price = price;
	}
	public void printOwner() {
		System.out.println(title + "," + price);
	}
}

A. this(“none”, 0);
B. Book(“none”, 0);
C. this(“none”);
D. Book(“none”);
解答

17. 次のプログラムを実行し、画面に「sample」と表示したい。次のプログラムの15行目にあてはまるコードを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		Item item = new Item();
		item.setName("sample");
		System.out.println(item.getName());
	}
}

class Item {
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		// insert code here
	}
}

A. name = name;
B. this.name = name;
C. name = this.name;
D. String name = name;
解答

18. アクセス修飾子とその意味の組み合わせとして、正しいものを選びなさい。(2つ選択)
A. public – すべてのクラスからアクセス可能
B. private – 同一パッケージ内のクラスと、サブクラスからアクセス可能
C. public – 同一パッケージ内のすべてのクラスからアクセス可能
D. private – 同一クラスからアクセス可能
解答

19. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		Food f = new Food("a food");
		f.name = "b food";
		f.print();
	}
}

class Food {
	private String name;
	
	public Food(String n) {
		name = n;
	}
	public void print() {
		System.out.println(name);
	}
}

A. 何も表示されない
B.「a food」と表示される
C.「b food」と表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

20. 次のプログラムを実行し、実行結果のとおりになるようにしたい。空欄にあてはまるコードを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		System.out.println(Class.str);
	}
}

class ClassA {
    String str = "hoge";
}

【実行結果】

hoge

A. void
B. static
C. final
D. public
解答

21. 次のプログラムを実行し、実行結果のとおりになるようにしたい。空欄にあてはまるコードを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int n =          ;
		System.out.println(n);
	}
}

class ClassA {
	public static int number = 50;
}

【実行結果】

50

A. ClassA.static.number
B. ClassA.number
C. classA.number
D. static.ClassA.number
解答

22.  次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		Part p1 = new Part();
		Part p2 = new Part();
		p1.count = 1;
		System.out.println(p2.count);
	}
}

class Part {
	public static int count = 0;
}

A. 何も表示されない
B. 0が表示される
C. 1が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

23. 次のプログラムを実行し、実行結果のとおりになるようにしたい。空欄にあてはまるキーワードを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		ClassA.doMethod();
	}
}

class ClassA {
	    void doMethod() {
		System.out.println("do something");
	}
}

【実行結果】

do something

A. public
B. this
C. super
D. static
解答

24. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		ClassA a = new ClassA();
		String str = a.doMethod();
		System.out.println(str);
	}
}

class ClassA {
	static String doMethod() {
		return "hoge";
	}
}

A. 何も表示されない
B.「hoge」と表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

25. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int n = ClassA.getNumber();
		System.out.println(n);
	}
}

class ClassA {
	private int number = 0;
	
	public static int getNumber() {
		return number;
	}
}

A. 何も表示されない
B. 0が表示される
C. コンパイルエラーが発生する
D. 実行時に例外がスローされる
解答

26. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class Main {
	public static void main(String[] args) {
		Counter c1 = new Counter();
		Counter c2 = new Counter();
		c1.incrementCount();
		c2.incrementCount();
		System.out.println(Counter.getCount());
	}
}

class Counter {
	static int count = 0;
	
	public static int getCount() {
		return count;
	}
	public static void incrementCount() {
		count++;
	}
}

A. 0が表示される
B. 1が表示される
C. 2が表示される
D. コンパイルエラーが発生する
E. 実行時に例外がスローされる
解答

クラス定義とオブシェクトの使用(解答)
1. A、B
2. A、B、C
3. D
4. B
5. C
6. A
7. A
8. D
9. A、D、E、G
10. B、C
11. C
12. B
13. C
14. C
15. B
16. A
17. B
18. A、D
19. D
20. B
21. B
22. C
23. D
24. B
25. C
26. C

継承とポリモーフィズム

1. Aクラスを継承したBクラスを定義しているコードとして、正しいものを選びなさい。(1つ選択)

A.
public class A extends B {
	// any code
}
B.
public class B extends A {
	// any code
}
C.
public class A implements B {
	// any code
}
D.
public class B implements A {
	// any code
}

解答

2. 次のようなクラスがあったとき、Sampleクラスのインスタンスが持っているメソッドとして正しいものを選びなさい。(1つ選択)

public class A {
	public void methodA() {
		System.out.println("A");
	}
}
public class B extends A {
	public void methodB() {
		System.out.println("B");
	}
}
public class C extends A {
	public void methodC() {
		System.out.println("C");
	}
}
public class Sample extends C {
	// no more code
}

A. methodAのみ
B. methodBのみ
C. methodCのみ
D. methodAとmethodB
E. methodAとmethodC
F. methodBとmethodC
G. どのメソッドも持たない
解答

3. 次のようなクラスがあったとき、Sampleクラスのインスタンスが持っているメソッドとして正しいものを選びなさい。(1つ選択)

public class SuperClass {
	private int num;
	public void setNum(int num) {
		this.num = num;
	}
}
public class SubClass extends SuperClass {
	private int num;
	public int getNum() {
		return this.num;
	}
}
public class Main {
	public static void main(String[] args) {
		SubClass sub = new SubClass();
		sub.setNum(10);
		System.out.println(sub.getNum());
	}
}

A. SubClassの2行目でコンパイルエラーが発生する
B. Mainクラスの4行目の実行中に例外がスローされる
C. 0が表示される
D. 10が表示される
解答

4. サブクラスのインスタンスが継承元のスーパークラスから引き継げないものを選びなさい。(2つ選択)
A. publicなメソッド
B. privateなインスタンスフィールド
C. コンストラクタ
D. finalなフィールド
解答

5. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class A {
	public A() {
		System.out.println("A");
	}
}
public class B extends A {
	public B() {
		System.out.println("B");
	}
}
public class Main {
	public static void main(String[] args) {
		B b = new B();
	}
}

A.「A」と表示される
B.「B」と表示される
C.「A」「B」と表示される
D.「B」「A」と表示される
解答

6. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class SuoerClass {
	public SuoerClass(String val) {
		System.out.println(val);
	}
}
public class SubClass extends SuoerClass {
	public void test() {
		System.out.println("test");
	}
}
public class Sample {
	public static void main(String[] args) {
		SubClass sub = new SubClass();
		sub.test();
	}
}

A. コンパイルエラーが発生する
B. 実行時に例外がスローされる
C.「nulltest」と表示される
D.「test」と表示される
解答

7. 次のプログラムを実行し、実行結果のとおりになるようにしたい。SubClassクラスの3行目に挿入するコードとして、正しいものを選びなさい。(1つ選択)

public class SuperClass {
	public SuperClass() {
		System.out.println("A");
	}
	public SuperClass(String val) {
		System.out.println(val);
	}
}
public class SubClass extends SuperClass {
	public SubClass() {
		// insert code here
	}
	public SubClass(String val) {
		System.out.println(val);
	}
}
public class Main {
	public static void main(String[] args) {
		new SubClass();
	}
}

【実行結果】

A
B

A. SubClass(“B”);
B. this(“B”);
C. super(“B”);
D. SuperClass(“B”);
解答

8. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public class A {
	public A(String val) {
		System.out.println(val);
	}
}
public class B extends A {
	public B() {
		super("A");
		this("B");
	}
	public B(String val) {
		super(val);
	}
}
public class Main {
	public static void main(String[] args) {
		new B();
	}
}

A. 「A」と表示される
B. 「B」と表示される
C. 「A」「B」と表示される
D. 「B」「A」と表示される
E. コンパイルエラーが発生する
解答

9. サブクラスでスーパークラスのメソッドを再定義することを何と呼ぶか。正しいものを選びなさい。(1つ選択)
A. カプセル化
B. ポリモーフィズム
C. オーバーロード
D. オーバーライド
解答

10. 次のAクラスのhelloメソッドをオーバーライドしたメソッド定義として、正しいものを選びなさい。(1つ選択)

public class A {
	protected void hello() {
		System.out.println("hello");
	}
}
A.
public void hello() {
	System.out.println("B");
}
B.
public String hello() {
	return "B";
}
C.
public void hello(String val) {
	System.out.println(val);
}
D.
void hello() {
	System.out.println("B");
}

解答

11. 次のAクラスのhelloメソッドをオーバーライドしたメソッド定義として、誤っているものを選びなさい。(1つ選択)

public class A {
	public void hello()
		throws RuntimeException, ArrayIndexOutOfBoundsException{
		System.out.println("A");
	}
}
A.
public void hello() throws Exception{
	// any code
}
B.
public void hello() {
	// any code
}
C.
public void hello() throws NullPointerException{
	// any code
}
D.
public void hello() throws RuntimeException {
	// any code
}

解答

12. 次のプログラムを実行し、実行結果のとおりになるようにしたい。SubClassクラスの3行目に挿入するコードとして、正しいものを選びなさい。(1つ選択)

public class SuperClass {
	public void sample() {
		System.out.println("super");
	}
}
public class SubClass extends SuperClass {
	public void sample() {
		// insert code here
		System.out.println("sub");
	}
}
public class Main {
	public static void main(String[] args) {
		SubClass sub = new SubClass();
		sub.sample();
	}
}

【実行結果】

super
sub

A. sample;
B. this.sample();
C. super.sample();
D. SuperClass.sample();
解答

13. インタフェースに定義するフィールドの修飾子として、正しいものを選びなさい。(3つ選択)
A. protected
B. static
C. final
D. abstract
E. public
F. native
G. synchronized
解答
14. インタフェースに定義するメソッドの修飾子として、正しいものを選びなさい。(2つ選択)
A. protected
B. final
C. abstract
D. public
E. native
F. synchronized
解答
15. インタフェースの特徴として、正しいものを選びなさい。(3つ選択)
A. クラスは1つだけインタフェースを実現できる
B. インタフェースは、ほかのインタフェースを継承できる
C. インタフェースは、単一継承のみ可能である
D. クラスはインタフェースを多重実現できる
E. インタフェースには、抽象メソッドが定義できる
F. インタフェースには、具象メソッドが定義できる
解答
16. 抽象クラスに関する説明として、正しいものを選びなさい。(2つ選択)
A. すべてのメソッドは実装済みでなければならない
B. 抽象メソッドを持つことができる
C. 実現しているインタフェースのメソッドを実装する必要はない
D. インスタンスを生成できる
E. 抽象メソッドは、暗黙的にabstactで修飾される
解答

17. 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。(1つ選択)

public interface A {
	// any code
}
public class B implements A {
	// any code
}
public class C extends B {
	// any code
}
public class Main {
	public static void main(String[] args) {
		B b = new B();
		A a = b;
		C c = (C) a;
	}
}

A. Mainクラスの3行目でコンパイルエラーが発生する
B. Mainクラスの4行目でコンパイルエラーが発生する
C. Mainクラスの5行目でコンパイルエラーが発生する
D. Mainクラスの4行目で例外がスローされる
E. Mainクラスの5行目で例外がスローされる
F. 正常に終了する
解答

18. パッケージに関する説明として、正しいものを選びなさい。(3つ選択)
A. 名前空間を提供する
B. パッケージ名にはドメイン名を逆にしたものを使用しなければならない
C. アクセス制御を提供する
D. クラスの分類を可能にする
E. パッケージ宣言はソースファイルの1行目に記述する
解答
19. インポート宣言に関する説明として、正しいものを選びなさい。(2つ選択)
A. java.langパッケージに所属するクラスは、インポート宣言を省略できる
B. 同じパッケージに所属するクラスは、インポート宣言を省略できる
C. 異なるパッケージに所属するクラスを利用する場合には、必ずインポート宣言をしなければならない
D. インポート宣言は、ソースファイルの先頭行から列挙しなければならない
E. インポート宣言は、利用したいクラスが所属するパッケージ名までを指定する
解答
継承とポリモーフィズム(解答)
1. B
2. E
3. C
4. B、C
5. C
6. A
7. B
8. E
9. D
10. A
11. A
12. C
13. B、C、E
14. C、D
15. B、D、E
16. B、C
17. E
18. A、C、D
19. A、B

まとめ

Toshi
Toshi

いかがでしたか?徹底攻略 Java SE Bronze 問題集[1Z0-818]対応から抜粋して、問題と解答をまとめさせていただきました。詳しい解説や問題集にある総仕上げ問題をやってみたい方は、ぜひAmazon楽天市場で書籍を購入してみてください!

コメント

error:Content is protected !!