equals方法

equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符(比较内存地址)。

在开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较。如下代码演示:

/*

描述人这个类,并定义功能根据年龄判断是否是同龄人

由于要根据指定类的属性进行比较,这时只要覆盖Object中的equals方法

在方法体中根据类的属性值进行比较

*/

class Person extends Object{

int age ;

//复写父类的equals方法,实现自己的比较方式

public boolean equals(Object obj) {

//判断当前调用equals方法的对象和传递进来的对象是否是同一个

if(this == obj){

return true;

}

//判断传递进来的对象是否是Person类型

if(!(obj instanceof Person)){

return false;

}

//将obj向下转型为Perosn引用,访问其属性

Person p = (Person)obj;

return this.age == p.age;

}

}

注意:在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前必须进行类型判断。

toString方法

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

class Person extends Object{

int age ;

//根据Person类的属性重写toString方法

public String toString() {

return "Person [age=" + age + "]";

}

}

最新文章

  1. bzoj4314
  2. 外接Hdmi没有声音怎么设置
  3. java提高篇(七)-----关键字static
  4. Codeforces Round #369 (Div. 2) D. Directed Roads dfs求某个联通块的在环上的点的数量
  5. CSS之边框覆盖
  6. 【EF 译文系列】重试执行策略的局限性(EF 版本至少为 6)
  7. Android开发开始--环境搭建
  8. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(七)-- 结构化配置
  9. Linux使用技巧9--用dpkg管理你的软件
  10. Hadoop-Yarn-HA集群搭建(搭建篇)
  11. Kendo UI开发教程(23): 单页面应用(一)概述
  12. 错误与修复:ASP.NET无法检测IE10,IE11,导致_doPostBack未定义JavaScript错误,恒处于F5卷动条位置
  13. TypeScript开发ReactNative之fetch函数的提示问题
  14. TensorFlow LSTM 注意力机制图解
  15. Beta 冲刺(5/7)
  16. 深入理解 ES6中的 Reflect
  17. 如何判断是否为同一个App,Ionic3如何修改包名
  18. P2602 [ZJOI2010]数字计数
  19. Linux 命令行下导入导出 .sql 文件
  20. JavaScript大杂烩16 - 推荐实践

热门文章

  1. js前端加密,php后端解密(crypto-js,openssl_decrypt)
  2. Docker安装yapi
  3. 快速部署一个Kubernetes集群
  4. Golang Map实现(四) map 的赋值和扩容
  5. Asp.Net Core 3.1学习-依赖注入、服务生命周期(6)
  6. Python爬虫之记录一次下载验证码的尝试
  7. SpringBoot Mybatis-Plus 整合 dynamic-datasource-spring-boot-starter 对数据库进行读写分离
  8. 某拍sig算法揭秘---50行代码下载5000万小姐姐自拍小视频
  9. mac OS 查看开机/关机/重启记录
  10. MySQL5.7 并行复制