OOPの原則 カプセル化
メニューを表示するにはスワイプしてください
カプセル化
オブジェクト指向プログラミング(OOP)のもう一つの基本原則。おそらく最も重要な原則であり、OOPパラダイム全体がこれに依存している。この原則には、すでに この 章でフィールドやメソッドをprivateまたはpublicとして指定した際にすでに触れました。しかし、ここではこの原則についてさらに詳しく説明します。
Note
「インターフェース」という言葉(作成のためのテンプレート、パターン)と、次のセクションで学習するInterfaceを混同しないよう注意!
アクセス修飾子
アクセス修飾子はカプセル化の不可欠な要素であり、以前に説明した内容ではあるが、ここで再度確認する必要がある。以下にアクセス修飾子の定義と、表および簡単な説明を示す。
-
public:publicアクセス修飾子を持つメンバーは、どこからでもアクセス可能。最も広いスコープを持つ。例えば、publicメソッドはどのクラスからでも呼び出せる; -
private:privateアクセス修飾子を持つメンバーは、宣言されたクラス内のみでアクセス可能。他のクラスからは見えない。これにより強力なカプセル化が実現される; -
protected:protectedアクセス修飾子を持つメンバーは、同じパッケージ内およびサブクラス(異なるパッケージでも)からアクセス可能。情報の制御された共有が可能; -
デフォルト(パッケージプライベート): アクセス修飾子が指定されていない場合、そのメンバーは同じパッケージ内のみアクセス可能。これがデフォルトのアクセスレベル。
アクセス修飾子が実際にどのように機能するかを見てみましょう。2つのクラスがあります:1つはmainクラスと同じパッケージに作成され、もう1つは異なるパッケージに作成されています。アクセス修飾子がこれにどのように影響するかを確認しましょう:
スクリーンショットでは、対応する名前の変数がどこからアクセス可能かを確認できます。
また、アクセス修飾子を回避したい場合は、こちらで詳細を読むことができます:リンク。
注意
メソッドにもアクセス修飾子を付与できることも覚えておきましょう。フィールドと同様に機能します。例えば、privateアクセス修飾子を持つメソッドは、そのメソッドが作成されたクラス内でのみアクセス可能です。
まとめ
カプセル化は、データを区分けして整理する際に非常に役立ち、コードを高度に構造化できます。さらに、カプセル化のおかげで、フィールドやメソッドがどこでどのようにアクセスされるかを設定できます。
1. Javaにおけるカプセル化とは何ですか?
2. 最も厳格なアクセス修飾子はどれですか?
3. カプセル化の利点は何ですか?
4. カプセル化に関する次の記述のうち、正しいものはどれですか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください