プログラミング言語の分類の1つで、複数のオブジェクトと呼ばれる要素が相互に連携するようにして、プログラムを設計、構成するタイプの言語のことです。
オブジェクトは、データとメソッド(手続き)を一体化して、抽象化したものです。
オブジェクトが互いに指示を送る(メッセージング)ことでプログラムが設計、記述されます。こうしたプログラミングの考え方をオブジェクト指向プログラミングと呼び、オブジェクト指向プログラミングを行うために必要な機能をもっているプログラミング言語のことを指して、オブジェクト指向プログラミング言語と呼びます。
オブジェクト指向プログラミング言語と呼ばれているプログラミング言語の例として、Smalltalk や Eiffel などがあります。しかしこれらの言語の誕生は古く、現代での使用例は少なくなっています。現在よく使われているプログラミング言語は、オブジェクト指向プログラミング “にも” 対応したマルチパラダイムプログラミング言語であることが多くなっています(C++、C#、Java、Ruby など)。パラダイム(プログラミングパラダイム)とは、プログラミング言語が規定するプログラムの規範(考え方や記述方法などの枠組み)のことで、複数のパラダイムを取り込んでいることをマルチパラダイムと表現します。
マルチパラダイムなオブジェクト指向対応言語では、オブジェクト指向プログラミングの考え方のすべてを言語の機能として備えているとは限らず、一部の考え方を排除したり、置き換えたりしていることもあります。たとえば、C++ にはオブジェクト指向プログラミング的な意味でオブジェクトとは呼べない int型などの変数が存在しますし、メッセージングの仕組みは単なる関数呼び出しに過ぎません。このように、オブジェクト指向プログラミング言語と呼ばれる言語たちにも、その純粋さの違いがあります。
また、オブジェクトを作る方法の違いから、クラスベースのオブジェクト指向プログラミング言語と、プロトタイプベースのオブジェクト指向プログラミング言語に分類することがあります。クラスベースでは、まずクラスを定義して、これをインスタンス化することでオブジェクトを生成します。プロトタイプベースにはクラスは登場せず、既存のオブジェクトを基(プロトタイプ)にして、新しいオブジェクトを生成します。現在のオブジェクト指向プログラミング言語の多くはクラスベース、あるいは元々プロトタイプベースであったものにクラスの概念が追加されたものになっており、この分類方法もあまり意味をなさなくなっています。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |