java中的equals方法

时间:1134次浏览2020.05.25提问

java中的equals方法

已解决问题

hao231知道平台可亲可爱的初中生网友在1134次浏览2020.05.25提问提了关于IT技术编程Java相关的问题,他的提问怎么让java中的equals方法IT技术编程Java希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,千言万语,表达不了我的感激之情,我已铭记在心 !

第1个回答

程序员小小2020.05.26回答很多时候需要根据这个类的作用进行重写equals方法,比如在一个学生信息类的时候,通常的变量是这几个,ID、name、专业,成绩,怎么确定是同一个人呢,这就需要使用到equals方法,使用字符串的对比方法。当然这个对比已经在String类中实现了,只要自己使用就可以了。现在就重写equals方法,利用Uesr类创造两个对象,一个是灰灰,一个是大灰灰,但是其ID是一样的,具体代码如下publicclassTestEquals{publicstaticvoidmain(String[]args){Objectobj;Stringstr;Uesru=newUesr(1000,"灰灰","201704500238");Uesru1=newUesr(1000,"大灰灰","201704500238");System.out.println(u==u1);//falseSystem.out.println(u.equals(u1));//true}}classUesr{intid;Stringname;Stringpwd;publicUesr(intid,Stringname,Stringpwd){this.id=id;this.name=name;this.pwd=pwd;}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;Uesrother=(Uesr)obj;if(id!=other.id)returnfalse;returntrue;}}结果已经显而易见了System.out.println(u==u1);//falseSystem.out.println(u.equals(u1));//true使用==符号直接对比,这个就是对比是不是一个对象,u和u1肯定不是一个对象,publicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;Uesrother=(Uesr)obj;if(id!=other.id)returnfalse;returntrue;}重写equals方法之后,这就是对比u和U1中的ID是不是相同了,显而易见肯定是true,灰灰,大灰灰都是201704500238。但是如果对比的是name就不同了。