クラスとオブジェクト

オブジェクト指向プログラミングでは、 classはプロパティとメソッドのコレクションを定義する構成体です。 テンプレートと考えることができます。 例えば、

 クラスItem {public $ itemType; / *たとえば、これは「Book」または「CD」です* / public $ price; public function printPrice(){echo "この{$ this-> itemType}の価格は{$ this-> price}ドルです。"; }} $ catch22 = new Item(); $ catch22-> itemType = "Book"; $ catch22-> price = 25; $ catch22-> printPrice(); / *出力この本の価格は25ドルです。 * / $ americanPrayer = new Item(); $ americanPrayer-> itemType = "CD"; $ americanPrayer-> price = 22; $ americanPrayer-> printPrice(); / *出力このCDの価格は22ドルです* / 

この例では、$ catch22と$ americanPrayerは2つのオブジェクトであることに注意してください。 オブジェクトはクラスのインスタンスです。 これらは、クラスが定義する共通の構造を共有します。 この共通構造は、クラスのプロパティ(上記の例では$ itemTypeと$ price)およびメソッド(関数;上記の例ではprintPrice())で構成されています。 ただし、異なるオブジェクトのプロパティは異なる場合があります。

上記の例では、価格とアイテムタイプは、同じクラスの2つのオブジェクトで異なります。 ただし、両方のオブジェクトには、使用可能なprintPrice()メソッド、 priceプロパティ、 itemTypeプロパティがあります。

比較表

クラスとオブジェクトの比較チャート
クラス 対象
定義クラスは、単一のユニットでデータメンバーと関連メソッドをバインドするメカニズムです。クラスのインスタンスまたはクラスの変数。
存在論理的な存在です物理的な存在です
メモリ割り当てメモリ空間は、作成時に割り当てられません。メモリ空間は、作成時に割り当てられます。
宣言/定義定義は一度作成されます。必要に応じて何度も作成されます。

特殊なケース

Pythonなどの一部のプログラミング言語では、すべてがオブジェクトです。 これは、関数、変数、クラスのインスタンス、さらに実際のクラスでさえ、プログラミング言語によってオブジェクトとして扱われることを意味します。

関連記事