But this class description thing isn't really THE class (even though its called Class).
If you define this:
\nclass Foo\n{\n public static void f() { System.out.println("Foo.f() - I think"); }\n}\n\nclass Bar extends Foo {}\n
It is not possible to determine from within f() the difference between Foo.f() and Bar.f(). IOW, you can't tell whether the message f() was sent to the class Foo or the class Bar.
That's because there is no "this" pointer that points to the "receiver" of the invocation BECAUSE there is no object that represents the class Foo (or Bar, for that matter).
So classes aren't objects in Java much like they're not objects in C++. They are figments of the compiler's (and Gosling's) imagination.
Just one more annoying (and pointless) inconsistency and complication in the language. Right up there with the idiocy of primitives.
I'd switch to [link|http://croquet.doit.wisc.edu/wiki/tiki-index.php?page=TeaTime|Tea] myself.