方法重写equals

这篇博客探讨了Java中对象的equals方法和==运算符的区别。equals默认行为是基于内存地址比较,而==则直接比较基本类型值或对象引用。当需要根据对象属性进行比较时,需要重写equals方法,如示例所示,确保根据实际业务逻辑进行对象内容的比对。此外,还强调了在比较自定义对象时,正确重写equals和hashCode方法的重要性。
摘要由CSDN通过智能技术生成

Objec的equals方法  定义为:x.equals(y),当x和y是同一个对象时返回true,否则返回false.

==比较的是简单数据类型,直接比较值。如1==2

如果使用Object中的equals方法,底层其实仍然在使用==比较,比较对象的时候,其实比较的是两个对象的内存的地址

equals直接使用时

 

equals重写

    public boolean equals(Object obj){
        //自己与自己比较
        if(this == obj){
            return true;
        }
      //判断obj是否属于Student
        if(obj instanceof Student){ 
            Student stu = (Student)obj;
                       if(this.getName().equals(stu.getName())&&this.getId()==stu.getId()&&this.getScore()==stu.getScore()){
                return true;
            }
        }else{
            
        }    
        return false;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值