1. オブジェクト指向の目的
オブジェクト指向とは、モノと操作を分けて作り、組み立てるように開発していくことであり、オブジェクト(モノ)ごとにクラスを作成することでコードの再利用性や保守性を高める。
「オブジェクト」とは、プロパティ(データ)とメソッド(操作、処理内容)の2つの要素を持った全ての物のこと。
「クラス」とは、プログラムを作成するための設計図。
オブジェクトを作る際に必要な要素をまとめたもの。
クラスから生成されたものをインスタンスという。(インスタンス化)
2. カプセル化
カプセル化とは、データ(プロパティ)や処理(メソッド)を1つのクラスにまとめ、外部から直接アクセスできないようにする仕組みのこと。
データの保護と外部とのインターフェースの簡潔化を目的としている。また、外部からの不正なアクセスや変更を防げるため、安全性が高い。
3. 継承
継承とは、既存のクラス(親クラスまたは基底クラス)の機能や性質を引き継ぎ、新しいクラス(子クラスまたは派生クラス)を作る仕組みのこと。
同じような機能を持つ新しいクラスを作る際に再利用できるため、開発を簡略化し、仕様の変更などの際にも修正が容易。
- 抽象クラス
抽象クラスとは、他のクラスに継承されることを前提とした基底クラスのこと。
抽象クラスはインスタンス化できず、必ず子クラスで継承して使用する。
- インターフェース
インターフェースとは、クラスが実装すべきメソッドの仕様(名前と引数)を定義するための仕組みのこと。
メソッドの中身(具体的な処理)は持たず、実装クラス側で定義する。また、複数のインターフェースを実装可能(多重実装が可能)。
異なるクラス間で共通メソッドを持たせることができる。
4. ポリモーフィズム
ポリモーフィズムとは、同じ操作でも異なるオブジェクトに応じて異なる動作を実行できる仕組みのこと。
同じ操作を異なるクラスで使い回せるため、拡張性のあるコードが書ける。また、共通のインターフェースや抽象クラスを通じて、汎用的なコードを書くことが可能。
ポリモーフィズム」という言葉は、「多くの形」という意味を持ち、同じインターフェースやメソッドを使いながら、異なる具体的な動作を実現することを指します。
5. 単一責任の原則
単一責任の原則とは、クラスは1つの責任だけを持つべきという原則のこと。
責任とは、クラスが行うべき1つの明確な仕事や機能のこと。