栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

18-Object类 -tostring equals 方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

18-Object类 -tostring equals 方法

1.Object类的tostring方法

 2.Object类的equals方法

Person默认继承了Object类,所有可以使用object类的equals方法
boolean equals (Object obj);  Object中的成员方方法
指示其他某个对象是否与此对象相等

Object类中equals方法的源码
public boolean equals(Object obj){
return (this==obj);  == 本来就是一个比较运算符返回的就是一个boolean值 true or false
}
参数:Object obj;可以传递任意的对象
方法体: == 本来就是一个比较运算符返回的就是一个boolean值 true or false
       基本数据类型:比较的是值
       引用数据类型:比较的是两个对象的地址值
       this:哪个对象调用的方法,方法中的this就是哪个对象 这里是person调用的equals方法,所以this就是person
       boolean equals (Object obj);  中的obj是:传递过来的参数person1
       this == obj  比较的是 person == person1 又因为引用数据类型比较的是地址值所以地址值不相等

3.重写equals方法

用Objects类中的equals方法比较地址值也是没有意义的,因为new两个对地址值肯定不一样,所以重写equals方法用来比较对象的属性值(name 和 age)一样true  不一样 false

用Objects类中的equals方法比较地址值也是没有意义的,因为new两个对地址值肯定不一样,所以重写equals方法
用来比较对象的属性值(name 和 age)
问题:隐含着一个多态
Object obj = person1 = new Person("古力娜扎",20);    
Object(父) obj=new Person(子)("古力娜扎",20);这个相当于是多态
多态弊端:无法使用子类特有的内容(属性方法)  //成员变量 编译看左运行看左  成员方法 编译看左运行看右
解决 可以使用[向下转型]  把Object-->person类型

Person类

 psvm

加instanceof判断

优化1 ; 输入 随机数或者null 

优化2 null

 优化3.  person.equals(person) 自己跟自己比较

直接快捷键重写equals 

4.细说Objects类 

Objects类是一个工具类,提供了一些方法来操作对象,注意:他是由一些静态的实用方法组成,这些方法是空指针安全或容忍空指针的方法,用于计算对象的hashcode,返回对象的字符串表示形式,比较两个对象。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285571.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号