アクセス修飾子(public, private, protected)の基本と使い方

1-1-3

今日のトピックは「アクセス修飾子(public, private, protected)」です。アクセス修飾子は、クラスやメンバーのアクセス範囲を制御するために使用されます。これを理解することで、コードの安全性とカプセル化が向上します。

目次

基本概念の説明

アクセス修飾子は、クラスやそのメンバー(フィールドやメソッドなど)がどこからアクセスできるかを決定するためのものです。

  • public: どこからでもアクセス可能。
  • private: 同じクラス内でのみアクセス可能。
  • protected: 同じクラス内および派生クラスからアクセス可能。

各言語でのサンプルコード

Python

class MyClass:
    def __init__(self):
        self.public_var = "I am public"
        self._protected_var = "I am protected"
        self.__private_var = "I am private"

    def public_method(self):
        return self.public_var

    def _protected_method(self):
        return self._protected_var

    def __private_method(self):
        return self.__private_var

C#

class MyClass {
    public string publicVar = "I am public";
    protected string protectedVar = "I am protected";
    private string privateVar = "I am private";

    public string PublicMethod() {
        return publicVar;
    }

    protected string ProtectedMethod() {
        return protectedVar;
    }

    private string PrivateMethod() {
        return privateVar;
    }
}

C++

class MyClass {
public:
    std::string publicVar = "I am public";

protected:
    std::string protectedVar = "I am protected";

private:
    std::string privateVar = "I am private";
};

Java

public class MyClass {
    public String publicVar = "I am public";
    protected String protectedVar = "I am protected";
    private String privateVar = "I am private";

    public String publicMethod() {
        return publicVar;
    }

    protected String protectedMethod() {
        return protectedVar;
    }

    private String privateMethod() {
        return privateVar;
    }
}

JavaScript

class MyClass {
    publicVar = "I am public";
    #privateVar = "I am private";

    publicMethod() {
        return this.publicVar;
    }

    #privateMethod() {
        return this.#privateVar;
    }
}

各言語の解説

言語publicprotectedprivate特徴
Pythonself.public_varself._protected_varself.__private_var明確な修飾子はないが、慣習に基づく
C#public string publicVarprotected string protectedVarprivate string privateVar明確なアクセス制御が可能
C++public: std::string publicVarprotected: std::string protectedVarprivate: std::string privateVar複数のアクセスレベルをサポート
Javapublic String publicVarprotected String protectedVarprivate String privateVar強力なオブジェクト指向機能を提供
JavaScriptpublicVarN/A#privateVarES6以降、privateメンバーをサポート

まとめ

アクセス修飾子を理解し、適切に使うことで、コードの安全性と可読性が向上します。次回は「クラス継承とインターフェース」について学習しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

コメントする

目次