オブジェクト指向プログラミングの第一歩を踏み出そう
オブジェクト指向プログラミングって何?
これまでのステップでは、手続き型プログラミングという、上から順に処理を書いていく方法を学んできました。これは小規模なプログラムには有効ですが、プログラムが複雑になってくると、コードの管理が大変になることがあります。
そこで登場するのがオブジェクト指向プログラミング (OOP: Object-Oriented Programming) です。OOPは、現実世界の「モノ」や「概念」をプログラム内で表現するための考え方です。関連するデータ(属性)と処理(操作)をひとまとめにした「オブジェクト」という単位でプログラムを組み立てていきます。
このステップでは、OOPの基本となる「クラス」と「オブジェクト」について学んでいきましょう!
クラス:オブジェクトの設計図
クラスは、オブジェクトを作るための設計図やテンプレートのようなものです。クラスには、オブジェクトが持つべきデータ(プロパティ)と、オブジェクトが行うことができる操作(メソッド)を定義します。
例えば、「車」というクラスを考えてみましょう。車クラスには、次のような情報や機能が考えられます。
- プロパティ (データ): 色、メーカー名、現在の速度
- メソッド (操作): アクセルを踏む、ブレーキをかける、現在の速度を表示する
PHPでクラスを定義するには、class
キーワードを使います。クラス名の最初の文字は大文字にするのが一般的です(パスカルケース)。
ポイント
class Car { ... }
でクラスを定義します。public $color;
のようにクラス内で変数を定義すると、それがプロパティになります。public
はアクセス権限の一種で、どこからでもアクセスできることを意味します(詳細は後述)。public function accelerate() { ... }
のようにクラス内で関数を定義すると、それがメソッドになります。- メソッド内でプロパティにアクセスするには
$this->プロパティ名
を使います。$this
は、そのメソッドが呼び出されたオブジェクト自身を指します。
オブジェクト:クラスから生まれた実体
クラスはあくまで設計図です。実際にプログラムで使うためには、クラスをもとにオブジェクトを作成する必要があります。オブジェクトは、クラスという設計図から作られた実体 (インスタンス) です。
先ほどの「車」クラスから、具体的な「赤いトヨタ車」や「青いホンダ車」といったオブジェクトを作ることができます。それぞれの車オブジェクトは、同じ「車」クラスから作られていますが、色やメーカー名などのプロパティの値は異なる場合があります。
PHPでオブジェクトを作成するには、new
キーワードを使います。
new Car()
と書くことで、Car
クラスの設計図に基づいてメモリ上に新しいオブジェクトが作成され、そのオブジェクトが変数 $myCar
や $yourCar
に格納されます。
オブジェクトの操作:プロパティへのアクセスとメソッドの呼び出し
オブジェクトを作成したら、そのオブジェクトのプロパティに値を設定したり、メソッドを呼び出したりすることができます。これにはアロー演算子 ->
を使います。
プロパティへのアクセス
オブジェクト変数->プロパティ名
の形式で、プロパティの値を読み書きできます。
メソッドの呼び出し
オブジェクト変数->メソッド名()
の形式で、オブジェクトのメソッドを実行できます。
このように、各オブジェクトは独立しており、それぞれのプロパティ値を持ち、メソッドはそのオブジェクト自身のプロパティを操作します。
まとめ
今回は、オブジェクト指向プログラミングの基本となる「クラス」と「オブジェクト」について学びました。
- クラス: オブジェクトの設計図。プロパティ(データ)とメソッド(操作)を定義する。
class
キーワードで定義。 - オブジェクト: クラスから作られた実体(インスタンス)。
new
キーワードで作成。 - プロパティアクセス:
$object->property
- メソッド呼び出し:
$object->method()
クラスとオブジェクトの概念を理解することは、PHPでより複雑で再利用性の高いコードを書くための重要な第一歩です。
次のステップでは、クラスの構成要素であるプロパティとメソッド、そしてオブジェクトが作成されるときに自動的に呼び出される特別なメソッド「コンストラクタ」について、さらに詳しく見ていきましょう!