Object
Object是所有类的父类 所有的类都直接或间接的继承了Object
Object的常用方法:
Object的常用方法:
boolean equals(Object obj) 指示一些其他对象是否等于此。
int hashCode() 返回对象的哈希码值。
String toString() 返回对象的字符串表示形式。
equals 是用来比较两个对象是否想等
实现原理
String
因为所有的 类都直接或间接的 继承了Object 因此所有的类都有Object类中提供的方法。
Equals方法 的本质就是比较两个对象的地址 是否相同,而在String类中 之所以比较的是两个字符串的内容,原因就在于String类重写了Object的equals方法
在以后的类中,我们 一般都要重写 equals方法 自行定义比较规则
//重写继承自Object的 equals
@Override
public boolean equals(Object obj){
Student student = (Student)obj;
// 如果两个学生对象的姓名相同 则认为是同一个人 此时 返回true
if(this.getName().equals(student.getName()) && this.getAge() == student.getAge()){//这句使用的equals是String类的equals
return true;
}else{
return false;
}
}
}
也可以使用idea的快捷生成方式来快速重写equals
public int hashCode()返回对象的哈希码值 只要在执行Java应用程序时多次在同一个对象上调用该方法, hashCode方法必须始终返回相同的整数
如果根据equals(Object)方法两个对象相等,则在两个对象中的每个对象上调用hashCode方法必须产生相同的整数结果。
toString
重写toString
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}