- 根据比较类型来解释“==”
- 基本数据类型:比较值是否相等
- 引用数据类型:比较内存中的地址是否相同。
- 是否覆盖equals方法来解释
- 没有覆盖equals方法,比较对象的地址引用是否同一个地址。
- 覆盖了equals方法,根据具体代码确定,一般都是判断内容是否相等来判断对象是否相等。例如对象为person , 我们覆盖equals方法,规定姓名,性别,年龄相同则为对象相等。
public class Person{ private String name; private String gender; private int age; private String address; public Person() { } public Person(String name, String gender, int age,String address) { this.name = name; this.gender = gender; this.age = age; this.address=address; } @Override public boolean equals(Object obj) { //对象是否为空 if (obj == null) { return false; } //判断是否类型相同 if (this.getClass() != obj.getClass()) { return false; } //是否同一个对象 if (this == obj) { return true; } Person person = (Person) obj; return name.equals(person.name) && gender.equals(person.gender) && age== person.age; } public static void main(String[] args) { Person p1 = new Person("张三", "男", 23,"上海浦东"); Person p2 = new Person("张三", "男", 23, "上海浦西"); System.out.println(p1.equals(p2));//结果为true } }
equals 和“==“的区别
最新推荐文章于 2024-07-22 14:15:06 发布