本日はパッケージとインポートについての理解を深める問題に挑戦しましょう。
問題
次のJavaプログラムを実行した場合、得られる出力はどれか適切な選択肢を選んでください。
package com.example.animals; class Cat { public void makeSound() { System.out.println("Meow"); } } package com.example.zoo; import com.example.animals.Cat; public class Zoo { public static void main(String[] args) { Cat cat = new Cat(); cat.makeSound(); } }
選択肢
- A. Meow
- B. コンパイルエラー
- C. 実行時エラー
- D. No output
答えと解説
回答を見る
答え
B. コンパイルエラー
解説
基本説明:
Javaでパッケージを使用する際、各ソースファイルには1つのパッケージ宣言が必要です。
パッケージを宣言するには、ファイルの先頭にpackage
キーワードを使い、フォルダ構造に基づいた名称を指定します。
これにより、クラスやインターフェースの名前空間を整理し、同名クラスの衝突を避けることができます。
今回のコードでは、1つのファイル内に2つのパッケージ宣言が含まれており、これが誤りです。
誤答理由:
2つの異なるパッケージ宣言が同一ファイル内に存在するため、Javaコンパイラはエラーを出します。
Javaファイルには1つのパッケージしか宣言できません。そしてこの規則が守られていない場合、コンパイルエラーが発生します。
つまずきポイント:
初心者がよく誤解するのは、2種類のクラスを1つのファイル内で宣言して、そのファイルに異なるパッケージを付けられると思いがちですが、これはうまくいきません。
Javaファイルはその内部で使用される全てのクラスに対して1つのパッケージ宣言を維持する必要があります。
発展知識:
パッケージ宣言はクラスの最小単位として見られがちですが、プロジェクトの中で大切な役割を果たします。
これは、プロジェクトの構造設定や日々の開発に大きな影響を与えます。
複雑なアプリケーションでのクラス管理を容易にし、クラスアクションを効果的に制御することができます。