08-Object类
来源:互联网 发布:mac iphoto gif 编辑:程序博客网 时间:2024/06/16 01:47
5.3 Object类
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
是从所有类进行抽取而来的,具备着所有对象都具备的共性内容。
常用的共性方法
5.3.1 equals方法
- 指示其他某个对象是否与此对象“相等”。
- 返回
如果此对象与 obj 参数相同,则返回 true;否则返回 false。
对于未重写的equals方法,相当于 ==
源代码如下:
public boolean equals(Object obj) {
return (this == obj);
}
一般都会覆盖此方法,根据对象的特有内容(比如属性),建立判断对象是否相同的依据。
注意:
当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
重写equals例子:
public boolean equals(Object obj){
if(!(obj instanceof Person)) //判断obj对象是不是Person类型的 不是抛出异常,是就进行转换,并比较
{
throw new ClassCastException("不是同一类型,无法转换");
}
Person p =(Person) obj;
return this.id ==p.id; //比较两个对象的内容---id,而不是默认比较对象的地址
}
5.3.2hashCode方法
- 返回该对象的哈希码值,
- 来源jdk 6.0 api解释:
实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)
重写hashCode例子:
public int hashCode(){ //重写hashCode方法
return id;
}
5.3.3 getClass方法
表示此对象运行时类的 Class 对象。
Class对象:
类型信息在运行时如何表示(RTTI),由Class对象的特殊对象完成,Class对象包含与类有关的信息。
类作为程序中的一部分,每个类都有一个Class对象(即,每当编写且编译了一个新类,就会产生一个Class对象,这个对象被保存在一个同名的.class文件中)
5.3.4 toString方法
- 返回该对象的字符串表示形式
对于未重写的toString方法,
源代码:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
重写toString例子:
public String toString(){//重写toString方法
return "Person"+id;
}
阅读全文
0 0
- 08-Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- xlistview
- Spring Redis与ActiveMQ发布订阅模式源码分析
- Python3:《机器学习实战》之朴素贝叶斯(3)过滤垃圾邮件
- 《effective c++》学习笔记(七)
- Junit 实例精讲基础教程(一) 认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass
- 08-Object类
- LeetCode-22-Generate-Parentheses 记忆化搜索,Python类变量,set强转list
- HDU 6194 后缀自动机(2017 ICPC沈阳网络赛A题)
- 模仿豆瓣网做一个电影网站
- 2017年中级会计师考试真题(0909日)(回忆版)
- Jsp与JavaBean
- [BZOJ]1562: [NOI2009]变换序列 二分图匹配
- 实验:创建私有CA和证书颁发
- mysql联合索引