为什么要重写toString()方法,object 的hashcode()默认方法

本文详细介绍了在Java中如何重写Object类的toString()和hashCode()方法。默认的toString()方法返回对象的内存地址,而重写它能自定义输出对象属性。hashCode()方法用于比较对象的引用,但通常需要重写以比较对象的值。重写时需遵循特定规则,如equals()和hashCode()的一致性。此外,文章强调了这两个方法在对象比较和输出时的重要性。
摘要由CSDN通过智能技术生成

一、toString():

  在Object类里面定义toString()方法的时候返回的对象的hashcode码,这个hashcode码不能简单明了的表示出对象的属性所以要重写toString()方法。
当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法 (所以自定义的类要自己手动添加toString方法)

  默认情况下 System.out.println(对象名); 或者System.out.println(对象名.toString()); 输出的是此对象的类名和此对象对应内存的首地址。 如果想自定义输出信息必须重写toString()方法。

注意事项:
  1.必须被声明为public
  2.返回类型为String
  3.方法的名称必须为toString,且无参数
  4.方法体中不要使用输出方法System.out.println()

二、hashCode():

  在Object类里面定义的equals比较的是对象的引用是否指向同一块内存地址。 一般情况下比较两个对象时比较他的值是否一致,所以要进行重写。重写之后是为了比较两个对象的value值是否相等。 特别指出,利用equals比较八大包装对象(如int,float等)和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它对象都是比较的引用地址。

注意事项:
  1.自反性:对于任意的引用值x,x.equals(x)一定为true
  2.对称性:对于任意的引用值x 和 y,当x.equals(y)返回true,y.equals(x)也一定返回true
  3.传递性:对于任意的引用值x、y和z,如果x.equals(y)返回true,并且y.equals(z)也返回true,那么x.equals(z)也一定返 回 true
  4.一致性:对于任意的引用值x 和 y,如果用于equals比较的对象信息没有被修改,多次调用x.equals(y)要么一致地返回true,要么一致地返回false
  5.非空性:对于任意的非空引用值x,x.equals(null)一定返回false

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值