Object

java 类默认继承于Object,用一句话形容就是:“啥都是东西”。Java类继承了Object的所有属性和方法,如: toString(), hashCode(), equals()

  1. toString() 方法
    ■ 经常由系统默认调用,是当前对象的文本描述
    ■ Object默认返回值: 全限定名@hashCode
    ■ 建议覆盖为: 当前对象的文本描述

  2. equals()方法
    用来比较两个对象是否相等的方法
    比较对象分为两种:“引用相等”和“对象相等”
    ■ 比较引用值是否相等: “==”
    ■ 比较对象的内容是否相等:xxx.equals()方法
    equals在Object类中声明,默认的比较规则是:比较引用
    建议覆盖,实现对象的比较(比较对象的状态,就是比较对象的数据)

覆盖规则:
■ 自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true
■ 对称性:对于任何非空引用值 x 和 y, 当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才
应返回 true
■ 传递性:对于任何非空引用值 x、y 和 z,如果x.equals(y) 返回 true,并且y.equals(z) 返回true,那么x.equals(z) 应返回 true
■ 一致性:对于任何非空引用值 x 和 y,多次调用x.equals(y) 始终返回 true 始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
■ 对于任何非空引用值 x,x.equals(null) 都应返回false

  1. hashCode() 方法
    hashCode()方法要同equals方法一同覆盖(Sun公司规定)
    当两个对象equals比较为true时,应具有相同的hashCode()值
    当两个对象equals比较为false时,应具有不相同的hashCode()值
    hashCode() 值要稳定(一致性),一个对象创建以后就不应该再变化
    默认的hashCode()值是当前堆对象地址转换的一个整数,这个整数不是内存地址;
    一般使用对象的OID值作为hashCode的值
    OID是对象的唯一编号,在项目中一般采用数据库生成OID,也就是数据库中的“主键”;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值