一.object类
一.object类
1.Object类是所有类的终极父类。 任何一个类都继承了Object类
2.Object类常用的方法:
toString()返回该对象的字符串表示。 返回一个字符串用于描述该对象的
equals()用于比较两个对象的内存地址,判断两个对象是否为同一个对象
hashCode() 返回该对象的哈希码值(大家可以把哈希码就 理解成是对象的内存地址)
3.java中的规范:一般我们重写了一个类的equals方法,我们都会重写它的hashCode方法。
class Person{
int id;
String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
public Person() {
}
//目前我需要直接输出一个对象的时候,输出 的格式是: 编号:110 姓名: 狗娃 这种格式。 目前Object的
// toString方法无法满足子类的需求,那么这时候我们就应该对Object类的toString进行重写。
@Override
public String toString() {
return "编号:"+ this.id + " 姓名:"+this.name;
}
//为什么要重写:Object的equals方法默认比较的是两个对象的内存地址,我目前需要比较的是两个对象的身份证,所以Object类的equals方法不符合我现在的需求。
@Override
public boolean equals(Object obj) {
Person p = (Person)obj;
return this.id== p.id;
}
@Override
public int hashCode() {
return this.id;
}
}
public class Demo1 {
public static void main(String[] args) {
Person p1 = new Person(110,"狗娃");
Person p2 = new Person(110,"陈富贵");
//需求:在现实生活中只要两个人的身份证一致,那么就是同一个人。
System.out.println("p1与p2是同一个对象吗?"+ p1.equals(p2));
System.out.println("p1哈希码:"+ p1.hashCode());
System.out.println("p2哈希码:"+ p2.hashCode());
}
}



