Java Object类

Java Object,在Java中,即使没有声明父类,也有一个隐含的父类,这个父类叫Object。Object没有定义属性,但定义了一些方法,如图所示。
Java Object

toString()方法的目的是返回一个对象的文本描述,这个方法可以直接被所有类使用。

比如,对于我们前面介绍的Point类,可以这样使用toString方法:

Point p = new Point(2,3);
System.out.println(p.toString());

输出结果如下:
Java Object

这是什么意思呢?@之前是类名,@之后的内容是什么呢?我们来看下toString()方法的代码:

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

getClass().getName() 返回当前对象的类名,hashCode()返回一个对象的哈希值,这个整数默认情况下,通常是对象的内存地址值,Integer.toHexString(hashCode())返回这个哈希值的十六进制表示。

为什么要这么写呢?写类名是可以理解的,表示对象的类型,而写哈希值则是不得已的,因为Object类并不知道具体对象的属性,不知道怎么用文本描述,但又需要区分不同对象,只能是写一个哈希值。

但子类是知道自己的属性的,子类可以重写父类的方法,以反映自己的不同实现。所谓重写,就是定义和父类一样的方法,并重新实现。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!