谁是祖宗??【Object类详解】

一、Object 是什么?

开玩笑:类的祖宗,哈哈

  • 类 Object 是类层次结构的根类。
  • 每个类都使用 Object 作为超类。
  • 所有对象(包括数组)都实现这个类的方法。

二、Object 的构造方法

  • Object()

三、Object 的方法

修饰符方法名方法描述
protectedObject clone()创建并返回此对象的一个副本
booleanequals(Object obj)指示其他某个对象是否与此对象“相等”
protectedvoid finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
Class<?>getClass()返回此 Object 的运行时类
inthashCode()返回该对象的哈希码值
voidnotify()唤醒在此对象监视器上等待的单个线程
voidnotifyAll()唤醒在此对象监视器上等待的所有线程
StringtoString()返回该对象的字符串表示
voidwait()在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待
voidwait(long timeout)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待
voidwait(long timeout, int nanos)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待

四、Object 中重要方法

1.equals(Object obj)

  • 默认Object类的equals底层使用==判断对象的地址是否相等

日常中我们判断一个人是否为同一个人,就看他的名字,身份证号,然而图中两个对象,名字一样,身份证号一样,调用equals判断,却是false

在这里插入图片描述

  • 因为每次创建对象,地址值都不一样,所以使用Object的equals每次都是false
  • 因此这样做好像没么用

那么我们一般判断一个对象是否相同,是通过判断对象属性是否相等而决定对象是否相同,所以子类基本上都要重写equals

  • 重写的话,可以使用IDEA已经重写好的equal方法
    在这里插入图片描述
  • 重写后,就判断成功了

2. toString()方法

  • 方法体

getClass().getName() + ‘@’ + Integer.toHexString(hashCode())

  • 演示
    在这里插入图片描述
  • 通过上图发现toString() 字体为灰色并且不调用toString() 也是输出地址值,IDEA 提示使用重复了,说明输出语句输出对象,默认会调用toString()
  • 因此打印地址值没意义,每个子类重写toString,打印对象内容(属性)在这里插入图片描述
  • 重写后,就可以打印属性了

最后

如果感觉有收获的话,点个赞 👍🏻 吧。
❤️❤️❤️本人菜鸟修行期,如有错误,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值