【Java】package文の基本をやさしく解説|パッケージの役割と正しい書き方を実務目線で整理

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Java のファイルを開くと、
一番上に書かれていることが多い package 文

Java
package com.example.app;

「これって何をしているの?」
「書かないとどうなるの?」
「フォルダとどう関係しているの?」

最初は少し不思議に感じる部分です。

この記事では、やさしく・実務寄りに
package 文の基本を整理していきます。


まずはコードを確認

Java
package com.example.sample;

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello Package!");
    }
}

コードのしくみを解説

package 文は「クラスの所属先」を宣言するもの

Java のクラスは パッケージ という
フォルダのような仕組みに分類されています。

Java
package com.example.sample;

これは 「このクラスは com.example.sample に属しています」 という宣言です。

package 名とフォルダ構造は一致する

Java のパッケージはフォルダ構造と対応しています。

src/
└ com/
└ example/
└ sample/
└ Hello.java

package 文とフォルダ構造が一致していないと
コンパイルエラーになります。

package 文は「ファイルの先頭」に書く

package 文は必ず ファイルの一番上 に書きます。

Java
package com.example;

import java.util.List;

public class Sample { ... }

import よりも前に書くのがルールです。


あわせて知っておきたいポイント

package がない場合は「無名パッケージ」

Java
public class Hello { }

package 文を書かない場合、 そのクラスは 無名パッケージ に属します。

ただし実務では無名パッケージは使いません。

理由:

  • import できない
  • プロジェクトが整理しにくい
  • 大規模開発に向かない

パッケージ名は「逆ドメイン」が慣習

Java
com.example.project
jp.co.company.app

理由:

  • 世界中で重複しない名前にするため
  • 大規模開発で衝突を避けるため

パッケージは「クラスの整理」に役立つ

実務では、役割ごとにパッケージを分けます。

例:

controller
service
repository
model
util

パッケージを分けることで

  • コードが探しやすい
  • 役割が明確になる
  • import が整理される

といったメリットがあります。

import 文とセットで理解するとスッキリする

Java
import com.example.sample.Hello;

import 文は
「このパッケージのこのクラスを使います」
という宣言。

package 文は
「このクラスはこのパッケージに属します」
という宣言。

この2つはセットで理解するとスッキリします。


使うときに気をつけたいこと

  • package 文はファイルの先頭に書く
  • フォルダ構造と一致させる
  • 無名パッケージは使わない
  • パッケージ名は逆ドメインが慣習
  • 役割ごとにパッケージを分けると実務で便利

実務ではパッケージ構造が 「プロジェクトの読みやすさ」を大きく左右します。


まとめ

package 文の基本

  • クラスの所属先を宣言する
  • フォルダ構造と一致させる
  • ファイルの先頭に書く

実務でのポイント

  • 無名パッケージは使わない
  • 逆ドメインで命名する
  • 役割ごとにパッケージを整理する

decopon
decopon

package 文は、 「クラスの住所を決めるもの」と理解すると 一気にスッキリします。Java Bronze の試験でも、実務のコードリーディングでも、 ここを押さえておくと安心してプロジェクトを扱えるようになります。あなたの学びが、次のステップにつながりますように。

moco
moco

package は“クラスの住所”。
フォルダとセットで考えると、すごくわかりやすいよ。

コメント

タイトルとURLをコピーしました