オブジェクト指向プログラミング

オブジェクト=データ(属性)とそれに対するメソッド(手続き)をひとつにまとめた概念

カプセル化とは

データやメソッドという複数の要素たちを1つの構造にまとめたものをカプセルと呼ぶ。

カプセル化の利点:どんなふうに管理されているかなど外部から見ることができない=情報隠蔽

クラスとインスタンス

  • クラス:オブジェクトが持つ性質を定義したもの。オブジェクトの設計図
  • インスタンス:具体的な属性値を与え、メモリ上に生成してポコリと一体化させたもの

クラスには階層構造がある

クラスの考え方の基本は「オブジェクトを抽象化して定義する」こと。ボタンであれば「ボタンというオブジェクト」を抽象化して定義することが基本

上位クラスと下位クラスという考え方がある

  • 下位は上位の特性を受け継ぐので、下位クラスは上位との差分だけを作りこめばいい
  • 上位クラスをスーパークラス(基底クラス)、下位クラスをサブクラス(派生クラス)という
  • サブクラスがスーパークラスの特性を受け継ぐことを継承という

汎化と特化(is a 関係)

  • 汎化:下位クラスが持つ共通の性質を、抽出して上位クラスとして定義する
  • 特化は汎化の逆

集約と分解

継承関係のない上位クラスと下位クラスの関係を指す。

下位クラスは上位クラスの性質を分解して定義したもので、上位クラスは複数の下位クラスを集約して定義したもの。

多態性(ポリモーフィズム)

同じメッセージを複数のオブジェクトに送ると、それぞれが独立した固有の処理を行う。これを多態性という

タイトルとURLをコピーしました