【Java基础】重写equals、toString方法
1.Object类中的equals()和toString()
(1)Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同,只能用于引用数据类型
public boolean equals(Object obj) { return (this == obj); } public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
2.重写equals()
比较User类的name和age是否相等。
public class User { String name; int age; }
重写后的equals()
public boolean equals(Object object){ if (object==this){ //地址值相等则返回true return true; } if (object instanceof User){ //如果object对象是User类或User子类对象 User user = (User)object; //强转为User类 return this.age == user.age && this.name.equals(user.name); //name为引用类型,调用String类的equals()方法 } return false; }
3.重写toString()
public String toString(){ return "User [name="+name+",age="+age+"]"; }
4.IDEA中自动生成
使用快捷键Alt+Insert
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; User user = (User) o; return age == user.age && Objects.equals(name, user.name); } @Override public int hashCode() { return Objects.hash(name, age); } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; }
分类:
Java / JAVA基础
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~