Object类: (1)是所有类的根类,超类。 java中提供的类以及我们自定义的类都直接或者间接的继承自Object类。 (2)Object类中的方法 A:void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 B:Class getClass() 获取对象的字节码文件的描述类,后面再讲反射的时候还会在说这个类。 String name = s.getClass().getName(); C:int hashCode() 获取对象的哈希值。其实就是对象的内存地址值十进制表示 D:String toString() 返回对象的字符串表示。 表示格式: getClass().getName()+"@"+Integer.toHexString(hashCode()); 一般我们输出对象名的时候,其实底层调用的就是该对象的toString()方法。 这种返回没有意义,所以,我们会重写这个方法,显示类的成员变量信息。 E:boolean equals(Object obj) 用于比较两个对象的地址值是否相同。 我们获取对象后,比较它的地址值意义不大。所以也会对这个方法进行重写。 重写要完成什么功能,是根据需求定的。 (3)==和equals的用法: A:==怎么用? 可以用于比较基本数据类型,比较的就是基本数据类型的值是否相等。 可以用于比较引用数据类型,比较的是对象的地址值是否相等。 B:equals怎么用? equals只能用于比较引用数据类型的。 Object提供的equals是用于比较对象地址值是否相同。 自定义类中,如果重写了equals方法,那么就是按照你自己的需求来比较的。 |