当前位置: 首页 > news >正文

[Java]PTA:(选做) jmu-Java-03面向对象基础-覆盖与equals

Person类,Company类,Employee类。

其中Employee类继承自Person类,属性为:

private Company company;
private double salary;

现在要求覆盖Employee类的equals方法,判定两个Employee对象是否相等,请见如下判断方法:

  1. 其继承自父类Person的属性值都相等,其company属性对象equals返回true,且其salary也相等。

  2. salary是double型,比较时,使用DecimalFormat df = new DecimalFormat("#.##");使salary保留两位小数,然后再进行比较。

注意:要考虑company为null的情况。

函数接口定义:

public boolean equals(Object obj)

输入样例:

此题无输入样例。main方法中已经包含多种不同的测试情况,下面的输出就是这多种测试情况的输出。

输出样例:

false
true
false
true
false
true
false

代码如下:

public boolean equals(Object obj){if(this==obj)return true;if(obj==null||getClass()!=obj.getClass())return false;if(!super.equals(obj))return false;Employee employee=(Employee) obj;if(company==null&&employee.company!=null)return false;if(company!=null&&!company.equals(employee.company))return false;DecimalFormat df=new DecimalFormat("#.#");return df.format(this.salary).equals(df.format(employee.salary));
}

学习记录:

1、getClass() 进行的是严格的类型检查,父类对象和子类对象通过 getClass() 比较时会返回 false。

因为 getClass() 方法返回的是对象的实际运行时类型(即对象在创建时的具体类型),父类和子类属于不同的类型,因此它们的 getClass() 返回值不同。与之相对的是 instanceof 关键字(如 o instanceof Employee),对于子类对象,它会返回 true(允许父类引用比较子类对象)。

2、DecimalFormat df = new DecimalFormat("#.#"); 这个写法表示创建一个 DecimalFormat 类型的格式化器对象 df ,这个格式化器的规则由模式字符串 "#.#" 定义,其中:

  • # 表示可选的数字(如果该位有有效数字则显示,否则不显示)
  • 中间的 . 表示小数点
  • 小数部分最多显示 1 位(会自动四舍五入)

当调用 df.format (数值) 时:
传入的数值(可以是 double、float、long 等数值类型)会被按照 "#.#" 的规则转换为字符串
转换过程中会自动进行四舍五入处理。这样的写法可以保证格式的统一,且可以通过字符串的比较来避免浮点数的精度问题。

http://www.dtcms.com/a/453402.html

相关文章:

  • 网站建设图片logo电子商务就是网络营销
  • 机器学习基础入门(第四篇):无监督学习与聚类方法
  • Go基础:一文掌握Go语言泛型的使用
  • iBizModel 实体逻辑(PSDELOGIC)中的界面逻辑子类(VIEWLOGIC)详解
  • pywebview:用Python+Web技术打造轻量级桌面应用!
  • python 做办公网站移动应用开发学什么
  • 数据库迁移migration
  • Channel 和 Flow 选择场景对比 (例子:不停发事件的场景)
  • 《Vuejs设计与实现》第 18 章(同构渲染)(下)
  • jsp网站开发大作业长春网站建设wang
  • 淄博网站建设网宽河北网站建设推广电话
  • Django ORM 详解
  • C语言模拟面向对象编程方法之多态
  • 温州市建设工程管理网站温州建设网站哪家好
  • 划时代的技术飞跃:OpenAI DevDay 2025 全面深度解读
  • 做网站的网页图片素材怎么找长春做网站哪家便宜
  • 计算机操作系统:操作系统的发展过程
  • 未来之窗昭和仙君 (十三) 对话框组件— 东方仙盟筑基期
  • 茶叶公司网站建设策划书制作展示型网站公司哪家好
  • 部门定制网站建设公司免费电子版个人简历模板
  • 佛山营销网站建设咨询网站统计分析平台
  • 【工具变量】上市公司气候风险数据集(2011-2023年)
  • nat outbound acl-number address-group group-index 概念及题目
  • 电商网站构建预算方案门户网站html
  • CICD工具选型指南,Jenkins vs Arbess哪一款更好用?
  • 做彩票网站怎么样济南正规网站制作怎么选择
  • C++ 模板、泛型与 auto 关键字
  • 游戏项目 多态练习 超级玛丽demo8
  • 外企 BI 工具选型:从合规到落地
  • 医疗知识普及网站开发网站建立教学