Object类中需要重写的toString,equals,finalize ,hashcode等方法2021-07-25java学习日记

本文详细探讨了Java中Object类的toString,equals和hashCode方法,包括它们的默认实现、SUN公司的设计目的及何时需要重写。通过实例分析了如何正确使用和重写这些方法,以确保对象比较和字符串表示的准确性。同时,提到了finalize方法和hashCode方法的底层原理。
摘要由CSDN通过智能技术生成

关于Object里面需要重写的方法以及细节

P527-P539
关键词:toString equals finalize Object

关于Object类的toString()方法的源码

1.源码长什么样子

public String toString(){
getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
}
源码上toString方法的默认实现是:
类名@对象的内存地址转换成十六进制的形式

2 .SUN公司的这样设计的目的是什么

通过调用这个方法可以将一个 java对象转换成字符串形式

3.SUN公司开发java语言时,建议所有子类都去重写toString()方法

toString()方法应该是一个简洁的,详实的,易阅读的。
输出引用的时候,会自动调用toString()方法

关于Object类中的equals方法

1.equals方法的源代码

public boolean equals(Object obj) {
return (this == obj);
}
以上这个方法是Object类的默认实现。

2.SUN公司设计equals方法的目的是什么?

以后编程过程中,都要通过equals方法来判断两个对象是否相等,equals方法是判断两个对象是否相等的。

3.我们需要研究一下Object类给的这个默认的equals方法够不够用

在Object类中,无法判断两个两个对象是否相等,因此我们要自行重写equals方法,让他能判断对象的内容是否相等。

4.判断两个对象是否相等,不能用==

因为==比较的是两个对象的内存地址

5.java.lang下的String方法也是重写了equals和toString方法的。

会比较对象的内容,以及输出引用的使用,也是输出他的本身内容

大结论:

java中的什么数据类型可以使用“==”来判断

java中的基本类型比较是否相等,使用==

java中的什么类型数据需要使用equals判断

java中所有的引用数据类型统一使用equals方法来判断是否相等
这是规矩!

重写equals方法一定要彻底下面插个自己写的例子:
       */
public class Test {
   
    public static void main(String[] args) {
   
        User u1 = new User("zhangsan",new Address("深圳市","龙岗区","90001"));
        User u2 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值