equals要求:
1. 对称性:如果x.equals(y)返回是"true",那么y.equals(x)也应该返回是"true"。
2. 反射性:x.equals(x)必须返回是"true"。
3. 类推性:如果x.equals(y)返回是"true",而且y.equals(z)返回是"true",那么z.equals(x)也应该返回是"true"。
4. 一致性:如果x.equals(y)返回是"true",只要x和y内容一直不变,不管你重复x.equals(y)多少次,返回都是"true"。
5. 非空性:x.equals(null),永远返回是"false";x.equals(和x不同类型的对象)永远返回是"false"。
1 /**
2 * @desc 覆盖equals方法
3 */
4 @Override
5 public boolean equals(Object obj){
6 if(obj == null){
7 return false;
8 }
9
10 //如果是同一个对象返回true,反之返回false
11 if(this == obj){
12 return true;
13 }
14
15 //判断是否类型相同
16 if(this.getClass() != obj.getClass()){
17 return false;
18 }
19
20 Person person = (Person)obj;
21 return name.equals(person.name) && age==person.age;
22 }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 »
java基礎