コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
インスタンス
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''インスタンス'''([[英語]]:instance)とは、「実体」のことである。 == アプリケーション == [[ROM]]や[[HDD]]の中に格納されている[[アプリ]]([[プログラム]])が[[RAM]]に読み込まれ実行可能な状態になったものを「インスタンス」という。 現実的には、上記のように[[プログラム]]が[[RAM]]に読み込まれ、実行が開始され、ある程度の初期化を済ませた状態を指すことが多い。 この初期化処理の際に「同名のアプリが起動しているか」をチェックして終了するものを「シングルインスタンス」、チェックしないものを「マルチインスタンス」などと呼ぶ。 === Windows === [[Windows]]はマルチインスタンスが基本となっている。スタートメニューやタスクバーのアイコンをクリックすると次々と同じアプリが立ち上がる。 このため多くの[[プログラマー]]が「多重起動防止する方法」を調べるのが定番となっている。 === AndroidやiOS === [[Android]]や[[iOS]]はシングルインスタンスが基本となっている。[[スマホ]]という特性上こちらのほうが使い勝手がいいからだ。 このため多くの[[ゲーマー]]がチートするために「マルチインスタンス化する方法」を調べているようだ。 == プログラミング == [[構造体]]や[[クラス]]の定義をもとに、[[メモリ]]を確保し、初期化処理までを完了したものを「インスタンス」とをいう。 この挙動は[[Objective-C]]がわかりやすい。 Objective-Cではメモリ確保(alloc)と初期化(init)の2挙動を明示的に行うようになっている。 <syntaxhighlight lang="objective-c"> Class* instance = [[Class alloc] init]; </syntaxhighlight> Objective-C以外の多くの[[言語]]では「new」とするだけで一発で行うことができる。 このような場合でも内部的にはメモリ確保(alloc)と初期化(init)は別々に実行されている。<syntaxhighlight lang=c++> Class instance = new Class(); </syntaxhighlight> ここで注意しなければならないのは「newであっても、内部は2挙動であり、その2挙動は連続実行されるとは限らない」という点である。 たとえば[[C#]]ではその2挙動は連続実行される。一方で[[Java]]ではnewすると即座にメモリ確保だけは行われるが、初期化はそのインスタンスの「最初の利用時」に実行される。 <syntaxhighlight lang="java"> // newでメモリ確保が実行される Class instance = new Class(); // 初回は初期化(コンストラクタ)が実行されたのちHelloメソッドが実行される。 instance.Hello(); // 2回目は普通にHelloメソッドだけ実行される。 instance.Hello(); </syntaxhighlight>この挙動によりJavaでは[[ダブルチェックロッキング]]が実装できない。 == 関連項目 == * [[副作用]] * [[自己参照]] * [[関数ポインタ]] [[category: プログラミング]] [[category: コンピューター]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
本文の横幅制限を有効化/無効化