#17 Javaで学ぶモジュールとパッケージの基本

Javaのファイル整理の仕組みは「パッケージ」が中心で、フォルダの構造とそのまま対応しているのが特徴です。この記事では、Javaにおけるパッケージの基本と、公開範囲の考え方を解説します。

パッケージの宣言

Javaでは、ファイルの先頭でそのファイルが属するパッケージを宣言します。

package com.example.utils;

public class Greeter {
    public static void greet(String name) {
        System.out.println("こんにちは、" + name + "さん");
    }
}

他のパッケージから使う

import com.example.utils.Greeter;

Greeter.greet("太郎");

同じパッケージの中身をまとめて読み込みたい場合はimport com.example.utils.*;のようにワイルドカードも使えますが、どのクラスを使っているか分かりにくくなるため、必要なクラスだけを個別にimportするのが一般的です。

パッケージ名はフォルダ構造と一致する

com.example.utilsというパッケージ名は、com/example/utilsというフォルダの構造とそのまま対応している必要があります。以前の記事で触れた「ファイル名とクラス名の一致」に加えて、この「パッケージ名とフォルダ構造の一致」もJavaの厳格なルールです。

アクセス修飾子とパッケージの関係

Javaにはpublic・privateのほかに、修飾子を何も付けない「パッケージプライベート」という公開範囲もあります。

class InternalHelper { // publicを付けない
    void doSomething() { ... }
}

これは、同じパッケージの中からはアクセスできるが、パッケージの外からはアクセスできない、という中間的な公開範囲です。パッケージという単位が、単なるファイル整理だけでなく、公開範囲の制御にも関わっている点はJavaらしい特徴です。

Javaならではの注意点

パッケージ名には、com.exampleのように、組織のドメイン名を逆にした形式を使うのが世界的な慣習です。これは、異なる会社が作ったパッケージ同士で名前が衝突しないようにするための工夫です。個人learning用のプロジェクトであっても、この慣習に沿った命名をしておくと、実務のコードに触れたときに違和感なく読めるようになります。

まとめ

Javaのパッケージはフォルダ構造と一致させて管理します。パッケージプライベートという公開範囲や、ドメイン名を逆にした命名慣習も覚えておきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Javaをもっと学びたい方には「スッキリわかるJava入門 第4版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本