インスタンス
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事の正確性に疑問が呈されています。問題箇所に信頼できる情報源を示して、記事の改善にご協力ください。議論はノートを参照してください。(2011年6月)
疑問点:オブジェクト指向以外の計算機科学におけるインスタンスの説明及び関連性について触れられていません

計算機科学でのインスタンス(instance)とは実体のことをいう。instanceは英語で「実例」を意味する。
オブジェクト指向におけるインスタンス

オブジェクト指向言語においては、多くの場合クラスと呼ばれるものを元に作成したオブジェクトの実体を指す。データモデルやオブジェクト指向設計においても用いられる用語である。インスタンスを生成するプロセスをインスタンス化 (instantiation、動詞形instantiate)という。
概要

オブジェクト指向において、クラスあるいは型はオブジェクトの分類(分類概念)や集合に相当している。 あるクラス C のインスタンスとは、C という分類に属する(分類される)オブジェクトのことである。Smalltalkの影響が強い言語では、クラス自体もまたオブジェクトとして扱うことができる(これをクラス・オブジェクトと言う)。そのような場合は特に、「クラスC のオブジェクト」といった言い方では、「クラスC に属するオブジェクト」の意味か「クラスC そのものを表すオブジェクト」の意味か曖昧になる。この場合、「クラスC のインスタンス」という言い方が利用できる。クラス・オブジェクトと対比して、「インスタンス・オブジェクト」という言葉も使われている。

オブジェクト指向におけるインスタンスという言葉は、元々Sketchpadという言語のMasterからInstanceを生成するという仕組みinstance drawingsが由来となっている用語である。[1]そしてC++と並びオブジェクト指向の概念を築づいたSmalltalkが、このMasterとInstanceの関係をクラスから生成されたオブジェクトになぞらえ、クラスから生成されたオブジェクト(インスタンス・オブジェクト)の意味で使い始めインスタンス・オブジェクトを表す言葉として定着させた。[2]

静的型付けのオブジェクト指向言語では珍しいが、動的型付けのオブジェクト指向言語の多くは、メタクラスをサポートし、クラス自体もオブジェクトとして扱うことができる(クラス・オブジェクト)。クラス・オブジェクトは、端的に言えば変数に束縛できるクラスである。クラス・オブジェクト、インスタンス・オブジェクト双方を変数に束縛した際どちらもオブジェクトとして振る舞い見かけ上区別はつかない。例えばクラス・オブジェクト、インスタンス・オブジェクト双方が readFrom: というメソッドを持っていた場合、どちらも #readFrom: メッセージを送ってやるとエラーも起こさずそれぞれのメソッドを実行する。

Objective-CPythonにおいてはクラス・オブジェクトとインスタンス・オブジェクトの明確な区別が行われている。[3][4]

メタクラスがサポートされているシステムでは、クラス・オブジェクトもまた別のクラス(メタクラス)のインスタンスであるということがありうる。この場合「クラス・オブジェクトはインスタンスではない」とは言えないので、注意されたい。



脚注[脚注の使い方]^http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html
^http://stephane.ducasse.free.fr/FreeBooks/BlueBook/
^ Objective-C Runtime Reference[1]
^ Classes ― Python v2.7.3 documentation[2]

関連項目

オブジェクト指向プログラミング

オブジェクト (プログラミング)

クラス (コンピュータ)

オブジェクトライフタイム (ライフサイクル)

外部リンク

『インスタンス
』 - コトバンク
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:12 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef