toString方法
概述: 返回当前对象的字符串表示,返回的当前对象的地址。
补充:该方法可以不用自己调用,直接打印对象名会默认调用该方法返回地址
-
注意:
对象返回这样一个地址值的字符串,没有什么意义,因此对于子类而言,需要重写父类的这个方法。
-
重写的原则:返回该对象中的所有成员变量的值(对象的属性)
public class Student {
private String name;
private int age;
private int id;
//重写toString
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", id=" + id +
'}';
}
}
- 使用快捷键重写该方法:alt + insert 选中toString 回车
equals方法
1、概述:public boolean equals(Object obj) 指示其他某个对象是否与此对象"相等"
判断调用者对象和参数对象是否是同一个,如果是为true,否则为false
注意:
- 实际开发中,比较两个对象的内存地址,没有什么意义,因此在自定义的子类中,都要重写这个方法。
- 重写原则:一般比较两个对象中的所有属性,是否全部相同.
public class Student {
private String name;
private int age;
private int id;
//重写equals
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age && id == student.id && Objects.equals(name, student.name);
}
}
- 快捷键:alt +insert 选中equals 一路next即可
== 和 equals方法
相同点:都是可以比较数据是否相同,结果都是布尔值
不同点:
- 比较的规则不同:
- ==如果比较的是基本数据类型,比较的数数据值是否相等
- ==如果比较的是引用类型数据,比较的是两个对象的地址的是否相等
- equals方法在子类重写之前,比较的是两个对象的地址值,子类重写之后比较的是属性值。
- 比较的内容:
- ==可以比较基本数据类型,也可以比较引用数据类型
- equals方法只能用来比较引用数据类型