首页 > 其他 > 详细

object中类的equals方法的覆写

时间:2021-01-17 11:43:21      阅读:21      评论:0      收藏:0      [点我收藏+]

看两段代码:

代码1:

 1 class person
 2 {
 3     private String name;
 4     private int age;
 5     
 6     public person (String name , int age)
 7     {
 8         this.name = name;
 9         this.age = age;
10     }
11     
12     public person(String name)
13     {
14         this.name = name;
15     }
16 }
17 
18 public class EqualsMethod
19 {
20     public static void main(String args[])
21     {
22         person A =new person("李旺");
23         person B =new person("李旺");
24         System.out.println(A.equals(B)?"同一个人":"不是同一个人");
25     }
26 }

代码2:

 1 public class OverwriteEquals
 2 {
 3     public static void main(String args[])
 4     {
 5         person A = new person("李旺",25);
 6         person B = new person("李旺",25);
 7         System.out.println(A.equals(B)?"同一个人":"不是同一个人");
 8     }
 9 }
10 
11 class person
12 {
13     private String name;
14     private int age;
15     
16     public person(String name , int age)
17     {
18         this.name = name;
19         this.age = age;
20     }
21     
22     public boolean equals(Object o)
23     {
24         boolean temp = true;
25         person p1 = this;
26         
27         if(o instanceof person)
28         {
29             person p2 = (person)o;
30             if(!(p2.name.equals(p1.name)&&p2.age==p1.age))
31             {
32                 temp = false;
33             }
34         }
35         else
36         {
37             temp = false;
38         }
39         
40         return temp;
41     }
42 }

输出:

代码1:

技术分享图片

代码2:

技术分享图片

代码2中的person类是Object的子类(class person就相当于class person extends Object),在代码2中person类对Object类中内置的equals方法进行了覆写。

覆写的目的就是去比较对象中属性的内容,如果采用内置的equals方法,比较的是两个对象实例化后的内存地址,内存地址肯定是不同的。覆写Object类中equals方法的目的就是精确比较两个对象中的属性,是一个常用手段。

这是个人学习的一点想法,表述不一定准确,欢迎批评指正。

object中类的equals方法的覆写

原文:https://www.cnblogs.com/leeAndJava-949521/p/14288344.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!