【Java】アクセス修飾子(public・protected・private)とは?

ChatGPT

今回は、アクセス修飾子について説明します!

アクセス修飾子を使う理由

Javaのアクセス修飾子は、プログラムのセキュリティ、カプセル化、およびコードの可読性を向上させるために使用されます。

セキュリティ

アクセス修飾子を使用することで、クラスやメンバーのアクセスを制御することができます。これにより、外部からの不正なアクセスを防ぎ、プログラムのセキュリティを強化することができます。

カプセル化

アクセス修飾子を使用することで、クラスの内部実装を隠蔽し、クラスの外部からの直接的なアクセスを制限することができます。これにより、情報隠蔽とデータの安全性を確保することができます。また、クラス内でデータやメソッドを隠すことで、クラスの利用者に対して必要なインターフェースのみを公開することができます。

コードの可読性

アクセス修飾子を適切に使用することで、コードの意図や使用方法を明確にすることができます。例えば、public修飾子が付いているメンバーは外部からアクセス可能であることが明確になります。また、アクセス修飾子を使用することで、プログラムのメンテナンスや拡張が容易になります。修飾子によって、どのメンバーが外部から利用可能であるかが明示されるため、他の開発者がコードを理解しやすくなります。

Javaのアクセス修飾子はプログラムのセキュリティや構造を管理するための重要なツールです。適切に使用することで、より安全で保守可能なコードを作成することができます。

アクセス修飾子の種類

Javaのアクセス修飾子には、以下の4つがあります。

アクセス修飾子同一クラス同一パッケージサブクラスすべて
public
protected×
default(指定なし)××
private×××

public(公開)

  • public修飾子が付けられたクラスやメンバーは、どのクラスからでもアクセスできます。
  • 他のクラスから自由に参照および使用できる公開されたメンバーを定義するために使用されます。
  • 例えば、以下のようにpublic修飾子を持つメソッドを定義できます。
public class MyClass {
    public void myMethod() {
        // メソッドの実装
    }
}

protected(保護)

  • protected修飾子が付けられたメンバーは、同じパッケージ内のクラスからのみアクセスできます。また、サブクラス(継承したクラス)からもアクセス可能です。
  • 主に継承関係を考慮してアクセスを制限する場合に使用されます。
  • 以下はprotected修飾子を持つフィールドの例です。
public class MyClass {
    protected int myField;
}

default(または package private)

  • アクセス修飾子を指定しない場合、デフォルトのアクセス修飾子が適用されます。これは、同じパッケージ内のクラスからのみアクセスできることを意味します。
  • デフォルトのアクセス修飾子を持つメンバーは、他のパッケージからはアクセスできません。
  • 例えば、以下はデフォルトのアクセス修飾子を持つクラスの例です。
class MyClass {
    // デフォルトのアクセス修飾子
}

private(プライベート)

  • private修飾子が付けられたメンバーは、同じクラス内からのみアクセスできます。他のクラスからは完全に隠されます。
  • カプセル化を実現するために使用され、外部からの不正なアクセスを防ぐのに役立ちます。
  • 以下はprivate修飾子を持つメソッドの例です。
public class MyClass {
    private void myPrivateMethod() {
        // メソッドの実装
    }
}

まとめ

アクセス修飾子にはpublic、protected、デフォルト(指定なし)、private があり変数・メソッド・クラスが、どこからアクセスできるか。を抑えておきましょう!

【Java】アクセス修飾子についてまとめた

上記記事の「つまりこういうこと!」わかりやすくて納得しました。自分で図にしてみたら理解しやすいかもしれませんね。

コメント