equals方法的重写

本文介绍了如何在JavaDoc类中重写equals方法,以精确比较对象的属性,包括处理不同数据类型和包装类型的情况,以及在测试类中的应用。
摘要由CSDN通过智能技术生成
public class Doc {
    private String name;
    private String id;
    private int age;
    //重写equals比较两个对象的属性是否相同
    public boolean equals(Object obj)
    {
        //这两个对象是同一个对象,则属性一定相同
        if(this==obj)
        {
            return true;
        }
        //判断是否为同一个类型,如果不是同一个类型,无需比较属性一定不相同, 且instanceof 比较的是运行类型
        if(!(obj instanceof Doc))
        {
            return false;
        }
        else //是一个类型才可以比较,进入else后需要向下转型,才可以与同等级别的对象进行比较
        {
            Doc doc=(Doc) obj;
            //比较时字符串类型的equals方法比较的是内容,==对于基本类型来说比较的是值
            return this.age==doc.age && this.name.equals(doc.name) && this.id.equals(doc.id);
        }
    }
}

equals如果不重写,则默认是Object中的方法, 使用时分两种情况: 

1.使用equals的对象是字符串String类型或者是包装integer类型,则比较的是两个对象里的内容.

2.如果是其他类型的对象使用equals方法,则比较的就是是否为同一个对象.

重写后, 在测试类当中使用本重写的类 / 它的没有再次重写的子类 创建对象后,使用上面所写代码的equals方法可以实现比较两个对象的属性是否都相同.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值