【Java】: Object类

95 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情

1、写在前面

大家好,我是翼同学。今天文章的内容是:

  • Object

2、内容

2.1、Object类的介绍

在Java中,Object类是所有类的父类。一个类要么默认继承于Object类,要么间接继承于Object类。因此任何类都可以使用Object类的所有方法。

需注意,Object类位于java.lang包中,编译时会自动导入。当我们创建一个类时,该类会默认继承自Object类。

2.2、Object类的使用

Object类有很多方法,我们可以直接调用。常用的有:

  • toString(): 默认返回当前对象在堆内存中的地址信息;
  • equals(Object o): 默认比较当前对象与另一个对象的地址是否相同,如果相同则返回true,否则返回false;
  • getClass(): 用于获取对象的运行时对象的类

toString()

由于toString方法返回的是当前对象的地址信息,即对象的类名称 + @ + hashCode 的十六进制字符串。所以一般在开发中,我们会重写toString方法,使其返回对象的内容信息,而不是地址信息。

如果我们在某个类中重写了toString()方法,则输出对象时调用的是被子类重写过的toString()方法。

equals()

equals(Object o)方法用于比较两个对象是否相等,默认比较的是当前对象与另一个对象的地址。事实上我们使用==运算符也能比较两个对象的地址是否相同,因此equals()方法存在的意义就是让子类能够重写该方法,以便自定义比较规则。

另外,一般的,如果子类重写了equals()方法,就需要重写hashCode()方法,比如String类再重写equals()方法的同时也重写了hashCode()方法。

hashCode: 哈希码,每个Java对象都有的属性,可用于标识对象,提高对象在集合操作中的执行效率。

getClass()

getClass()方法用于获取对象所属的类,也就是返回对象属于那个类。

比如:

String obj = new String();
System.out.println(obj2.getClass());    // class java.lang.String

2.3、小结

Object类是Java类库中的一个特殊类,也是所有类的父类。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是Object类。

另外,由于Object类可以接收任意的引用数据类型,所以在很多的类库设计上都采用Object作为方法的参数,这样操作起来也比较方便。

3、写在最后

好了,文章的内容就到这里,感谢观看。