重要でない細かい部分や、具体的な部分を取り去って、本質的で重要な側面や要素のみを残した概念として定義することです。また、複数ある対象に共通している性質や要素をみつけて、新しい概念を定義することです。
プログラミングにおいては、プログラムの中に何度も登場する同じ内容の処理を関数やクラス、モジュールなどに分離して、必要な箇所から呼び出して使うことは抽象化の1つのかたちです(制御抽象化)。
また、データ構造とそれに対する操作を定義し、具体的な方法は切り離すように定義される抽象データ型などの手法も、抽象化の1つのかたちです(データ抽象化)。たとえば、データ構造のスタックを抽象データ型と捉えれば、後入れ先出しの動作をプッシュとポップという操作によって実現するデータ構造であると定義でき、メモリ上でデータがどのように管理されているかとか(配列でもいいし、連結リストでも構わない)、プッシュやポップがどのように実装されているか(インデックスで管理してもいいし、スタックポインタで管理してもいい)を切り離して考えられます。
オブジェクト指向プログラミングにおけるオブジェクトという概念も、データとメソッドを一体化して抽象化したものと考えられます。抽象化されたクラスを抽象クラス、メソッドを抽象メソッドと呼ぶほか、データ構造の各要素への反復処理を抽象化したイテレータと呼ばれるオブジェクトやメソッドもあります。
このほかにも、入出力のストリームの仕組みなど、多くの場面に抽象化の考え方が登場します。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |