Java入門⑩ パッケージとアクセス修飾子

Java入門 未分類

前回の記事では、クラスの作り方・コンストラクタ・カプセル化を学びました。
すると、「クラスが増えてきたとき、どう整理すればいいの?」という疑問が出てきます。

そこで登場するのが パッケージ(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)

コメント

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