PHP SCHOOL.biz

PHPの学習をする為のブログです。プログラム未経験の方にも理解できるよう基本的な、PHPの知識について身に付けることができるようにわかりやすい内容にしていきたいと思っています。


オブジェクト指向とは?

PHPはオブジェクト指向に則ったプログラムを組めるため、オブジェクト志向プログラミングの基本となる考えを理解しておく必要があります。

PHP・Ruby・Javaなどのいずれの言語を選択した場合でも「Objects / オブジェクト」とは何を意味しているのかという基礎・基本を知っているだけで、学習スピードが格段に違ってきます。

それでは、まずはオブジェクト志向とは「何か」についてお伝えしていきます。


・オブジェクト志向とは?


オブジェクト志向プログラミングにおいて、オブジェクトとは「何かしらの処理を与える事が出来る対象」のことを意味しています。

例えば、PHPで生成するClass(クラス)も当然オブジェクトとなります。

現実世界ではオブジェクトと聞くと「物/もの」を想像してしまうかもしれませんが、オブジェクト志向の世界のオブジェクトとは、無機物・空間・概念的な存在となんでも良いので「処理を与える事ができる対象」のことを意味しています。

オブジェクト指向言語では「オブジェクト」に何らかの処理をしてもらう為に「メッセージ」を送ると考えます。

オブジェクトはメッセージを受け取った後に、オブジェクトに定義されている処理を実行します。この処理はメソッドで実行されます。

そして、オブジェクト志向のプログラミング言語では「メソッド呼び出し」という言い方をする事がありますが、これは対象のオブジェクトのメソッドにメッセージを送り、その呼びかけに呼応した処理をオブジェクトが処理するからです。

今回はPHPが例ですので『PHPのCarClassオブジェクトに処理を記述しておいて、必要な時に呼び出して実行してもらう』という構図になります。

では、実際にCarClassオブジェクトを見てみましょう。

<?php

Class Car {
  public function move() {
    echo '走る';
  }
}

$sports_car = new Car();

$sports_car->move();

?>

実行結果

「コード処理手順」

・Car Class(クラス)を生成
・publicとは、クラス外からメソッド・変数へのアクセス権の事で、アクセス修飾子の事です。
・newメソッドでクラスをインスタンス化
・アロー演算子->を用いて、$sports_carに代入したCar Classのmoveメソッド呼び出しを行う。

さて、上記のCarClassに定義した「moveメソッド」には、呼び出し時に文字列'走る'を出力する処理が行われています。

その後にクラスオブジェクトのインスタンス(実体化)を行い、$sport_carにmoveメソッドを呼び出させています。

今回の例では、CarClassというオブジェクトに「文字列'走る'」を出力させる処理を与えています。

特に理解しておいて欲しいのが『Classというオブジェクトに何かしらの処理を与えている点』です。

PHPはオブジェクト指向に則ったプログラミンを組めるため、このようなオブジェクトに対する処理を行う事が自然なプログラムを書く行為に繋がります。