ノート:インスタンス

ページのコンテンツが他言語でサポートされていません。

なんでObjectを日本語に翻訳するとインスタンスになるんだろ? 61.21.42.211 2005年10月17日 (月) 07:31 (UTC)[返信]

もちろんobjectを翻訳してもインスタンスにはなりません。英語版でinstanceがobjectにリダイレクトされているので、一見珍妙な結果になっているんです。日本語版でもこの項目って、オブジェクトの項目に統合した方がわかりやすいんじゃないかな。--NekoJaNekoJa 2006年3月7日 (火) 12:25 (UTC)[返信]
いま[[1]]を見ましたが、instanceはinstantiationへリダイレクトされていますね。「インスタンス化」あるいは「インスタンシエーション」という言葉を作るべきという話がでてくるかもしれませんが、そういう言葉は聞いたことがないですね。よって、今のところ、意訳に近いこのままの単語名でもよいかと思われます。 hsz 2007年1月14日 (日) 17:08 (UTC)[返信]
インスタンス化は、日本語としても使いますよ。日本語は、インスタンスの記事が先にあるのだから、インスタンス化からインスタンスにリダイレクトするか、簡単な記事を書けば良いでしょう。その辺りのところを英語版に合わせる必要はないと思います。Cocomo 2007年1月17日 (水) 21:00 (UTC)[返信]

fryed-peachさんの言っていることはもっともですが、どうしてそれが改名につながるのでしょうか? インスタンスの方が意味が明確です。曖昧さ回避のために変更が必要だとしたら、「オブジェクト」の方でしょう。オブジェクトという語は、クラスの意味と、インスタンスの意味があり、2重の意味で使われているからです。たしかに、「オブジェクト」の方の記述の仕方は良くないと思います。 いずれにせよ、「改名」ではなく、「統合」と言うべきです。このまま、知らない人が見ると、オブジェクト=インスタンスだと誤解すると思います。また、インスタンスをオブジェクトに統合すると、上に書いたような側面がかえって見えなくなるので、統合にも反対です。 ノートでの議論の流れからして、少なくとも(統合ではなく)「改名」を支持する理由があるとは思えないので、いったん改名の提案を削除します議論はノートで行いましょう。Cocomo 2007年1月17日 (水) 21:00 (UTC)[返信]

オブジェクトの修正ありがとうございます。改名すべきだと思う理由の説明不足でした。申し訳ありません。まず、オブジェクトからの曖昧さ回避先としてオブジェクト指向におけるオブジェクトの独立記事が必要だと思います。その記事を書くにあたって、オブジェクト指向言語でオブジェクトを扱う構文の説明がいくらかいると思います。そこで現在のインスタンスの記事を移動して加筆し、オブジェクトの記事に仕立てようかと考えていました。クラスオブジェクトとインスタンスオブジェクトについてはそこで扱えばよいかなと。インスタンス化の記事に書き換える選択もありますが、現状から判断すればオブジェクトの記事への書き換えが容易かと思います。あと、区別が必要ならあえて統合し、1つの記事の中で説明するという方法もあります。辞書と違って、単語単位で記事が立つわけではありません。
「改名」か「統合」かという区別は議論の進展によります。重要なのはノートへの誘導ですので、単にテンプレを剥がすのはやめてください。--fryed-peach 2007年1月17日 (水) 22:06 (UTC)[返信]
「単にテンプレを剥がす…」というのはおっしゃるとおりですが、やはりあのテンプレはfryed-peachさんの意図に反する誤解を招くと思います。Wikipediaはその項目に詳しくない人が見ているということを念頭に置くべきだと思います。昨晩、オブジェクト(プログラミング)という項目を作ったので、そちらとの統合の提案としたらどうでしょうか?細かい話ですが、個人的には、クラスやインスタンスの説明に、ソースコードを用いるのは反対です。現在のこの項目も、すでに「インスタンス」の概念を分かっている人が見ればふむふむと良く分かるが、そうじゃない人が見ると分からない説明になっていると思います。それでは「説明」として意味をなさないでしょう。ソースコードを用いず、他の実例を出して説明した上で、補足程度にソースコードがあれば良いと思います。Cocomo 2007年1月18日 (木) 08:39 (UTC)[返信]

インデント戻します。項目に詳しくないものへの配慮が必要という点についてはもちろん同意します。しかし、どのテンプレがふさわしいかという議論は不毛です。テンプレだけで言いたいことを伝えるのは無理がある以上、一時的に誤解を招くのは仕方がありません。ノートに誘導し、場合によっては議論に参加してもらって、初めて意図が伝わるものです。
ソースコードによる説明の是非についてですが、初心者にわかるような説明をした上でさらにソースコードを載せることは否定されない、という理解でよろしいですか?
オブジェクト (プログラミング)の執筆ありがとうございます。最初の記事名から移動されているようです。理由はWikipedia:記事名の付け方にあるとおりです。言語間リンクは修正しておきます。--fryed-peach 2007年1月19日 (金) 03:24 (UTC)[返信]

いずれにせよノートを見ないと分からない(インスタンス=オブジェクトだと勘違いする)ような状態は良くないと思います。Wikipediaを見る人のほとんどは、概念そのものの定義に興味があるのではなく、何かについで流し読みするような見方をするはずで、それを前提に考えるべきだと思います。テンプレではなく、本文に、「~も参照」というような書き方をすることはできないのでしょうか?ソースコードを載せることそのもにのは反対しているわけではありません。Wikipediaは定義集ではなく百科事典なので、項目に関連する話題は載せるべきです。ただ、説明は説明です。リンゴの項目に、リンゴ栽培の手法の話が合ったも良いが、リンゴの項目の最初の部分に、リンゴ栽培の手法の話があったら、読む人が混乱するということです。Cocomo 2007年1月26日 (金) 13:45 (UTC)[返信]

改名提案[編集]

記事名をオブジェクト (オブジェクト指向)にすることを提案します。インスタンスでは曖昧さ回避ができていません。--fryed-peach 2007年1月11日 (木) 12:58 (UTC)[返信]

具体的にどのような曖昧さ回避ができていないのですか? hsz 2007年1月14日 (日) 17:00 (UTC)[返信]
インスタンスがオブジェクトの曖昧さ回避になっている点が問題です。オブジェクト=インスタンスでしょうか?クラスもオブジェクトであるような言語ではこれは成り立ちません。また、インスタンスという言葉は、クラス以外のデータ型の「インスタンス」という意味でも使われると思います。--fryed-peach 2007年1月14日 (日) 23:23 (UTC)[返信]

初学者からの質問[編集]

>これは、インスタンスメソッドInstanceMaker.setName()によってinstanceオブジェクトのインスタンスが変わったことを意味する。 このように、同じオブジェクトでもメソッドなどの動きによってオブジェクトの状態が異なる。そのときの一つ一つの状態のことをインスタンスと呼ぶ。

上に引用した本文「インスタンスの例」の文章を読んで私はびっくりしました。

以下のようなJavaコードを走らせるとき・・・

class SecretNum{
  int n;
}
class Test{
  public static void main(String[] args){
    SecretNum secret1 = new SecretNum();
    secret1.n = 123;
    secret1.n = 245;
  }
}

・・・new SecretNum();で生成され、secret1に代入されたSecretNum型のオブジェクトが、このプログラムにおける唯一のインスタンスである。・・・<- 私は、このように理解しておりました。間違っていたのでしょうか?

「同じオブジェクトでもメソッドなどの動きによってオブジェクトの状態が異なる。そのときの一つ一つの状態のことをインスタンスと呼ぶ。」を真とするならば、上のプログラムでは、3つのインスタンス(nが0のインスタンス、nが123のインスタンス、nが245のインスタンス)が作られたことになると思います。インスタンスのフィールドの値が書き換えられるごとに、そのインスタンスは再生成されたとみなすと定義している文章を、初学者用の書籍で見つけることができませんでした。もし読むべき参考書などありましたら、指摘していただけたら幸いです。 >経験の深い執筆者の方 --Kk407 2009年2月6日 (金) 17:39 (UTC)[返信]

追記:”インスタンス#インスタンスの例”を改めて再読しました。この文章は前後の記述が矛盾していると思います。
文章の前半部において「InstanceMaker instance = new InstanceMaker("名前");」によって生まれたXが「インスタンス」であると述べられています。
それなのに文章の後半部においてXをわざわざ「instanceオブジェクト」と呼び換え、「インスタンス」とは「instanceオブジェクト」の状態のことであると定義しています。
インスタンス#インスタンスの例”は、読者を混乱させる節内容で、事典の記事として適切ではないと判断します。
とりあえずコメントアウトさせていただきます。--Kk407 2009年2月7日 (土) 05:23 (UTC)[返信]

この記事を”オブジェクト (プログラミング)”へのリダイレクトとすることを提案します。[編集]

理由は、”オブジェクト (プログラミング)”の記事の方が、インスタンスについて、はるかにわかりやすく優れた文章で解説しているからです。「インタンス」とは何か知りたい読者は、すみやかに”オブジェクト (プログラミング)”に導かれた方が良いと思います。この記事”インスタンス”はウィキペディアにとっては蛇足です。2007年の夏以降ページの加筆はほぼ止まっており、これから洗練・発展する可能性は低いと思われます。個人的には、2003年時の版のように、簡単な定義のみを書いた上で、詳細な解説についてはオブジェクト (プログラミング)を読むようにリンクを貼って誘導する形式でもわかりやすくて良いと思いますが、短い記事はスタブと見なされることは必至ですので。--Kk407 2009年2月7日 (土) 04:43 (UTC)[返信]

門外漢によるやぶにらみ的インスタンス考[編集]

オブジェクト指向におけるインスタンスの訳で一番妥当と思われるのは「求めに応じて」です。「自家薬籠中の物」とも言うかな?。 オブジェクト指向の概念は「オブジェクト同士の自律的な通信により処理が実行される」でしたね。 インスタンスとは、「オブジェクト同士の自律的な通信を確保する」ための、クラスにおいて宣言される定義のこと。(相手クラスのメソッドにおけるラベル名等を指定) データベースアクセスを例にすると、キー情報毎に発行されるオブジェクトが、データベースオブジェクトを意のままに利用するため確保されている通信手段。すなわち、相手オブジェクト所有の「フィールド名持ったメソッド等」を、自分のスタンスで利用するために自分の親クラスによって記述された定義です。 インフォーメーションとインスタンスつれずれ データベースのフォーメーション(構成、構造)については、データベースクラスで定義されてデータベースオブジェクトが発行されます(普通は1回だけ)。 これはクラスのコピーですから、各フィールドを抽出するメソッド等も持っております。 さて、これを利用する側のオブジェクトっていうと、キー情報毎にたくさん発行されますから、それぞれが勝手にデータベースオブジェクトにアクセスする事になります。 でも、それぞれがフィールド名等をインスタンスとして付与されているので、データベースオブジェクトのメソッド等を勝手に(自分のスタンスで)使い、欲しいデータをゲットして処理を完結し、消滅します。 このようにインスタンスはオブジェクト指向の思想を実現する重要な定義であり、クラス同士の約束事ですから、必ずクラスで宣言しましょう、間違ってもメソッドなどで宣言してはなりません。 私は開発技術者ではないので、素人の勝手な思い込みが随所に点在しておりますが参考になれば幸いです。


 ps ----

ウイキの「インスタンス」の項目を一部壊しました。ワザも知識も未熟で回復できませんでした。ゴメンナサイ。     2009年2月16日18:45 techGG 私が壊した部分を修復していただき、ありがとうございました。2009年2月27日19:57 techGG