
問題
次のコードの [ A ] の部分で記述できるコードはどれですか。
A.java
package util.p1;
public class A {
}
B.java
package util.p2;
public class B {
}
C.java
package app.p3;
//[ A ]
public class C extends A {
public B b;
}
選択肢
A)
import static util.p1.*;
import static util.p2.*;
B)
import util.p1.A;
import util.p2.B;
C)
import static util.p1.A;
import static util.p2.B;
D)
import util.*;
E)
import util.p1.A.*;
import util.p2.B.*;
F)
import util.p1.*;
import util.p2.*;
解答
A)
import static util.p1.*;
import static util.p2.*;
B)
import util.p1.A;
import util.p2.B;
C)
import static util.p1.A;
import static util.p2.B;
D)
import util.*;
E)
import util.p1.A.*;
import util.p2.B.*;
F)
import util.p1.*;
import util.p2.*;
解説
このコードの [ A ] の部分で記述できる正しいコードは以下の通りです。
正しい選択肢
- B) import util.p1.A; import util.p2.B;
→ この形式でAとBをそれぞれ正しくインポートできます。クラスCでAを拡張し、Bをメンバーとして使用できます。
その他の選択肢の理由
- A) import static util.p1.; import static util.p2.;
→ これは静的メンバーをインポートするものであり、クラス自体はインポートしません。したがって、CクラスでAとBを使用することができません。 - C) import static util.p1.A; import static util.p2.B;
→ 静的インポートで、AとBはクラスではなく静的メンバーが対象になるため、Cで使用することができません。 - D) import util.*;
→ これはutilパッケージ内の全てのクラスをインポートしますが、クラスAとBを明示的に参照する際には、他の選択肢よりも分かりにくいです。 - E) import util.p1.A.; import util.p2.B.;
→ これはクラスAとBに存在する静的メンバーをインポートしようとする形式であり、クラスそのものをインポートするものではありません。 - F) import util.p1.; import util.p2.;
→utilパッケージのすべてのクラスをインポートしますが、具体的なクラスAとBを使用する際にはやや不明瞭です。機能的には問題ありませんが、選択肢としては明示的なインポートであるBの方が適切です。
対象資格:Java SE17 認定資格
