🧱

🧱 カプセル化・アクセス修飾子・継承の完全整理

に公開

🧱 オブジェクト指向の基本概念まとめ


1. カプセル化(Encapsulation)

データを直接触れないように隠し、getter/setter メソッドを通してのみアクセス可能にする仕組み。

構成要素 意味
private変数 外部から直接アクセス ❌ private String name;
getter 値を読み取るメソッド public String getName()
setter 値を設定するメソッド public void setName(...)

🔒 → 変数は private で隠す
🔓 → メソッドを通してのみ操作 → ミス防止 & 保護


2. アクセス修飾子(Access Modifier)

クラス、変数、メソッドなどのアクセス範囲を定義するキーワード。

修飾子 同じクラス 同じパッケージ サブクラス 他のクラス
public
protected
(default)
private
  • カプセル化のとき:private で隠す
  • 必要なときのみ:public で外に公開

3. 継承とアクセス修飾子の関係

継承 = 親から子へ「引き継ぐ」仕組み
アクセス修飾子 = 子がその「引き継いだものを使えるか」決めるもの

  • 継承自体は常に行われる
  • private なメンバは継承されても子クラスから直接アクセスできない
  • protected は子クラスからアクセス可能 → 継承時によく使われる
class Parent {
    private int a = 1;       // ❌ 子クラスからアクセス不可
    protected int b = 2;     // ✅ 子クラスからアクセス可
    public int c = 3;        // ✅ どこからでもアクセス可
}

class Child extends Parent {
    void print() {
        // System.out.println(a); ❌
        System.out.println(b);  // ✅
        System.out.println(c);  // ✅
    }
}

🎯 最終まとめ(一言)

  • 🔒 カプセル化:データを隠して安全に管理
  • 🧭 アクセス修飾子:どこまでアクセス可能かを制御
  • 👶 継承:子に引き継がれるが、実際に使えるかはアクセス修飾子次第

Discussion