java中equals的用法
时间: 2023-06-19 07:05:41 浏览: 87
在Java中,equals()是一个用于比较两个对象是否相等的方法,其返回值为boolean类型。默认情况下,equals()使用的是对象的内存地址进行比较,即判断两个对象是否指向同一个内存地址。
如果我们需要对自定义对象进行比较,则需要重写equals()方法,并根据我们自己的需求来确定两个对象是否相等。一般情况下,我们需要比较对象的内容是否相等,因此我们需要在equals()方法中覆盖默认的实现,实现自定义的比较方式。
下面是一个示例:
```java
public 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 (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (this.getClass() != obj.getClass()) {
return false;
}
Person other = (Person) obj;
return this.name.equals(other.name) && this.age == other.age;
}
}
```
在上面的例子中,我们重写了equals()方法,使其比较两个Person对象的name和age属性是否相等。在比较过程中,我们首先判断两个对象是否为同一对象或者是否为同一种类型的对象,然后再比较属性是否相等。
当我们需要比较两个对象是否相等时,可以使用equals()方法来进行比较。例如:
```java
Person p1 = new Person("Tom", 18);
Person p2 = new Person("Tom", 18);
if (p1.equals(p2)) {
System.out.println("p1和p2相等");
} else {
System.out.println("p1和p2不相等");
}
```
上述代码中,p1和p2虽然是两个不同的Person对象,但是它们的name和age属性相等,因此调用equals()方法后返回true,输出结果为“p1和p2相等”。
阅读全文