「オブジェクト (プログラミング)」の版間の差分
編集の要約なし |
+interlangなど |
||
4行目: | 4行目: | ||
[[オブジェクト指向]]プログラミングにおいて、プログラム上の手続きの対象を抽象化する概念。たとえば、「マウスカーソル」というオブジェクトについては、上下左右に動かす、クリックするというような操作が考えられるし、「ファイル」というオブジェクトについては、コピー、削除などの操作が考えられるが、こういった対象を表現するのがオブジェクトだと言える。ウィンドウ、メニュー、ファイル、段落など、コンピュータ上でユーザが目にするもので、名前が付いているようなものはほとんどオブジェクトであるが、ユーザが目にしないようなオブジェクトもあり、これらの全体として、プログラムが動作している。 |
[[オブジェクト指向]]プログラミングにおいて、プログラム上の手続きの対象を抽象化する概念。たとえば、「マウスカーソル」というオブジェクトについては、上下左右に動かす、クリックするというような操作が考えられるし、「ファイル」というオブジェクトについては、コピー、削除などの操作が考えられるが、こういった対象を表現するのがオブジェクトだと言える。ウィンドウ、メニュー、ファイル、段落など、コンピュータ上でユーザが目にするもので、名前が付いているようなものはほとんどオブジェクトであるが、ユーザが目にしないようなオブジェクトもあり、これらの全体として、プログラムが動作している。 |
||
オブジェクト |
オブジェクトの具体的な実体を、[[インスタンス]]と呼び、抽象的なオブジェクトの性質を[[クラス]]と呼ぶ。たとえば、ファイルやコンピュータなどのアイコンは、オブジェクトのインスタンスであり、一般的な「ファイルというもの」、「マウスカーソルというもの」が、クラスである。 |
||
ただし、[[オブジェクト]]が[[クラス]]や[[インスタンス]]の意味で使われることもあり、注意が必要である。 |
ただし、[[オブジェクト]]が[[クラス]]や[[インスタンス]]の意味で使われることもあり、注意が必要である。 |
||
17行目: | 17行目: | ||
[[Category:オブジェクト指向|*]] |
[[Category:オブジェクト指向|*]] |
||
[[bs:Računarski objekat]] |
|||
[[cs:Instance třídy]] |
|||
[[da:Objekt (datalogi)]] |
|||
[[de:Objekt (Programmierung)]] |
|||
[[en:Object (computer science)]] |
|||
[[es:Objetos (programación orientada a objetos)]] |
|||
[[eo:Objekto (komputiko)]] |
|||
[[it:Oggetto (informatica)]] |
|||
[[lt:Objektas (programavimas)]] |
|||
[[nl:Object (informatica)]] |
|||
[[pl:Obiekt (programowanie obiektowe)]] |
|||
[[pt:Objeto]] |
|||
[[ru:Экземпляр (программирование)]] |
|||
[[ta:பொருள் (கணினியியல்)]] |
|||
[[vi:Đối tượng (khoa học máy tính)]] |
|||
[[zh:对象 (计算机科学)]] |
2007年1月18日 (木) 19:32時点における版
この項目では、オブジェクト指向におけるオブジェクトについて解説する。
概要
オブジェクト指向プログラミングにおいて、プログラム上の手続きの対象を抽象化する概念。たとえば、「マウスカーソル」というオブジェクトについては、上下左右に動かす、クリックするというような操作が考えられるし、「ファイル」というオブジェクトについては、コピー、削除などの操作が考えられるが、こういった対象を表現するのがオブジェクトだと言える。ウィンドウ、メニュー、ファイル、段落など、コンピュータ上でユーザが目にするもので、名前が付いているようなものはほとんどオブジェクトであるが、ユーザが目にしないようなオブジェクトもあり、これらの全体として、プログラムが動作している。
オブジェクトの具体的な実体を、インスタンスと呼び、抽象的なオブジェクトの性質をクラスと呼ぶ。たとえば、ファイルやコンピュータなどのアイコンは、オブジェクトのインスタンスであり、一般的な「ファイルというもの」、「マウスカーソルというもの」が、クラスである。
ただし、オブジェクトがクラスやインスタンスの意味で使われることもあり、注意が必要である。
オブジェクトの実装
オブジェクトは、単純なデータとは限らない<何ものか>を指す概念だが、オブジェクトのインスタンスは、プログラムが実行される時の実体は記憶装置上のデータである。これに対し、クラスはインスタンスが持つデータの形式と操作についての定義であり、プログラムが実行されるときの実体は記憶装置上のプログラムに対応する。このとき、そのオブジェクトは、<何ものか>を抽象化していると表現される。(ここで言う「抽象化」は、C++言語の、抽象クラスとは無関係)
たとえば、オブジェクトが「会員」を表している場合、オブジェクトのインスタンスは、会員番号や、会員についての情報だけを持ち、それで「会員」そのものを表わすと考える。一方、クラスはこのインスタンスがどのような性質を持つか、会員番号は何桁分必要で、そのほかにどのような情報を持つか、さらにその会員についてのさまざまな操作―たとえば、その会員のWeb上でのログイン/ログオフや、認証にかかわるさまざまな操作を定義するものである。このとき、このオブジェクトは「会員」を抽象化していることになる。
オブジェクトは記憶装置上に自らのインスタンスを作るための手続きを備えており、この手続きが何らかの形で(通常は他のインスタンスによって)呼び出されることで、インスタンスとなる。オブジェクト指向プログラミングでは、プログラムもオブジェクトであり、プログラムの実行を抽象化するオブジェクトがインスタンス化することを契機として、さまざまなオブジェクトがインスタンス化され、これによってプログラムが作動する。