次のJavaプログラムにおいて、(ア)、(イ)、(ウ) の文が文法誤りであるかどうかについて、最も適切なものを@〜Dの中から選べ。
abstract class A {
public int y = 2;
private int x = 1;
public int p() {
return y;
}
}
interface B {
int z; ・・・(ア)
public void q();
}
Class X extends A implements B {
public int p() {
A a = new A() ; ・・・(イ)
return x+1; ・・・(ウ)
}
public void q () {
}
}
@ (ア)、(イ)、(ウ) いずれも文法誤りではない。
A (ア)、(イ) は文法誤りではないが、(ウ) は文法誤りである。
B (ア) は文法誤りであるが、(イ)、(ウ) は文法誤りではない。
C (ア) は文法誤りではないが、(イ)、(ウ) は文法誤りである。
D (ア)、(イ)、(ウ) いずれも文法誤りである。
D
(ア) インターフェイス内では、メンバーとして定数と抽象メソッドのみ定義できる。
int z は変数扱いであるため文法誤りである。
(イ) クラスAを継承したクラスXで、またクラスAを作成しているため文法誤りである。
(ウ) return x+1; には問題はないが、x が class A の private変数であるため、文法誤りである。
W−2 | 目次 | W−4 |