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

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

問題

次のコードでコンパイルエラーになるのは(1)から(5)のどの箇所ですか。

public class Main {
	public static void main(String... args) {
		Item item = new Item();
		item.display(200);
	}
}

class Item {
	static int price;					// (1)
	public static void display() {
		price = 100;					// (2)
		System.out.println(this.price);   // (3)
	}

	public void display(int price) {
		this.price += price;			// (4)
		display();					// (5)
	}
}

選択肢

A)(1)

B)(2)

C)(3)

D)(4)

E)(5)

解答

A)(1)

B)(2)

C)(3)

D)(4)

E)(5)

解説

public class Main {
	public static void main(String... args) {
		Item item = new Item();        //1. インスタンス化
		item.display(200);           //2. 
	}
}

class Item {
	static int price;					// (1)      //static付与
	public static void display() {                              //6.
		price = 100;					// (2)
		System.out.println(this.price);   // (3)      7.staticメンバ変数にはthisを使用で着ないため、コンパイルエラー
                                                                       //thisを省くと100が表示されます
	}

	public void display(int price) {              //3. 200を受け取る
		this.price += price;			// (4).    4.staticメンバ変数にはthisを使用できないため、priceは使用されいない事になる
		display();					// (5)     5.
	}
}

前の問題へ SE17_A-46

次の問題へ SE17_A-48


対象資格:Java SE17 認定資格