#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿