前回の記事では、クラスの作り方・コンストラクタ・カプセル化を学びました。
すると、「クラスが増えてきたとき、どう整理すればいいの?」という疑問が出てきます。
そこで登場するのが パッケージ(package) と、
クラスの「見える範囲」をコントロールする アクセス修飾子(public / private など) です。
これらは Java プログラムを整理し、安全に管理するための大切な考え方です。
ゆっくり丁寧に見ていきましょう。
この記事で学べること
- パッケージとは何か?
- パッケージを使う理由
- import 文の役割
- 4種類のアクセス修飾子の意味
- 「スコープ」とは何か
パッケージとは?
パッケージとは、
クラスをフォルダ分けする仕組み のようなものです。
▼ 例えるなら…
- スマホのアプリをフォルダ整理する
- パソコンのファイルをジャンル別のフォルダに入れる
といった “整理整頓” のイメージです。
Java でもクラスが増えると散らかるので、
パッケージを使って「分類」します。
実際のパッケージ記述
Java ファイルの先頭に次のように書きます。
package com.example.app;
これは 「このクラスは com.example.app というフォルダに属します」
という意味です。
既にプロジェクトを作ってコードを書いてる皆さんは疑問に思っていたのではないでしょうか。
初めから上に記述されていたこの「package」について。
前述でもあったようにフォルダごとにクラスを区分します。
・Aフォルダに入っていれば「package com.example.A;」
・Bフォルダに入っていれば「package com.example.B;」となります
ちなみに「com.example」はJavaプロジェクトを作る際に勝手に作られているか、自分で決めることもできます。
なぜパッケージを使うの?
主に 3 つの理由があります。
① クラスの整理整頓ができる
大量のファイルを機能ごとに分けられる
例:
user(ユーザー関連)
product(商品関連)
order(注文関連)
② 名前がかぶる問題を避けられる
同じ名前のクラスがあってもパッケージが違えばOK。
例:
- com.example.user.Person
- com.shop.customer.Person
どちらも「Person」でも問題なし!
③ 見える範囲(スコープ)を管理しやすくなる
不要なクラスが他の場所から見えないようにできる。
import 文とは?
他のパッケージのクラスを使いたいときは import が必要です。
例:userパッケージの Person を使いたい場合
import com.example.user.Person;
その後は普通に使えるようになります。
Person p = new Person("太郎", 20);
アクセス修飾子とは?(スコープの基礎)
アクセス修飾子とは、
クラス・フィールド・メソッドが「どこから見えるか」を決めるキーワード です。
簡単にいえば「見える範囲の設定」です。
アクセス修飾子の種類一覧
| 修飾子 | 見える範囲(スコープ) | 初心者向けの理解 |
|---|---|---|
| public | どこからでも見える | 全世界に公開されている |
| protected | 同じパッケージ+子クラス | 身内と子どもにはOK |
| なし(default) | 同じパッケージ内のみ | 同じ部屋の人だけ使える |
| private | 同じクラス内のみ | 完全に鍵をかける |
具体例で理解しよう
Person.java
package com.example.user;
public class Person {
private String name;
private int age;
public void greet() {
System.out.println("こんにちは!私は" + name + "です。");
}
}
メインクラス側(別パッケージ)
import com.example.user.Person;
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.greet(); // OK(public)
// p.name = "太郎"; // エラー!(private)
}
}
なぜアクセス修飾子が大事なの?
それは クラスの安全性を守るため です。
- 外部に見せてもよい部分(public)
- 外部に触られたくない部分(private)
- 同じパッケージ内で共有したい部分(default)
- 子クラスに継承して使わせたい部分(protected)
これらを整理することで、
クラス同士の関係がわかりやすくなり、
アプリが大きくなっても壊れにくい構造になります。
スコープって結局何?
スコープとは「変数やメソッドが使える範囲」のことです。
▼ 一言でまとめると
- public → 広い(どこでもOK)
- private → 狭い(そのクラスだけ)
- パッケージ → 中くらい
スコープの概念を理解すると、
「どこに何を書くべきか」が自然に見えてくるようになります。
まとめ
| 内容 | わかりやすい説明 |
|---|---|
| パッケージ | クラスのフォルダ分け(整理整頓) |
| import | 他のパッケージのクラスを使うための宣言 |
| アクセス修飾子 | public / private など、見える範囲の設定 |
| スコープ | 修飾子によって決まる利用範囲のこと |
| なぜ必要? | 大規模開発でクラスの整理・安全性が重要だから |
パッケージとスコープは、
「Javaらしい設計」を理解するために欠かせない知識です。
ここを押さえておくと、この後の 継承(extends) が理解しやすくなります!
ではでは!次回!:Java入門⑪ クラスの継承(Inheritance)

コメント