object.class
和 
object.getClass()有什么区别啊
object.class返回的什么啊?object.getClass()返回的又是什么啊,求解答,如果能说详细点最好了谢谢

解决方案 »

  1.   

    object.getClass()返回一个对象的运行时类。该 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
    而返回的就是object.class这个静态的成员变量,因为getClass成员方法必须通过类的实例调用,而object.class通过类就可以调用,就是这么简单
      

  2.   

    那他们返回的类型都是Class类型的吗?
    一个是针对对象,一个是针对类的吗?
    那对象可以用.class吗?
    呵呵,问下,谢谢
      

  3.   

    注意看方法调用的差别:
    Class c1 = Object.class;(类似于静态方法)
    Class c2 = new Object().getClass();(于实例相关联,所以,会具有实例化的一些特征)一般和特殊的关系。好比一个碗和一个70年代烧制碗的区别(假设70年代烧制碗的方法有别其他年代。)。
      

  4.   

    junjunweiwei() ( 一级(初级)) 信誉:100  2007-5-28 11:48:45  得分:0
    ?  那他们返回的类型都是Class类型的吗?
    一个是针对对象,一个是针对类的吗?
    那对象可以用.class吗?
    呵呵,问下,谢谢
    都是Class类型,只是获得这个Class的方式不一样。对象也可以.class,但是编译器会给你一个“通过非静态方式引用静态成员变量或成员方法的警告”
      

  5.   

    做个程序判断一下:object.getClass()==object.class,如果是同一个类装载器则相等,意味没区别,如果不等,意味不是同一个对象(Class),即不是不同的类装载器装载了这两个对象。