Java equals()方法的使用

146 阅读1分钟

equals() 方法

适用范围:任何引用数据类型都可以适用

子类使用说明:

  • 自定义的类在没有重写 Object 中 equals() 方法的情况下,调用的就是object类中声明的 equals() ,比较两个对象的引用地址是否相同。(或比较两个对象是否指向了堆空间中的同一个对象实体)
  • 对于像String、File、Date和包装类等,它们都重写了 Object 类中的 equals() 方法,用于比较两个对象的实体内容是否相等。
public boolean equals(Object obj) {
    if (this == obj) {
        return true;
        if (obj instanceof User) {
            User user = (User) obj;
            //方式1:
            if (this.age == user.age && this.name.equals(user.name))
                return true;
        }else{
                return false;
            }
        
        // 方式2:    
        return this.age == user.age && this.name.equals(user, name);
}

实际开发中,针对于自定义的类,常常会判断两个对象是否equals(),而此时主要是判断两个对象的属性值是否相等 所以:我们要重写0bject类的equals()方法。

==,equals()区别

== 运算符:

  • 使用范围:基本数据类型、引用数据类型
  • 基本数据类型,判断数据值是否相等
    int i1 = 10;
    int i2 = 10;
    System.out.println(i1 == i2);  //true
    
    charc c1 = 'A';
    int i3 = 65;
    System.out.println(c1 == i3);  //true
    
    float f1 = 12.0F;
    int i4 = 12;
    System.out.println(f1 == i4);  //true
  • 引用数据类型变量:比较两个引用变量的地址值是否相等。(或比较两个引用是否指向同一个对象实体)

equals() 方法:

  • 适用范围:只能使用在引用数据类型上。
  • 具体使用:对于类来说,重写equals() 和不重写equals()的区别。