/*
Objects中的equals方法。
Objects中的equals方法。
static boolean equals(Object a, Object b): 比较a和b是否相同。
如果通过Objects调用equals方法,内部会通过第一个对象调用equals和第二个对象进行比较
如果我们想要比较对象的内容,还是要在子类中重写equals
//ALT+INSERT快捷键,在子类teacher中插入重写的equals方法,重写的equals方法比较内容是否相同
*/
public class Demo04ObjectsEquals {
public static void main(String[] args) {
//创建三个对象
Teacher t1 = new Teacher("小苍老师", 35);
Teacher t2 = new Teacher("小苍老师", 35);
//使用Objects里面的equals方法进行比较
System.out.println(Objects.equals(t1, t2));
System.out.println("-------------------------");
System.out.println(Objects.equals(t1, t2));
System.out.println("-------------------------");
t1 = null;
t2 = null;
t2 = null;
//System.out.println(t1.equals(t2)); // java.lang.NullPointerException
System.out.println(Objects.equals(t1, t2)); //true
}
}
System.out.println(Objects.equals(t1, t2)); //true
}
}
/*
如果使用==比较引用类型,比较的是地址值。
如果想要比较对象的内容,可以使用equals方法(Object中)
当通过一个对象调用equals方法,会先看一下自己有没有,如果自己没有,就向上找父类一直到Object
当通过一个对象调用equals方法,会先看一下自己有没有,如果自己没有,就向上找父类一直到Object
在Object中的equals方法,默认是使用==比较的地址值。
如果想要自己定义比较的规则,可以在子类中重写equals方法,在equals方法中定义自己的规则。
*/
public class Demo03ObjectEquals {
public static void main(String[] args) {
//创建三个Person对象
Person p1 = new Person("王包强", 18);
Person p2 = new Person("贾耐亮", 20);
Person p3 = new Person("贾耐亮", 20);
public static void main(String[] args) {
//创建三个Person对象
Person p1 = new Person("王包强", 18);
Person p2 = new Person("贾耐亮", 20);
Person p3 = new Person("贾耐亮", 20);
//使用==进行比较
System.out.println(p1 == p2); //false
System.out.println(p2 == p3); //false
System.out.println("---------------------------");
System.out.println(p1 == p2); //false
System.out.println(p2 == p3); //false
System.out.println("---------------------------");
System.out.println(p1.equals(p2)); //false
System.out.println(p2.equals(p3)); //false
System.out.println(p2.equals(p3)); //false
//System.out.println(p2.equals(new Dog()));
}
}