equals和notequals
时间: 2024-04-24 22:25:43 浏览: 250
equals和notequals是Java中用于比较两个对象是否相等的方法。
equals方法是在Object类中定义的,所有的Java类都继承自Object类,因此它是所有对象都具有的方法。默认情况下,equals方法比较的是两个对象的引用是否相等,即它们是否指向同一个内存地址。如果我们想要比较对象的内容是否相等,就需要在自定义类中重写equals方法,并根据自己的需求定义相等的条件。
例如,我们有一个Person类,其中包含name和age两个属性。如果我们希望当两个Person对象的name和age都相同时认为它们相等,就需要重写equals方法:
```java
public class Person {
private String name;
private int age;
// 省略构造方法和其他方法
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Person person = (Person) obj;
return age == person.age && Objects.equals(name, person.name);
}
}
```
notequals方法并不是Java中内置的方法,但是我们可以通过使用"!"运算符来实现。例如,使用"!"运算符可以将equals方法的结果取反,得到两个对象是否不相等的判断。
```java
Person person1 = new Person("Alice", 25);
Person person2 = new Person("Bob", 30);
if (!person1.equals(person2)) {
System.out.println("person1和person2不相等");
}
```
这样,当person1和person2不相等时,就会输出"person1和person2不相等"。
阅读全文