JavaSE——equals方法和==有什么区别,如何自动添加equals重写方法

本文详细介绍了Java中`equals`方法和`==`运算符的区别,指出`==`比较的是基本类型变量的值或引用类型的地址,而`equals`默认行为与`==`相似,但在许多类如String中被重写用于比较对象内容。同时,展示了如何重写`equals`方法以确保比较对象的实体内容。示例代码展示了在自定义类中正确重写`equals`方法的重要性。
摘要由CSDN通过智能技术生成

equals方法和==有什么区别

区别

运算符==
1、可以使用在基本数据类型变量和引用数据类型变量中:在基本数据类型中比较的时数值,和数值的数据类型没有关系,int可以和使用double;在引用数据类型中比较的是地址值是否相同,即两个引用是否指向同一个对象实体。

equals()方法
1、是一个方法,不是运算符
2、只能适用于引用数据类型,基本数据类型玩不了
3、Object类中定义的equals和==作用相同,比较两个对象地址值是否相同
4、String、Date、File、包装类等都重写了方法,用来比较两个对象的实体内容是否相同。
5、通常情况下,我们自定义的类如果使用equals的话需要会重写,原则就是实体内容是否相同。

customer cust1 =new Customer("Tom",21);
customer cust2 =new customer( "Tom",21);
System.out.println(cust1 ==cust2);//false
String str1 = new String("atguigu");
String str2 = new string( "atguigu");
System.out.print1n(str1 == str2);//false
system.out.print1n(cust1.equals(cust2));//false Object中和==作用相同
System.out.print1n(str1.equals(str2));//true String中对方法进行了重写所以和上面的不一样

重写equal方法

手动书写

public class test {
    public static void main(String[] args){
        Animal a=new dog();
        a.age=10;
        a.name="旺财";
        Animal b=new dog();
        b.age=10;
        b.name="旺财";
        System.out.println(a.equals(b));
    }
}
class Animal{
    int age;
    String name;
    public void shout(){
        System.out.println("动物叫");
    }

    @Override
    public boolean equals(Object obj) {
        if(this==obj) return true;
        if(obj instanceof dog){
            dog a=(dog) obj;
            if(this.age==a.age && this.name.equals(a.name))
                return true;
            else return false;
        }
        return false;
    }
}
//true

IDEA自动添加

在需要添加的地方右击
在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值