import java.util.Objects;
public class Demo62 {
public static void main(String[] args) {
String s = "helloWorld";
String s1 = "hello";
String s2 = "World";
String s3 = s1 + s2;
Animal a = new Animal(s);
Animal b = new Animal(s);
System.out.println(a.equals(b));//默认先比较地址
// public boolean equals(Object obj) {
// return (this == obj);
// }
System.out.println(Objects.equals(a.name,b.name));//比较的是值
System.out.println(s.equals(s3));//相同的常量池之间的比较
}
public static class Animal{
String name;
public Animal(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {//重写equals
if (obj == this) {//相同的地址直接返回true
return true;
}
if (!(obj instanceof Animal)) {//不同的类直接返回false
return false;
}
Animal other = (Animal) obj//不同的地址但是相同的类则比较属性值
return Objects.equals(name, other.name);
}
}
}