【Java SE17 Silver 模擬試験】A-33

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

次のコードをコンパイル、実行するとどうなりますか。

public class Main {
	private int i = 100;
	public static void main(String... args) {
		int i = 1000;
		Main t = new Main(i);
		System.out.print(i + ", ");
	}
	public Main(int i) {
		++i;
		System.out.print(i + ", ");
		System.out.print(this.i + ", ");
	}
}

選択肢

A)1000, 100, 1001, が出力される

B)101, 1000, 1000, が出力される

C)1001, 1001, 1001, が出力される

D)1001, 100, 1000, が出力される

E)101, 101, 1000, が出力される

F)1000, 101, 1000, が出力される

G)1001, 1001, 1000, が出力される

解答

A)1000, 100, 1001, が出力される

B)101, 1000, 1000, が出力される

C)1001, 1001, 1001, が出力される

D)1001, 100, 1000, が出力される

E)101, 101, 1000, が出力される

F)1000, 101, 1000, が出力される

G)1001, 1001, 1000, が出力される

解説

public class Main {
	private int i = 100;       //メンバ変数
	public static void main(String... args) {
		int i = 1000;                       //ローカル変数
		Main t = new Main(i);             //1. Main型でインスタンス化 Mainクラスのコンストラクタ
		System.out.print(i + ", ");     //6.  ローカル変数の1000を出力
	}
	public Main(int i) {       //2. 引数に1000
		++i;            //3. 1001になる
		System.out.print(i + ", ");      //4.  1001を出力
		System.out.print(this.i + ", ");     //5. thisを使用し、メンバ変数へアクセス.  100が出力
	}
}

よって、1001, 100, 1000, を出力

前の問題へ SE17_A-32

次の問題へ SE17_A-34


対象資格:Java SE17 認定資格