クラス(class)とオブジェクト(object)
オブジェクト(object)とは、実生活では、我々が認識することができるもので理解することができます。
これらのオブジェクトの状態(state)と行動(behavior)は、それぞれのプロパティ(property)とメソッド(method)に実装されます。
また、オブジェクト(object)を作り出すための枠組みや設計図のような概念がまさにクラス(class)です。
つまり、PHPでは、クラスを持っているオブジェクトを作成して使用します。
次の例では、Carクラスのオブジェクト(object)を示す例です。
クラス(class)
- 車(Car)
プロパティ(property)
- $car->modelName = "フェラーリNYIAS"
- $car->modelYear = 2012
- $car->color = "黄色"
- $car->maxSpeed = 206 mph
メソッド(method)
- $car->accelerate()
- $car->brake()
インスタンス(instance)
- 私の車(myCar)
自動車インスタンスは、すべて上記のようなプロパティとメソッドを持つでしょう。
しかし、各プロパティの値はインスタンスにすべて異なります。
オブジェクト指向プログラミング(OOP、Object-Oriented Programming)
オブジェクト指向プログラミングでは、すべてのデータをオブジェクト(object)として扱われ、オブジェクトがすぐにプログラミングの中心となります。
これにより、コードの管理が容易になり、より少ない労力でも簡単にコードを変更すると、維持管理することができます。
オブジェクト指向プログラミングが持つ特徴は次のとおりです。
- 抽象化(abstraction)
- カプセル化(encapsulation)
- 情報秘匿(data hiding)
- 継承性(inheritance)
- ポリモーフィズム(polymorphism)
カプセル化は、すでに作成されたコードを変更せずに再使用することを目的とします。
また、情報秘匿を介してオブジェクトの実際の実装内容を外部で知られないよう隠し、オブジェクトのインタフェースを介してのみデータにアクセスできるようにして、セキュリティを強化します。
継承は、クラス間の階層関係を作って、論理的かつ体系的に他のクラスの機能とデータを使用できるようになります。
また、ポリモーフィズムを介して一つの変数や関数の名前が、状況に応じて別の意味で解釈されることができるようになります。
Facebook [ja]コメント