前回の私の質問の、私なりの解釈です。
私が犬に鳴けといったら、犬がワンと鳴いた。
これをオブジェクト指向(*1)であらわすとしたら、何になるのかという質問でした。
ズバリ結論からいきましょう。
・クラス = 私の頭の中の像
・クラスのインスタンス = 私の頭の中の像
・オブジェクト = クラスのインスタンス
・開発者 = 該当無し(あえていうなら神?/世界?)
・プログラム=実行ファイル=私
・設計図 = 該当無し(誰も犬を作ったりはしていない)
"犬"に値するものはリストにないです。
私はリソースと呼んでることが多いです。
実際に現実のプログラムを見た時、私=実行ファイルとすれば、
クラスとクラスのインスタンスは私=実行ファイルの中にあるという解釈以外ありえないと思います。
犬ではわかりにくいと思うので、もっとよくある例にしてみます。
例えばファイル。
ファイルは実行ファイルの外にありますが、アクセスする時には実行ファイルの中にクラス及びクラスのインスタンスを作成します。
例えばユーザ。
ユーザは、実行ファイルどころかPCの外にいますが、操作する時には実行ファイルの中にクラス及びクラスのインスタンスを作成します。
私-犬の関係の時、私のなかに本当にクラス/クラスインスタンスができてるかも考えて見ます。
人は、自分の中で世界を再構築し、その世界を通して行動しています。
(単に目や耳をとおしてるというだけでもここでは十分かもしれませんがもう一歩)
例えば犬がワンと鳴く時、その音は口から出ていると思いますよね。
でも音だけ聞いただけだと、多分正確な位置はわからないでしょう。
視覚情報と、聴覚情報が組み合わさって、つまり脳内で再構築するおかげで
正しく口の位置から声が出ていると判断できるわけです。
まとめます。
クラス/クラスのインスタンスと、ここでいう犬(つまりリソース?)は、全く違うものであるということです。
そしてそれはつまり、クラス/クラスのインスタンスがオブジェクトであれば、
犬(つまりリソース?)は
オ ブ ジ ェ ク ト で は な い
ということです。