カプセル化ってなんだっけ

カプセル化(Encapsulation)は、オブジェクト指向プログラミングの概念の1つであり、データとそのデータに関連するメソッド(関数)を1つの単位でまとめることを指します。この概念では、データ(状態)とそのデータに対する操作(振る舞い)が、外部からアクセスされる場合に隠蔽され、外部から直接操作されることを防ぐことができます。

具体的には、クラス内部でデータをプライベートな属性として定義し、それに対するアクセサーメソッド(getterやsetter)を提供することで、データの安全性や整合性を保つことができます。外部からは、アクセサーメソッドを介してのみデータにアクセスできるため、不正な値の設定やデータの破壊を防ぐことができます。

カプセル化により、オブジェクトの内部の実装の詳細を隠蔽することで、コードの保守性や再利用性が向上し、コードの変更が容易になります。また、外部からオブジェクトに対してどのように操作を行うかを明示的に定義することで、コードの理解が容易になります。

例えば、以下はPythonでのカプセル化の例です:

python
class Car: def __init__(self, brand, model): self._brand = brand # プライベート属性 self._model = model def get_brand(self): return self._brand def set_brand(self, brand): self._brand = brand car = Car("Toyota", "Corolla") print(car.get_brand()) # Toyota car.set_brand("Honda") print(car.get_brand()) # Honda

この例では、Carクラス内でブランドとモデルをプライベートな属性として定義し、get_brand()set_brand()メソッドを提供しています。外部からは、get_brand()set_brand()メソッドを介してのみブランドにアクセスできます。

未分類

Posted by ぼっち