Java中Object类的常用方法

Object类是什么?

类层次结构的根类.每个类都使用 Object 作为超类(父类)。

getClass

public final Class getClass()

以Class形式表示的当前类

返回:表示此对象运行时类的 Class 对象。

Class类中有一个方法:public String getName()

以 String 的形式返回此Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。

运行程序:

public class Dc {
    public static void main(String[] args) {
        Rmb a = new Rmb();
        Class c = a.getClass();
        System.out.println(c);
        System.out.println(c.getName());
        System.out.println(a.getClass().getName());
    }

}

运行结果:

class org.westos.Rmb

org.westos.Rmb

org.westos.Rmb


hashCode

public int hashCode()

返回该对象的哈希码值

哈希码值:一般是通过将该对象的内部地址转换成一个整数来实现的。

equals

public boolean equals(Object obj)

指示其他某个对象是否与此对象“相等”。

==对于引用变量来说是进行地址值的比较

按照正常情况:equals方法底层实际执行的两个对象在==进行比较(建议对此方法重写)

注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。


toString

public String toString()

直接输出对象名称:实际执行了Object中的toString(),输出的全类名@十六进制数据

等于:getClass().getName() + '@' + Integer.toHexString(hashCode())

建议所有子类都重写此方法。

不想让toString()直接输出的是一个地址值(对象的地址值),就需要重写Object中的toSring(),一般情况:自动生成即可    

clone

protected Object clone()

                throws CloneNotSupportedException

创建并返回此对象的一个副本(相当于复制)

Object 类的 clone 方法执行特定的复制操作。首先,如果此对象的类不能实现接口 Cloneable,则会抛CloneNotSupportedException。

注意:所有的数组都被视为实现接口 Cloneable

finalize

protected void finalize()

                 throws Throwable

这个方法在gc启动,该对象被回收的时候被调用。其实gc可以回收大部分的对象(凡是new出来的对象,gc都能搞定,一般情况下我们又不会用new以外的方式去创建对象),所以一般是不需要程序员去实现finalize的。

猜你喜欢

转载自blog.csdn.net/scbiaosdo/article/details/80064828