クラスとjava.lang.Classとクラス型と

id:SiroKuroさんところで、クラスに関する用語についていろいろ議論があって、なんとなくこういうイメージをもった。


クラスをあらわすいろんな用語があるのだけど、それぞれは「クラス」という抽象概念があって、たとえば「Javaオブジェクト」として光をあてれば「java.lang.Class」という影ができ、「言語仕様」として光をあてれば「クラス型」という影ができる。


ここで、それぞれの用語や対応関係は便宜上のもので、実際はもっと適切な用語や対応関係があるとおもう。とりあえずここでは、抽象概念があって、そこに光をあてて影ができるというイメージをあらわしたかった。
抽象概念を直接みることはできないので、ぼくたちはなんらかの視点という「光」をあてて、そこでできた「影」をみることしかできない。