




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.1演讲人:胡望平 制 作:第五组 .2一、简介Object类 Object类是类层次的根。所有类都直接地继承Object类,所以一个Object类型的变量可以引用任何对象,不论是类实例还是数组。 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类。 Object类定义了一系列可供所有对象继承的方法。这些方法分为两类:通用工具方法和支持线程的方法。.3通用工具方法: public boolean equals(Object obj) public int hashCode() public String toString() protected Object cl
2、one() .41、public boolean equals(Object obj) 比较接受对象和obj引用对象的等同性,如果他们的值相同则返回true,否则返回false。equals方法与值的等同性有关。Object中equals的默认实现假定对象只等于它自己,可通过if this=obj进行测试。equals方法的特性:1、if x!=null&x.equals(x) then true2、if x.equals(y) true;then y.equals(x) true.3、if x.equals(y)&y.equals(z) true;x.equals(z) tr
3、ue.4、if x!=null &x.equals(null) then false5、一致性.5为什么要重写equals方法 1、基本类型用“” 2、引用类型与null比用“” 3、引用类型之间的比较用equals。 Object类中的equals方法判断的其 实还是地址。因此,判断两个对象值时须要重写.6理解与思考 x.equals(y),当当x和和y所引用的对象是同一所引用的对象是同一类对象且内容相等时(并不一定是相同对类对象且内容相等时(并不一定是相同对象)象)返回true,否则返回false./home/soft01/Desktop/未命名文件夹/幻灯片129.JPG/hom
4、e/soft01/Desktop/经典案例/幻灯片129.JPG/home/soft01/Desktop/经典案例/幻灯片129.JPG.7例如: 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 .equals(name); /调string类中的equals()比较 /类型id 决定equals() return f
5、alse; /重点掌握与熟练.82、public int hashCode() 返回对象的散列码。每个对象都有一个用于散列表的散列码。散列码是由对象导出的一个整型值。散列码是没有规律的。如果x和y是两个不同的对象,x.hashCode()与y.hashCode()基本上不会相同。由于hashCode方法定义在Object类中,因此每个对象都有一个默认的散列码,其值为对象的存储地址。如果重新定义equals方法,就必须重新定义hashCode方法,以便用户可以将对象插入到散列表中。功能:使相等对象拥有相同的哈希码 尽量让不等的对象具有不同的哈希码。.9例如: public int hashCod
6、e() /按照Hashcode约定,与equals()相关 int type=41; /素数可以改变 /return type*43+id; return type*43+name.hashCode(); .103、public String toString() 返回对象的字符串表示。以便用户能够获得一些有关对象状态的基本信息 简单说就是利用字符串来表示对象。 toString方法的object版本构造了一个字符串,包含该对象的类名、一个字符和实例散列码的十六进制表示。.11toString的调用方式 System.out.print/ln() 打印一个对象其 实就是打印这个对象 toStr
7、ing 方法的返回值。自动调用 “”连接字符串时,自动调用该对象类的toString()方法:如 System.out.println(“info”+Person); 对象.toString();.12例如: public String toString() return getClass().getName() + + Integer.toHexString(hashCode() /建议所有的类都重写toString()方法 这是Object类的toString方法。.133、protected Object clone() 返回对象的一个克隆体。克隆体就是调用clone方法的对象的一个拷贝
8、。 clone方法将返回一个新的对象,它的初始状态与调用的clone方法的对象完全相同。对新克隆对象的修改不会影响原对象的状态。即x.clone()!=x;.14编写clone方法的三个考虑 1、必须实现Cloneable接口。(注意:Cloneable接口的出现与接口的正常使用没有任何关系,在这,接口只是作为标记(没有方法),它并没有指定clone方法。) 2、通过Object 类实现的clone方法,它通过把原对象的所有域拷贝到新对象中以完成简单的克隆。(注:子类只能调用受保护的clone方法克隆它自己,为此,必须重新定义clone方法,并将它声明为public,这样才能够让所有的方法克隆
9、对象。) 3、CloneNotSupportedException异常用于告知类的clone方法不应该调用.15创建可克隆类的最简单方式是声明它实现Cloneable接口,然后再将clone方法重新声明为public,例如: public MyClass extends Class implements Cloneable public Object clone() throws CloneNotSupportedException return super.clone(); /. .16简介两种克隆 1、浅克隆:被复制对象的所有对象都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管理会计与财务会计的考题及答案
- 土地复垦合同协议书
- 财务管理考点的技巧与试题及答案
- 合同保证保险协议书
- 土地修路合同协议书
- 2025年消费与零售行业户外探险市场消费趋势及品牌策略报告
- 中级经济师考试重难点解析试题及答案
- 2025年纺织服装业智能化生产智能化生产设备市场发展动态分析报告
- 2025至2030年中国竹纤维内裤行业投资前景及策略咨询研究报告
- 2025年长方形多用层架项目可行性研究报告
- 2025中煤矿山建设集团(国独资)招聘200人高频重点提升(共500题)附带答案详解
- 旧楼加装电梯施工方案
- 2025年湖北省武汉市高考数学模拟试卷(附答案解析)
- 医药营销模式创新-洞察分析
- 非结核分枝杆菌病
- 有限空间作业专项施工组织方案
- 促进学生素养形成的“碳中和”项目式学习实践
- 2024(统编版)语文七年级上册《西游记》真题+综合题练习(学生版+解析版)
- 企业财务管理毕业论文范文
- 开发商购房合同范本标准版可打印
- 医院员工价值取向培训
评论
0/150
提交评论