次のJavaプログラムにおいて、(ア)、(イ)、(ウ) の文が文法誤りであるかどうかについて、最も適切なものを①~⑤の中から選べ。
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 () {
}
}
① (ア)、(イ)、(ウ) いずれも文法誤りではない。
② (ア)、(イ) は文法誤りではないが、(ウ) は文法誤りである。
③ (ア) は文法誤りであるが、(イ)、(ウ) は文法誤りではない。
④ (ア) は文法誤りではないが、(イ)、(ウ) は文法誤りである。
⑤ (ア)、(イ)、(ウ) いずれも文法誤りである。
⑤
(ア) インターフェイス内では、メンバーとして定数と抽象メソッドのみ定義できる。
int z は変数扱いであるため文法誤りである。
(イ) クラスAを継承したクラスXで、またクラスAを作成しているため文法誤りである。
(ウ) return x+1; には問題はないが、x が class A の private変数であるため、文法誤りである。
Ⅳ-2 | 目次 | Ⅳ-4 |