通信用語の基礎知識 発見!イイお店 戻る

通常PC用 / 人気 更新 今日 カテ
電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語仕様 > オブジェクト
インスタンス
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS)
読み:インスタンス
外語:instance
品詞:名詞

オブジェクト指向の環境やプログラミング言語で、実行される際に作成されるオブジェクトの実体のこと。英語の原義では、(論拠となる)例、実例、例証のこと。

目次
概要

オブジェクト指向言語の多くは、クラスと呼ばれるオブジェクトの雛形をあらかじめ作っておく。このクラスを元に作成したオブジェクトをインスタンスという。

一度定義されたクラスからは、いくつでもインスタンスを生成することができる。

以下は、C++を例とする。

特徴
インスタンス化

C++では、クラスの実体をインスタンスといい、クラスを実体化することをインスタンス化という。

例えば HOGE というクラスがあった場合、構造体と同様にローカル変数としてクラスを実体宣言することができる。

HOGE hoge;

あるいは、クラスを動的確保して使う方法もある。

HOGE *hoge = new HOGE;

そしてプログラマーは、hoge というインスタンスについて操作をすることになる。

この二つの使用方法の最大の違いは、寿命である。

寿命

インスタンスには寿命が存在し、プログラムの実行中のどこかのタイミングで消える。

C++では明示的に削除することが可能で、また「スコープ」から外れた場合には自動的に消される。一方で、Javaのように明示的には削除できず、全てガベージコレクションに任せる仕様のものもある。

HOGE hoge;

このように、ローカル変数としてクラスを実体宣言した場合、{}の中つまりそのブロック構造の中がスコープであり、そのスコープが終了した時点で、一般の変数と同様にインスタンスの寿命が切れる。寿命が切れた時点で、クラスのデストラクターが呼び出される。if文、for文、while文などが{}でブロックになるほか、関数そのものも{}でブロックである。また、特に何もなく{}でブロックを作ることもできる。

HOGE *hoge = new HOGE;

一方、このようにクラスをnewで動的確保した場合、明示的にdeleteするまで寿命は継続する。deleteした時点でインスタンスの寿命が切れてデストラクターが呼び出されるが、deleteしない場合、プログラムが終了してもデストラクターが呼ばれることはない。

補足

プログラミング言語以外でも、インスタンスという用語が使われることがある。

Windows

16ビット版Microsoft Windowsでは、Windows 3.1までは、実行されたプログラム1個をインスタンスと呼んでいた。

16ビットWindowsの場合、ノンプリエンプティブマルチタスク環境であったため、通常のマルチタスクでいうところのプロセスのことを、呼び分ける目的でインスタンスと呼んだ。

FLASH

Macromedia FLASHの場合は、ムービー上に置いたシンボルのことをインスタンスという。

シンボルという呼称だけでは違うキーフレームに同じシンボルを配置した時に区別できなくなるため、違う呼称がある。

リンク
用語の所属
オブジェクト指向
関連する用語
オブジェクト
インスタンス変数
インスタンスハンドル
コンストラクター
クラス

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic