0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

オブジェクト指向

Posted at

オブジェクト指向設計

オブジェクト単位にシステムを設計する。オブジェクト同士がお互いにメッセージをやり取りしながら処理していく

オブジェクト

データ(属性)とそれを操作するメソッド(手続)を一体化したもの

カプセル化

オブジェクト内にあるデータとメソッドを、オブジェクトの外部から隠蔽すること。
また、オブジェクトの独立性を高めることができる。
オブジェクトに対して出来る手段がメッセージを送ること(メッセージパッシング)。

クラスとインスタンス

クラス

データとメソッドを持ったオブジェクトの雛形を定義したもの。設計図のようなもの

インスタンス

クラスを基にして生成されたオブジェクト。

イメージ:たこ焼きをイメージする。出来上がった、たこ焼きがインスタンスで、その器械がクラス。

継承とポリモフィズム

既存のクラスから、新しいクラスを生成することができる。元のクラスをスーパークラス(基底クラス・親クラス)。新しく生成したクラスをサブクラス(派生クラス・子クラス)という。

継承

継承(インヘリタンス)はスーパークラスで定義しているデータやメソッドを、サブクラスに引き継ぐこと。

ポリモフィズム

スーパークラスのメソッドを一部変えて使いときは、サブクラスに同じ名前で内容を変えて再定義する。これをオーバーライドという。
同一のメッセージでも、各インスタンスで特有の処理を行うことができる。ポリモフィズム(多相性・多態性)といわれている。

委譲

あるオブジェクトに依頼されたメッセージの処理を、そのオブジェクトの内部から他のオブジェクトに委ねること。

クラスの階層化

汎化(抽象化) - 特化

汎化(抽象化)は、下位クラスの共通部分を抽出して上位クラスを定義すること。逆を特化という。
「下位クラス is a 上位クラス」の関係

集約 - 分解

集約は、上位クラスが下位クラスの組合せで構成されていること。逆を分解という。
「集約 - 分解」には、「下位クラス is a part of 上位クラス」の関係

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?