今日もJavaの知識を深めるための問題にチャレンジしましょう。
問題
次のプログラムを実行した場合、コンパイルが成功し、正しく実行されるためにはどの選択肢が必要でしょうか?正しい選択肢を選んでください。
package exampkg1;
import exampkg2.Helper;
public class Main {
public static void main(String[] args) {
Helper.doAction();
}
}
選択肢
- A. パッケージ宣言を削除
- B. クラス
Helper
をメインクラスと同じパッケージに移動 - C.
exampkg2.Helper
クラスでdoAction()
をpublic
修飾 - D. メインメソッド内でインポート文を削除
答えと解説
回答を見る
答え
B. クラスHelper
をメインクラスと同じパッケージに移動
解説
解説のポイント:
- パッケージとその役割
- アクセシビリティと修飾子
- インポート時の注意点
Javaにおけるパッケージは、クラスを整理し、クラス名の衝突を防ぐための機構です。
パッケージ内にあるクラスを他のパッケージから使う場合、import
キーワードを使って明示的にインポートする必要があります。
今回のプログラムでは、Helper
クラスを別パッケージexampkg2
からインポートしているため、インポート文が必要です。
また、他のパッケージの非public
クラスやメソッドは、直接アクセスできないため、Helper
クラスのdoAction()
メソッドはpublic
として宣言する必要があります。
正しい選択肢であるBの通り、同じパッケージ内にあるクラス同士では特にパブリック修飾が必要ないため、場合によってはこの方法が簡単です。