【20日目】オブジェクト指向プログラミング④抽象化について学ぶ
こんばんは、なぺです。
今日はオブジェクト指向プログラミングの4大要素のうちの2つ目、抽象化について学びます。
今回は短くなりそう
まず、抽象化とは
抽象化とは、対象から細部や具体性を取り去り、本質的に重要な要素や、着目している側面のみを取り出して、一つの概念として定義すること。また、異なる複数の対象に共通する性質や要素を見出し、共通点を組み合わせて汎用的な概念を構成すること。
ということです。
要は、大事なところだけ残す、ということでしょうか?
本では人をモデル化することを例にとって追加説明がありました。
人の特徴には、髪の色、目の色、身長、体重、民族、性別、など、多くの複雑な要素があります。しかし、人をクラスで表現しようとしたとき、多くの特徴はこのクラスで扱いたい問題に関係ありません。
わかった気がする!
ここから私の考え
例えば、
全国一斉学力テストを実施した。
その結果のうち数学と理科について、県、市町村別に比較したい。
Personクラスに人のインスタンスを定義したいとき。
この時のコードは下記のようになると思われる。
>>> class Person: def __init__(self,m,s,p,c): self.math = m self.science = s self.pref = p self.city = c person1 = Person(90,50,'tokyo','minatoku')
やりたいことは、「数学と理科について、県、市町村別に比較したい」なので、
インスタンス変数にはmath、science、pref(市)、city(区市町村)しか設定しない。
それ以外の、国語や英語の点数、学校名、性別、髪の色、目の色、身長、体重、民族、などはやりたいことに関係ないので、情報として破棄します。
これが抽象化。
だよね?
間違ってたら教えてください!
今日は以上です。
参考書はこちらです。
独学プログラマー Python言語の基本から仕事のやり方まで
- 作者:コーリー・アルソフ
- 発売日: 2018/02/24
- メディア: 単行本
それでは、また^^