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()的区别。