Object中的equals类

本文深入探讨了Java中对象比较的方法,包括使用==操作符对比引用地址及通过equals方法比较对象内容。介绍了Objects类中的equals静态方法,并展示了如何在自定义类中正确重写equals方法以实现更精确的对象内容比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
    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("-------------------------");
        t1 = null;
        t2 = null;
        //System.out.println(t1.equals(t2)); // java.lang.NullPointerException
        System.out.println(Objects.equals(t1, t2)); //true
    }
}

/*
    如果使用==比较引用类型,比较的是地址值。
    如果想要比较对象的内容,可以使用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);
        //使用==进行比较
        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(new Dog()));
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值