by shigemk2

当面は技術的なことしか書かない

オブジェクトとクラス

OOPのおかげで、すっきりとした設計で保守や再利用が出来るようになった。
OOPでは、データ自身とデータを処理するコードをひとまとめにして扱い、開発者はそれを利用して
プログラムを作成することになる。

手続き型のプログラミング言語では、個々のユーザを構造体などで管理することになり、
それとは別にユーザ構造体を処理するための関数(新規ユーザの作成やユーザ情報の取得など)を作成する。

これにたいしOOPでは、個々のユーザをオブジェクト
つまりデータにコードを組み合わせたものとして管理する。
データとコードがあることには変わりはないが、両者がひとつになっているのである。

オブジェクトはコードとデータをひとまとめにしたものであり、
アプリケーションの各部分を部品化して再利用可能にする。

クラスとは、オブジェクトを作成するさいに用いられる雛形のことであり。そしてオブジェクトは、このクラスを実際に形にしたものである。
つまり、実際のユーザの情報を格納したデータ構造に、それを処理するコードがついたものである。
オブジェクトとクラスの関係は、値とデータ型の関係に似ている。整数型というデータ型は1つしか存在しないが、
整数値は沢山存在する。また、ユーザクラスはプログラム内で1回しか定義できないが、それをもとにした
ユーザオブジェクトは何個でも作成することができる。

オブジェクトに関連づけられたデータのことを、オブジェクトのプロパティと呼び、
オブジェクトに関連づけられた関数のことを、オブジェクトのメソッドという。

クラスを定義するときに、プロパティの名前やメソッドのコードを指定する。

カプセル化を利用すると、プログラムのデバッグや保守がしやすくなる。
カプセル化とは、そのクラスのオブジェクトを使用するためのメソッド(インターフェイス)をクラス自身で提供することである。
これにより、そのオブジェクトのデータ構造を外部から直接操作することがなくなる。

P153より

プログラミングPHP 第2版

プログラミングPHP 第2版