パッケージやインポートについての理解を深めるために、今日も問題を解いてみましょう。
問題
以下のJavaプログラムの出力結果について、正しい選択肢を選んでください。
package utilities;
public class Calculator {
public static int add(int a, int b) {
return a + b;
}
}
// 別ファイル Main.java
package main;
import utilities.Calculator;
public class Main {
public static void main(String[] args) {
System.out.println(Calculator.add(5, 3));
}
}
選択肢
- A. 8
- B. コンパイルエラー
- C. 実行時エラー
- D. どのパッケージにもアクセスできない
答えと解説
回答を見る
答え
A. 8
解説
【基本説明】
この問題はパッケージとインポートの基本についてです。utilities
パッケージにあるCalculator
クラスをmain
パッケージ内のMain
クラスで使用しています。Javaでは異なるパッケージにあるクラスを使用するために、import
文を使用します。プログラムは通常、クラスごとに分割して異なるファイルに保存されます。
【誤答理由】
選択肢BのコンパイルエラーやCの実行時エラーは、パッケージとインポートの宣言が正しければ発生しません。選択肢Dの「どのパッケージにもアクセスできない」は、特に制限がないので誤りです。他のファイルに存在するクラスを正しくインポートしない場合は、コンパイルエラーが発生しますが、問題では正しくインポートされています。
【つまずきポイント】
初心者がよくつまずく点は、パッケージとインポートの正しい宣言と利用です。特に、異なるディレクトリでのファイル管理やインポートが正しく行われていないと、クラスが見つからないためコンパイルエラーが生じることです。しかし、ここではimport utilities.Calculator;
と正しい形でインポートが行われているため、問題ありません。
【発展知識】
Javaのパッケージは物理的にはディレクトリの対応になるため、正しくファイルを配置しなければなりません。また、パッケージ名としてJavaの予約語を使わないこと、同じ名前のクラスを異なるパッケージに持つ際は注意が必要です。インポートはプログラムの読みやすさや拡張性を高めるために必須のスキルです。Java IDE(統合開発環境)を利用すれば、これらの宣言やインポートが自動補完されるため、ミスを減らすことができます。