オブジェクト指向プログラミング(OOP)では、クラスとオブジェクトは中心的な概念です。簡単に言うと、クラスは設計図、オブジェクトはその設計図に基づいて作られた実体です。
1. クラス
クラスはオブジェクトを作成するための青写真です。プロパティ(属性)やメソッド(振る舞い)を定義しますが、実体はありません。
2. オブジェクト
オブジェクトは、クラスから生成された実体です。クラスが定義したプロパティやメソッドを持ち、それに基づいて操作ができます。プログラムの実行中に、必要に応じていくつでも生成できます。
クラスとオブジェクトの関係を疑似コードで示す
# クラスの定義
class Dog:
# コンストラクタ (オブジェクトが生成されたときに呼び出される)
function __init__(name, age):
self.name = name # プロパティ: 名前
self.age = age # プロパティ: 年齢
# メソッド: 犬の鳴き声を表現する
function bark():
print(self.name + " says: Woof!")
# メソッド: 年齢を増やす
function celebrate_birthday():
self.age += 1
print(self.name + " is now " + self.age + " years old!")
# オブジェクトの生成
dog1 = Dog("Max", 3) # "Max"という名前で3歳の犬オブジェクトを作成
dog2 = Dog("Bella", 5) # "Bella"という名前で5歳の犬オブジェクトを作成
# オブジェクトのメソッドを呼び出す
dog1.bark() # 出力: Max says: Woof!
dog2.bark() # 出力: Bella says: Woof!
# オブジェクトのプロパティにアクセスし、年齢を確認
print(dog1.age) # 出力: 3
# オブジェクトの年齢を1歳増やす
dog1.celebrate_birthday() # 出力: Max is now 4 years old!
説明
- クラス
Dog
: 名前と年齢というプロパティを持ち、鳴く(bark
)ことと誕生日を祝う(celebrate_birthday
)というメソッドを定義しています。 - オブジェクト
dog1
,dog2
: クラスDog
の実体であり、それぞれ異なる名前や年齢を持っています。オブジェクトごとに独立したデータ(プロパティ)を持っており、メソッドもそのオブジェクト固有のデータに基づいて動作します。
このように、クラスはオブジェクトを生み出す設計図であり、オブジェクトはその設計図に基づいて生成された実際のデータや機能を持つ実体です。
コメント