【独学PHP】オブジェクト指向

※この記事は「2020年9月19日」に更新しました。

独学できる PHP講座。

今回は、オブジェクト指向について。

前回は、関数の基本について、解説しました。

関数の基本

【独学PHP】関数の基本

2020年9月11日

オブジェクト指向とは

オブジェクト指向とは、ソフトを構成する一つの部品を様々なアプリケーションで共通的に利用できるようにプログラミングする考え方です。

PHP に限らず、古典的なプログラミング言語以外は、ほとんど採用しています。

もともと、PHP は、豊富な関数ライブラリを特徴とする言語でした。

しかし、近年では、オブジェクト指向プログラミングに対応し、クラスライブラリも多く提供されるようになりました。



クラスと関数の違い

今までは、関数でデータの処理を行い、変数でデータを保持していました。

クラスは、簡単に説明すると、そのどちらの機能も備えたものです。

プロパティとメソッドで構成され、プロパティが属性、メソッドが振る舞いのようなものです。

クラスは設計図のようなものです。

例えば、車クラスというものがあれば、プロパティには、色、車名などが考えられます。

メソッドには、走る、止まるなどが考えられます。

インスタンス化

クラスをコンピュータ上で動かすには、インスタンスを生成する必要があります。

設計図(クラス)から実際に動作するオブジェクト(インスタンス)をつくるイメージです。

クラスをインスタンス化するには、new 演算子を使います。

$変数名 = new クラス名(引数1, 引数2, …);

引数は、オブジェクトを初期化するためのものです。

引数を使わない場合もあります。

インスタンス化されたオブジェクトは変数に格納されます。

この変数をオブジェクト変数と言ったりします。

プロパティとメソッドの呼び出し

インスタンス化されたオブジェクトのプロパティとメソッドは、アロー演算子(->)で呼び出すことができます。

例えば、プロパティであれば、以下のようになります。

オブジェクト変数->プロパティ名

メソッドも同じようになります。

オブジェクト変数->メソッド名

静的プロパティと静的メソッド

プロパティとメソッドには、インスタンス化しなくても呼び出せるものがあります。

それが、静的プロパティと静的メソッドです。

この場合、呼び出す方法は以下のようになります。

まずは、静的プロパティから紹介します。

クラス名::プロパティ名

続いて、静的メソッドです。

クラス名::メソッド名

オブジェクト指向のメリット

オブジェクト指向のメリットを紹介します。

プログラムの保守性が向上する

オブジェクト指向の設計は難しいですが、正しくつくられたものは保守性が向上します。

プログラムを一つ一つの小さなまとまり(オブジェクト)として考えるので、複雑になりにくいです。

大人数で開発しやすい

オブジェクト指向は、大人数で開発するのに向いているとも言えます。

手続き型の場合、設計思想や仕様を新しい人に説明するとなるとなかなか難しいです。

なぜなら、手順を説明しているからです。

しかし、オブジェクト指向は、細かい内部構造は理解しなくても、クラスのメソッドやプロパティの役割だけ知れば、問題ありません。

中身がブラックボックスでも共通的に使えるので、大人数でも開発しやすいのです。

カスタマイズしやすい

オブジェクト指向には、継承(インヘリタンス)という考え方があります。

既に存在するクラスを拡張して、新しいクラスを簡単に作成することができます。

このおかげでカスタマイズしやすいのも特徴です。

最後に

いかがでしょうか。

今回は、オブジェクト指向について、解説しました。

PHP の他にも Java や Python(パイソン)もオブジェクト指向を取り入れた言語です。

もし他の言語も学ぶ機会があれば、比較してみると面白いかと思います。