最近何となくオブジェクト指向プログラミングの中に出てくる「クラス」−「オブジェクト」の関係がイメージできてきた感じがします。
たとえ話でよく鯛焼きと鯛焼きの型の話が出てくることは前に一度書きました。でもいまいち良く分からないと。
コンピュータの話をコンピュータで例えるのはどうかと思いますが、一応こんな理解です。
例えばWindows にはペイントというソフトがあります。HDD上では「mspaint.exe」というファイルになっています。これはあくまでもHDD上に記憶されているもので実行している状態ではありません。これをメニューから選ぶなり、ファイルをダブルクリックするなり、コマンドプロンプトから mspaint.exe で Enter を押すなりするとメモリ上に読み込まれて実行されます。
オブジェクト指向でいう「クラス」というのがこのHDD上に記憶されている状態(設計図)で、メモリ上に読み込まれた状態が「オブジェクト」の例えと考えるとしっくりいく。
実際に実行しているものとして存在している状態がオブジェクトですね。ペイントをいくつも立ち上げると、複数のウィンドウが開き、それぞれ別の絵を描くことができる(独立している)。元のmspaint.exe は同じもの。
これがプログラミングの中で言えると。何らかの性質(メソッド)を持った変数(オブジェクト)をクラス(型)からいくらでも作り出すことができて、それぞれは独立している。オブジェクトにして初めて使うことができるもの。それをこんな感じでイメージしてみました。
ここでいうのはあくまでもたとえ話なので、継承とかポリモーフィズム(だっけ?)などは全く考えていないのでそこのところよろしく。
2007年06月04日
墨田川高校鳥瞰図

t_fukuhara さんのブログを見て見てみました。何じゃこりゃと言うぐらい凄いですね。たぶん道路と画像解析から自動的に建物を割り出したのではないかと想像しているんですが、じゃあ建物の高さはどうしているのかなど、ナゾ。カーナビと連動させれば、データはいらないじゃない?と思いました。