オブジェクトとインスタンス
言ってることがみんな微妙に食い違ってる!たいがいにせいよ!
と、言おうと思ったが、日常言語でも捉え方は百人百様。しょうがないか。
ググっている間に「オブジェクトとインスタンスの違い」について多くの人が惑っている事を再確認。みんな苦しんでるようだ。
「あなたたち、オブジェクトとかインスタンスとか…」
(2ch)
「オブジェクト指向の世界(10)プラトン編−イデア論とクラス/インスタンス」
「オブジェクトとインスタンスの違い」
(言語規定による解説)
「クラス、オブジェクト、インスタンスの違いを教えてください。」
(はてなクエスチョン:三者三様の解説)
「インスタンス」
「オブジェクト (プログラミング)」
(wikipedia)
「オブジェクト指向の基本,クラスとインスタンスを学ぶ」
最後のサイトの解説が一番しっくり来る(特に図2)。なお、そのサイトの4ページ目に「Javaのクラスはオブジェクト指向の参考書で言うクラス的な側面とオブジェクト的な側面を併せ持っている」とある。
オブジェクト指向の参考書ではこれをあえて触れず、全ての個体データと実行メソッドをインスタンスに預けインスタンスのみをオブジェクトとしている事が、初心者たちのオブジェクトとインスタンスの理解を混乱させている一因ではないかと思う。