今日のトピックは「アクセス修飾子(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;
}
}
各言語の解説
言語 | public | protected | private | 特徴 |
---|---|---|---|---|
Python | self.public_var | self._protected_var | self.__private_var | 明確な修飾子はないが、慣習に基づく |
C# | public string publicVar | protected string protectedVar | private string privateVar | 明確なアクセス制御が可能 |
C++ | public: std::string publicVar | protected: std::string protectedVar | private: std::string privateVar | 複数のアクセスレベルをサポート |
Java | public String publicVar | protected String protectedVar | private String privateVar | 強力なオブジェクト指向機能を提供 |
JavaScript | publicVar | N/A | #privateVar | ES6以降、privateメンバーをサポート |
まとめ
アクセス修飾子を理解し、適切に使うことで、コードの安全性と可読性が向上します。次回は「クラス継承とインターフェース」について学習しましょう。
コメント
コメント一覧 (1件)
[…] 1-1-3. アクセス修飾子(public, private, protected) […]