Object类和hashcode方法
一.Object类.
1.所有类的父类,如果一个类没有继承那个类,那么都是默认继承于Object这个类。
2.object中存在的方法:(画横线的方法代表过时了,但是能用)
3.这里能用equals的方法是因为默认继承了Object这个类
4. 运行false的原因我们需要看Object中equals实现的逻辑。
5.这两个写法是一样的,所以我们需要重写equals的方法:
6.重写的equals方法。这里重写之后equals的功能是比较字符串是否相同。(这里它就会自动重写一个比较字符串是否相同的方法)
7.在某些情况下需要重写equals的方法,在这里我们比较的就是String,所以equals需要重写。原生Object中的equals是比较地址的。简而言之比较内容就是要重写equals方法,地址则不用。
二.hashcode方法
1.native是c/c++来实现底层逻辑,返回一个地址。
2.它是继承于Object类的,代码实现:
3.从代码上看,确实是两个不同的对象,但是从博哥的业务逻辑来看,认为名字一样就是同一个人,期望这两个对象放在同一个位置,返回同一个相同的整数。意味我们就需要重写hashcode这个方法。
4.方法重写:
然后一路next就行了。(这里用户不要去重写equals)
最后就是相同的整数
5.只要是自定义类型,一定要重写:(在Generate中可以用编译器帮助构造方法)
比如hashcode和equals方法。
get和set和toString可以选择重写
原文地址:https://blog.csdn.net/wk200411/article/details/145169448
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!