目次
オブジェクト指向を学ぼう
オブジェクト指向は、プログラミングのために使われる考え方です。
オブジェクトとは、データ構造と処理を一体化したものを指し、これを活用してソフトウェアを構築する考え方をオブジェクト指向と呼びます。
オブジェクト指向の概念を取り入れたプログラミングを、オブジェクト指向プログラミング(OOP)と言います。OOPを理解するために、以下の基本的な知識を学びましょう。
クラス
クラスは、メンバー変数やメソッドの定義を含む設計図です。
クラスを使用するには、インスタンス化する必要があります。クラス変数やクラスメソッドは、静的に使用でき、インスタンス化せずに利用できます。
オブジェクト
クラスをインスタンス化したものがオブジェクトです。基本的に、クラスはオブジェクトを生成してから使用します。
クラス変数
クラスが持つ変数で、インスタンス化しなくても静的に使用できます。
インスタンス変数
オブジェクトが持つ変数で、属性やプロパティと呼ばれることもあります。インスタンス化されたオブジェクトからのみ参照できます。
クラスメソッド
クラス自体が持つメソッドで、インスタンス化しなくても静的に呼び出せます。
インスタンスメソッド
オブジェクトが持つメソッドで、インスタンス化されたオブジェクトからのみ呼び出せます。
メンバー
クラス変数、インスタンス変数、クラスメソッド、インスタンスメソッドをまとめてメンバーと呼びます。
継承
継承とは、あるクラスが別のクラスのメンバーを引き継ぐ仕組みです。
例として、class Cat extends Animal
のように、クラスCatがクラスAnimalを継承することができます。
class Animal {
protected $name;
public function __construct() {
$this->name = "動物";
}
public function talk() {
echo $this->name;
}
}
class Cat extends Animal {
public function __construct() {
$this->name = "ねこ";
}
}
$cat = new Cat();
$cat->talk(); // 出力: ねこ
カプセル化
カプセル化は、オブジェクトのメンバーを保護し、外部からのアクセスを制限する技術です。
クラスの内部構造を隠すことで、疎結合な設計を促進します。
ポリモーフィズム(多態性)
ポリモーフィズムは、複数のクラスが同名のメソッドを持ち、利用者がクラスを切り替えるだけで動作を変更できる設計思想です。これにより、コードの簡素化と関心の分離が可能になります。
オブジェクト指向の今後
オブジェクト指向の知識は、現代のプログラミングにおいて不可欠です。
実務で他のプログラマーが作成したクラスやオープンソースのライブラリを利用することが多いため、オブジェクト指向の理解が求められます。
このブログを通じて、オブジェクト指向プログラミングを学びましょう。