Object 类中的 equals方法

转自https://www.cnblogs.com/td15980891505/p/6194094.html

1 相等与同一

如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等。如果两个引用对象指的是同一个对像,则称这两个变量同一。Object类中定义的equals 函数原型为:public boolean equals(Object);他是判断两个对象是否同一,并不是是否相等。

2 equals方法

由于Object 类是所有类的最高基类,所有其他类都继承类Object类的equals()方法,定义原型如下:

?
1
2
3
public boolean equals (Object x){
     return this == x;
}

 在java中 “==” 是判断两个对象是否同一,而不是判断相等。因此Object类中的equals方法也是判断两个对象是否同一。要判断两个对象是否相等,就需要重写equals()方法。

3 equals()方法的重写:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Person{
     public String name;
     public int age;
     
     public Person(String name, int age){
         this .name = name;
         this .age = age;
     }
     
     @Override
     public boolean equals(Object x){
         if ( this .getClass() != x.getClass())
             return false ;
         Person p = (Person)x;
         return ( this .name == p.name) &&
                 ( this .age == p.age);
     }
     
}
 
public class Test{
     public static void main(String [] args){
         Person p1 = new Person( "Lily" , 23 );
         Person p2 = new Person( "Lily" , 23 );
         System.out.println(p1.equals(p2));
     }
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值