理系母の趣味はプログラミング

理系院卒、メーカー技術職の二児の母が、PythonやVBAで色々と作ってアップしていくブログです。

【20日目】オブジェクト指向プログラミング④抽象化について学ぶ

こんばんは、なぺです。
今日はオブジェクト指向プログラミングの4大要素のうちの2つ目、抽象化について学びます。
今回は短くなりそう

まず、抽象化とは

抽象化とは、対象から細部や具体性を取り去り、本質的に重要な要素や、着目している側面のみを取り出して、一つの概念として定義すること。また、異なる複数の対象に共通する性質や要素を見出し、共通点を組み合わせて汎用的な概念を構成すること。

e-words.jp


ということです。
要は、大事なところだけ残す、ということでしょうか?

本では人をモデル化することを例にとって追加説明がありました。

人の特徴には、髪の色、目の色、身長、体重、民族、性別、など、多くの複雑な要素があります。しかし、人をクラスで表現しようとしたとき、多くの特徴はこのクラスで扱いたい問題に関係ありません。

わかった気がする!

ここから私の考え

例えば、
全国一斉学力テストを実施した。
その結果のうち数学と理科について、県、市町村別に比較したい。
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(区市町村)しか設定しない。
それ以外の、国語や英語の点数、学校名、性別、髪の色、目の色、身長、体重、民族、などはやりたいことに関係ないので、情報として破棄します。

これが抽象化。

だよね?


間違ってたら教えてください!

今日は以上です。

参考書はこちらです。

それでは、また^^