equals方法的作用:
Object类中的一个方法,用与比较对象地址值,返回true或flase
重写equals方法: 当不想比较对象的地址值而想要比较对象的属性内容时,需要通过重写equals方法来实现
重写equals方法的方式:
alt + insert 选择equals() and hashCode(),IntelliJ Default,一路next,finish即可
示例代码:
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this .name = name;
this .age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
public int getAge() {
return age;
}
public void setAge( int age) {
this .age = age;
}
@Override
public boolean equals(Object o) {
//this -- s1
//o -- s2
if ( this == o) return true ;
if (o == null || getClass() != o.getClass()) return false ;
Student student = (Student) o; //student -- s2
if (age != student.age) return false ;
return name != null ? name.equals(student.name) : student.name == null ;
}
}
public class ObjectDemo {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName( "潘长江" );
s1.setAge( 60 );
Student s2 = new Student();
s2.setName( "潘长江" );
s2.setAge( 60 );
//比较两个对象的内容是否相同
System.out.println(s1.equals(s2));
}
}
|