They're quite different. "this," called from an instance method of "abc," refers to the actual "abc" object. You can call abc methods on "this", for example. "abc.class" is the same as Class.forName("abc"), and it refers to the java.lang.Class object which describes the abc class. You can call Class methods on abc.class. Make sense?