「オブジェクト (プログラミング)」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Xqbot (会話 | 投稿記録)
m ロボットによる 追加: tr:Nesne (programlama)
編集の要約なし
4行目: 4行目:
たとえば、「[[マウスカーソル]]」というオブジェクトについては、上下左右に動かす、クリックするというような操作が考えられるし、「ファイル」というオブジェクトについては、コピー、削除などの操作が考えられるが、こういった対象を表現するのがオブジェクトだと言える。ウィンドウ、メニュー、ファイル、段落など、コンピュータ上でユーザが目にするもので、名前が付いているような[[もの]]はほとんどオブジェクトであるが、ユーザが目にしないようなオブジェクトもあり、これらの全体として、プログラムが動作している。
たとえば、「[[マウスカーソル]]」というオブジェクトについては、上下左右に動かす、クリックするというような操作が考えられるし、「ファイル」というオブジェクトについては、コピー、削除などの操作が考えられるが、こういった対象を表現するのがオブジェクトだと言える。ウィンドウ、メニュー、ファイル、段落など、コンピュータ上でユーザが目にするもので、名前が付いているような[[もの]]はほとんどオブジェクトであるが、ユーザが目にしないようなオブジェクトもあり、これらの全体として、プログラムが動作している。


オブジェクトの具体的な[[実体]]を、[[インスタンス]]呼び、抽象的なオブジェクトの性質を[[クラス (コンピュータ)|クラス]]と呼ぶ。たとえばファイルやコンピュータなどアイコンは、オブジェクトのインスタンスであり、一般的な「[[ファイル (コンピュータ)|ファイル]]というもの」「マウスカーソルというもの」がクラスである。
ある対象がどういう特徴持ちどういう動きをするのかいった、抽象的なオブジェクトの性質を[[クラス (コンピュータ)|クラス]]と呼ぶ。そしてクラスに基づき生成されたオブジェクトの具体的な[[実体]]を[[インスタンス]]と呼ぶ。「[[ファイル (コンピュータ)|ファイル]]というもの」「マウスカーソルというもの」がクラスであり、「〜というもの」という仕様にそったファイルやコンピュータなどのアイコンは、オブジェクトのインスタンスである。なお、一部のプログラミング言語では、クラスというはっきりした概念を持っていないのものある(当然、その類のプログラミング言語ではインスタンスの位置づけも若干変わる)


ただし、オブジェクトがクラスやインスタンスの意味で使われることもあり、注意が必要である。
ただし、オブジェクトがクラスやインスタンスの意味で使われることもあり、注意が必要である。

2010年5月19日 (水) 18:01時点における版

オブジェクト: object)はオブジェクト指向プログラミングにおいて、プログラム上の手続きの対象を抽象化する概念である。

概説

たとえば、「マウスカーソル」というオブジェクトについては、上下左右に動かす、クリックするというような操作が考えられるし、「ファイル」というオブジェクトについては、コピー、削除などの操作が考えられるが、こういった対象を表現するのがオブジェクトだと言える。ウィンドウ、メニュー、ファイル、段落など、コンピュータ上でユーザが目にするもので、名前が付いているようなものはほとんどオブジェクトであるが、ユーザが目にしないようなオブジェクトもあり、これらの全体として、プログラムが動作している。

ある対象がどういう特徴を持ち、どういう動きをするのかといった、抽象的なオブジェクトの性質をクラスと呼ぶ。そして、そのクラスに基づき生成されたオブジェクトの具体的な実体インスタンスと呼ぶ。「ファイルというもの」「マウスカーソルというもの」がクラスであり、「〜というもの」という仕様にそったファイルやコンピュータなどのアイコンは、オブジェクトのインスタンスである。なお、一部のプログラミング言語では、クラスというはっきりした概念を持っていないのものある(当然、その類のプログラミング言語ではインスタンスの位置づけも若干変わる)。

ただし、オブジェクトがクラスやインスタンスの意味で使われることもあり、注意が必要である。

オブジェクトの実装

オブジェクトは、単純なデータとは限らない<何ものか>を指す概念だが、オブジェクトのインスタンスは、プログラムが実行される時の実体は記憶装置上のデータである。これに対し、クラスはインスタンスが持つデータの形式と操作についての定義であり、プログラムが実行されるときの実体は記憶装置上のプログラムに対応する。このとき、そのオブジェクトは、<何ものか>を抽象化していると表現される。(ここで言う「抽象化」は、C++抽象クラスとは無関係)

たとえば、オブジェクトが「会員」を表している場合、オブジェクトのインスタンスは、会員番号や、会員についての情報だけを持ち、それで「会員」そのものを表わすと考える。一方、クラスはこのインスタンスがどのような性質を持つか、会員番号は何桁分必要で、そのほかにどのような情報を持つか、さらにその会員についてのさまざまな操作―たとえば、その会員のウェブ上でのログイン/ログオフや、認証にかかわるさまざまな操作を定義するものである。このとき、このオブジェクトは「会員」を抽象化していることになる。

オブジェクトは記憶装置上に自らのインスタンスを作るための手続きを備えており、この手続きが何らかの形で(通常は他のインスタンスによって)呼び出されることで、インスタンスとなる。オブジェクト指向プログラミングでは、プログラムもオブジェクトであり、プログラムの実行を抽象化するオブジェクトがインスタンス化することを契機として、さまざまなオブジェクトがインスタンス化され、これによってプログラムが作動する。

関連項目