Java语法之Object类
2023-12-17 21:55:19
Object类时Java默认提供的类,是所有类的父类,它里面有好多便利的方法供我们使用
1.equals对象比较方法
在我们看来,姓名年龄一样就应该是同一个人,但实际上运行结果却是false,看一下源码:
源码里面是在用俩个引用的值(也就是所谓的地址值)在进行比较,要想让它按我们的逻辑比较,我们就可以重写equals方法:
注意,治理必须发生向下转型,因为我们要用到Person类的成员变量,而父类无法引用子类的变量,所以要将obj强转为Person类
其实编译器可以帮我们生成equals方法
2.hashCode方法
这是根据某个标准来获取哈希值
我们来看一下源码:
源码又是native修饰的,我们无法得知其实现逻辑,但我们可以自己重写方法,让俩个名字年龄相同的人有相同的哈希值
先看一下编译器帮我们生成的重写方法,点击右键,生成,选择equals and hashCode
再进入Objects.hash方法:
这里的values就是name,age;再进入Arrays.hashCode:
a是什么呢?
是哈希值的计算标准,所以这样重写的方法,只要name age相同,哈希值就相同,如下结果:
文章来源:https://blog.csdn.net/zyh20050430/article/details/135049371
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!