- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.
Object类及其方法
演讲人:胡望平
制 作:第五组
.
一、简介Object类
Object类是类层次的根。所有类都直接地继承Object类,所以一个Object类型的变量可以引用任何对象,不论是类实例还是数组。
如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类。
Object类定义了一系列可供所有对象继承的方法。这些方法分为两类:通用工具方法和支持线程的方法。
.
通用工具方法:
public boolean equals(Object obj)
public int hashCode()
public String toString()
protected Object clone()
.....
.
1、public boolean equals(Object obj)
比较接受对象和obj引用对象的等同性,如果他们的值相同则返回true,否则返回false。equals方法与值的等同性有关。Object中equals的默认实现假定对象只等于它自己,可通过if this==obj进行测试。
equals方法的特性:
1、if x!=nullx.equals(x) then true
2、if x.equals(y) true;then y.equals(x) true.
3、if x.equals(y)y.equals(z) true;x.equals(z) true.
4、if x!=null x.equals(null) then false
5、一致性
.
为什么要重写equals方法
1、基本类型用“==”
2、引用类型与null比用“==”
3、引用类型之间的比较用equals。 Object类中的equals方法判断的其
实还是地址。因此,判断两个对象值时须要重写
.
理解与思考
x.equals(y),当x和y所引用的对象是同一类对象且内容相等时(并不一定是相同对象)返回true,否则返回false.
/home/soft01/Desktop/未命名文件夹/幻灯片129.JPG
/home/soft01/Desktop/经典案例/幻灯片129.JPG
/home/soft01/Desktop/经典案例/幻灯片129.JPG
.
例如:
@Override
public boolean equals(Object obj){
if(obj==null) return false;
else if(obj instanceof Student){
Student st=(Student)obj;
return st.id==this.id;
//return st.name.equals(name); //调string类中的equals()比较
}//类型+id 决定equals()
return false;
}//重点掌握与熟练
.
2、public int hashCode()
返回对象的散列码。每个对象都有一个用于散列表的散列码。散列码是由对象导出的一个整型值。散列码是没有规律的。如果x和y是两个不同的对象,x.hashCode()与y.hashCode()基本上不会相同。由于hashCode方法定义在Object类中,因此每个对象都有一个默认的散列码,其值为对象的存储地址。如果重新定义equals方法,就必须重新定义hashCode方法,以便用户可以将对象插入到散列表中。
功能:使相等对象拥有相同的哈希码
尽量让不等的对象具有不同的哈希码。
.
例如:
public int hashCode(){
//按照Hashcode约定,与equals()相关
int type=41; //素数可以改变
//return type*43+id;
return type*43+name.hashCode();
}
.
3、public String toString()
返回对象的字符串表示。以便用户能够获得一些有关对象状态的基本信息
简单说就是利用字符串来表示对象。
toString方法的object版本构造了一个字符串,包含该对象的类名、一个@字符和实例散列码的十六进制表示。
.
toString的调用方式
System.out.print/ln() 打印一个对象其
实就是打印这个对象 toString 方法的返回值。自动调用
“+”连接字符串时,自动调用该对象类的toString()方法:如 System.out.println(“info”+Person);
对象.toString();
.
例如:
public
您可能关注的文档
- MRI解剖—颅脑最新版本ppt课件.pptx
- MRSA感染的问题和治疗策略ppt课件.pptx
- MR常用序列成像基本原理ppt课件.pptx
- MSA培训教材ppt课件.pptx
- MTP培训教材ppt课件.pptx
- multisim仿真教程 正弦波脉宽调制(SPWM)逆变电路ppt课件.pptx
- NAT的基本原理与应用ppt课件.pptx
- NB天线的基础知识ppt课件.pptx
- NetApp FAS系列存储架构ppt课件.pptx
- NF-KB信号通路综述ppt课件.pptx
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
最近下载
- 常微分方程(第4版)王高雄教材习题详解.pdf
- GB50416-2017 煤矿井下车场及硐室设计规范.docx
- 部编版《道德与法治》一年级上册第2课《拉拉手交朋友》优秀课件.pptx
- 消费者行为学(上海外国语)中国大学MOOC慕课 客观题答案.docx
- 2024年秋季新人教道德与法治一年级上册全册课件(新版教材).pptx
- 中国老年心肺复苏急诊专家共识(2024)解读PPT课件.pptx VIP
- 幼儿园中班科学《数高楼》 课件.pptx VIP
- 洗洁精中的化学科普知识(课件)小学生拓展通用版.pptx
- SONYHDRXR260E中文操作说明书.pdf
- 新注册(备案)医疗器械耗材如何加入国家医保局目录新增编码和流水号.docx
文档评论(0)