問題
次のコードの [ 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 認定資格