判断比较两个对象是否是一个对象(equals方法)

本文详细阐述了Java中equals方法的五个基本原则,包括自反性、对称性、传递性、一致性及不等性,确保正确实现equals方法以提高对象比较的准确性。

1.对于任何引用类型, o.equals(o) == true成立.
2.如果 o.equals(o1) == true 成立,那么o1.equals(o)==true也一定要成立.
3.如果 o.equals(o1) == true 成立且  o.equals(o2) == true 成立,那么
  o1.equals(o2) == true 也成立.
4.如果第一次调用o.equals(o1) == true成立再o和o1没有改变的情况下以后的任何次调用
都成立.
5.o.equals(null) == true 任何时间都不成立.

使用方法:

if(对象1.equals(对象2))

{

     成立

}

在Java中,使用自定义`equals`方法判断两个对象是否相等,通常需要遵循以下几个步骤: 1. **检查引用是否相同**:首先检查两个对象是否指向同一个内存地址,如果是,则它们相等。 2. **检查对象是否为`null`**:如果传入的对象为`null`,则它们不相等。 3. **检查对象类型是否相同**:确保两个对象是同一类的实例。 4. **比较对象的属性**:比较两个对象的关键属性是否相等。 以下是一个自定义`equals`方法的示例代码: ```java class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public boolean equals(Object obj) { // 检查引用是否相同 if (this == obj) { return true; } // 检查对象是否为 null if (obj == null) { return false; } // 检查对象类型是否相同 if (getClass() != obj.getClass()) { return false; } // 转换为 Person 类型 Person other = (Person) obj; // 比较对象的属性 return age == other.age && (name == null ? other.name == null : name.equals(other.name)); } } public class Main { public static void main(String[] args) { Person person1 = new Person("Alice", 25); Person person2 = new Person("Alice", 25); Person person3 = new Person("Bob", 30); System.out.println(person1.equals(person2)); // 输出: true System.out.println(person1.equals(person3)); // 输出: false } } ``` 在上述代码中,`Person`类重写了`equals`方法,用于比较两个`Person`对象是否相等。在`equals`方法中,首先检查引用是否相同,然后检查对象是否为`null`,接着检查对象类型是否相同,最后比较两个对象的`name`和`age`属性是否相等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值