クラス

データ(属性)と動作(メソッド)を指定してオブジェクトを作成するための、ユーザー定義の設計図またはテンプレート。

クラスは、オブジェクト指向プログラミング(OOP)における基本的な概念です。オブジェクト(インスタンス)を作成するための建築設計図として機能します。

クラスの構成要素:
- 属性(フィールド/プロパティ):オブジェクトが格納するデータ(例:name, age)。
- メソッド(関数):オブジェクトが実行できるアクション(例:bark(), calculateSalary())。
- コンストラクタ:新しいオブジェクトを初期化するための特別なメソッド。

クラスとオブジェクトの関係:
Carがクラスである場合、myRedToyotaはそのクラスのオブジェクト(インスタンス)です。

        graph LR
  Center["クラス"]:::main
  Pre_object_oriented_programming["object-oriented-programming"]:::pre --> Center
  click Pre_object_oriented_programming "/terms/object-oriented-programming"
  Rel_object["object"]:::related -.-> Center
  click Rel_object "/terms/object"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5歳でもわかるように説明

クラスは家の設計図のようなものです。部屋の数や窓の場所を教えてくれます。しかし、設計図の中に住むことはできません。設計図に基づいて実際の家(オブジェクト)を建てる必要があります。同じ設計図(クラス)から、たくさんの異なる家(オブジェクト)を建てることができます。

🤓 Expert Deep Dive

クラスはポリモーフィズム、継承、カプセル化を定義します。抽象クラスはインスタンス化できず、サブクラスの基盤として機能します。インターフェースは実装なしで契約を定義します。メタクラス(Python/Smalltalkなど)はクラスを作成するクラスです。静的メンバはインスタンスではなくクラス自体に属します。

🔗 関連用語

📚 出典