equals方法详解

/*
关于Object里面的equals方法:
public boolean equals (Object obj){
return (this==obj);
}
o1.equals(o2),o1是this,o2是obj
==两边如果是引用类型,则比较内存地址

java对象中的equals方法的设计目的:判断两个对象是否一样
*/


public class fuck2{
public static void main(String[] args){

Object o1=new Object();
Object o2=new Object();

boolean b1=o1.equals(o2);
System.out.println(b1);//false

star s1=new star(100,"haha");
star s2=new star(100,"haha");
star s3=new star(110,"haha");

System.out.println(s1.equals(s2));//true
System.out.println(s2.equals(s3));//false



}


class star{
int id;
String name;

public star(int id,String name){
this.id=id;
this.name=name;
}

//Object里的equals方法比较的是内存地址
/*在现实业务逻辑当中,不应该比较内存地址,应该比较内容
所以Object中的equals方法也要重写
根据需求重写equals方法,需求规定:如果身份证号一致,名字也一致,则代表是同一个人
*/

  public boolean equals(Object obj){
if (this==obj)   return true;

if(obj instanceof star){
//强制类型转换
star s=(star)obj;
if(s.id==id&&s.name.equals(name)){
return true;
}
}

return false;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值