黑马程序员技术交流社区
标题: Object类 [打印本页]
作者: 嗬嗬嗬_000 时间: 2015-7-25 22:10
标题: Object类
Object类概述类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
每个类都直接或者间接地继承自Object
常用方法hashCode返回该对象的哈希码值。
注意:哈希值是根据哈希算法计算出来的值,这个值和地址值有关,但不是实际的地址值.可以理解为地址值.
getClass返回此 Object 的运行时类。
toString返回该对象的字符串表示。
toString方法的值等价于:
this.getClass().getName() + '@' + Integer.toHexString(this.hashCode())这个信息是没有意义的,所以建议所有子类都重写改方法
把该类的所有成员变量组成返回即可
重写最终方案:自动生成toString()即可
注意:
直接输出一个对象的名称就是调用该对象的toString()方法.
equals指示其他某个对象是否与此对象“相等”。
public boolean equals(Object obj) { return (this == obj);}默认比较的是地址值,比较地址值意义不大,所以我们阿尧重写该方法.
重写:
一般比较对象的成员是否相等
对象名 instanceof 类名
表示判断对象名是否是该类名的一个对象
总结==
- 基本类型:比较的是值是否相同
- 引用类型:比较的是地址值是否相同
equals:
- 引用类型:默认情况下,比较的是地址值
不过,我们可以根据情况自己重写该方法,一般重写都是自动生成,比较对象的成员变量值是否相同.
finalize当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。用于垃圾回收,但是什么时候回收是不确定的
clone创建并返回此对象的一个副本.
要调用该方法:
Cloneable接口:
- 此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制.如果在没有实现 Cloneable 接口的实例上调用Object的clone方法,则会导致抛出 CloneNotSupportedException 异常。
这个接口是标记接口:表示实现该接口的类就可以实现对象的复制了.
clone与=的区别= 是将两个引用指向同一个对象
clone 是复制出一个对象
作者: 菜鸟哥 时间: 2015-7-25 22:26
就是目标啊!
作者: longbao 时间: 2015-7-25 23:33
toString和equals比较常用
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |