写之前还是要先明确好程序编写的要求,以免过了样例但代码运行逻辑和要求不符合。

记录一个比较浮点型数据的方法

String df1 = new DecimalFormat("#.#").format(this.salary);
String df2 = new DecimalFormat("#.#").format(e.salary);
return this.company.toString().compareTo(e.company.toString()) == 0 && df1.compareTo(df2)==0;
import java.text.DecimalFormat;
import java.util.*;abstract class Person implements Comparable<Person> {String name;int age;boolean gender;Person() {}Person(String name, int age, boolean gender) {this.name = name;this.age = age;this.gender = gender;}@Overridepublic String toString() {return this.name + "-" + this.age + "-" + this.gender;}         //返回"name-age-gender"格式的字符串public boolean equals(Person o1) {if (this.name.equals(o1.name) && this.gender == o1.gender && this.age == o1.age) {return true;} else {return false;}}//比较name、age、gender,都相同返回true,否则返回false@Overridepublic int compareTo(Person o) {if (this.name.compareTo(o.name) > 0) {return 1;} else if (this.name.compareTo(o.name) < 0) {return -1;} else {return this.age - o.age;}}
}class Student extends Person {String stuNo;String clazz;Student() {super();}Student(String name, int age, boolean gender, String stuNo, String clazz) {super(name, age, gender);this.stuNo = stuNo;this.clazz = clazz;}@Overridepublic String toString() {return this.name + "-" + this.age + "-" + this.gender + "-" + this.stuNo + "-" + this.clazz;}public boolean equals(Student o2) {if (super.equals(o2) && this.stuNo.equals(o2.stuNo) && this.clazz.equals(o2.clazz)) {return true;} else {return false;}}
}class Company {String name;Company(String name) {this.name = name;}@Overridepublic String toString() {return name;}         //直接返回namepublic boolean equals(Person o1) {if (o1.name == this.name) {return true;} else {return false;}}}class Employee extends Person {Company company;double salary;//建议使用super复用Person类的相关有参构造函数Employee(String name, int age, boolean gender, double salary, Company company) {super(name, age, gender);this.company = company;this.salary = salary;}@Overridepublic String toString() {return this.name + "-" + this.age + "-" + this.gender + "-" + this.company + "-" + this.salary;}public boolean equals(Employee e) {if (super.equals(e) && this.company.name.equals(e.company.name)) {String df1 = new DecimalFormat("#.#").format(this.salary);String df2 = new DecimalFormat("#.#").format(e.salary);return this.company.toString().compareTo(e.company.toString()) == 0 && df1.compareTo(df2) == 0;} else {return false;}}}class Main {public static void main(String[] args) {List<Person> personList = new ArrayList<>();List<Student> stuList = new ArrayList<>();List<Employee> empList = new ArrayList<>();Scanner sc = new Scanner(System.in);String op;while (true) {op = sc.next();//System.out.println(op);if (op.equals("s")) {String name;int age;boolean gender;String stuNo;String clazz;name = sc.next();age = sc.nextInt();gender = sc.nextBoolean();stuNo = sc.next();clazz = sc.next();if (name.equals("null") || stuNo.equals("null")) {continue;} else {Student st = new Student(name, age, gender, stuNo, clazz);personList.add(st);}} else if (op.equals("e")) {String name;int age;boolean gender;String company;double salary;name = sc.next();age = sc.nextInt();gender = sc.nextBoolean();salary = sc.nextDouble();company = sc.next();if (name.equals("null")) {continue;} else {Company cm = new Company(company);Employee em = new Employee(name, age, gender, salary, cm);personList.add(em);}} else {Collections.sort(personList);for (Person person : personList) {if (person instanceof Student) {Student student = (Student) person;int f = 1;for (Student stu : stuList) {if (stu.equals(student)) {f = 0;break;}}if (f == 1) {stuList.add(student);}System.out.println("Student:" + student);} else if (person instanceof Employee) {Employee employee = (Employee) person;int f = 1;for (Employee emp : empList) {if (emp.equals(employee)) {f = 0;break;}}if (f == 1) {empList.add(employee);}System.out.println("Employee:" + employee);}}op = sc.next();if (op.equals("exit")) {break;} else if (op.equals("return")) {break;}System.out.println("stuList");for (Student student : stuList) {System.out.println("Student:" + student);}System.out.println("empList");for (Employee employee : empList) {System.out.println("Employee:" + employee);}}}}
}

7-6 jmu-Java-03面向对象-06-继承覆盖综合练习相关推荐

  1. 4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company**

    4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person.Student.Employee.Company 题目概况: 定义Person抽象类,Student类.Company类, ...

  2. java之面向对象:继承extends、super、覆盖override的用法

    继承的好处: 1 )提高了代码的复用性. 2 )让类与类之间产生了关系,给第三个特征多态提供 了前提. java支持单继承,不直接支持多继承,但对C++中的多继承机制进行改良. 单继承:一个子类只能有 ...

  3. java继承stu继承person_4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (20 分)中的一些问题...

    1.Employee类的equals 由于题目要求//首先调用父类的equals方法,如果返回true.再比较company与salary. //比较salary属性时,使用DecimalFormat ...

  4. 7-2 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (15分)

    定义Person抽象类,Student类.Company类,Employee类. Person类的属性:String name, int age, boolean gender Person类的方法: ...

  5. Java(10)面向对象之继承,内部类

    01 面向对象之继承 public class Inheritance02 {public class Person {/*** 昵称*/private String nickname;/*** 性别 ...

  6. 【JavaSE学习】03面向对象Java语法

    JavaSE(B站黑马)学习笔记 01Java入门 02数组.方法 03面向对象&Java语法 04-1Java高级(Stream流.异常处理.日志技术) 04-2Java高级(文件处理-IO ...

  7. java用继承编写宠物乐园_MoreThanJavaDay 5:面向对象进阶继承详解

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

  8. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  9. Java面向对象(继承、抽象类)

    面向对象 今日内容介绍 u 继承 u 抽象类 第1章 继承 1.1 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成 ...

最新文章

  1. 当postgres的主键序列不同步时,如何重置?
  2. 备考信息系统项目管理师5点必过经验
  3. Java中的查找树和哈希表(一级)
  4. struts2开发action 的三种方法以及通配符、路径匹配原则、常量
  5. .NET Core微服务之基于Exceptionless实现分布式日志记录
  6. 特斯拉再因致命Autopilot车祸被起诉 遭索赔逾1.5万美元
  7. beatsx三闪红灯是什么意思_飞机座椅上写的quot;taxiquot; 什么意思?出租车?
  8. 一文读懂cooie和session
  9. jQuery weui 时间选择器datetimepicker只用年月日
  10. Python——程序设计:商贷月供计算器!谁还没点月供了!
  11. Linux编程经典实例,PyQt4 精彩实例分析 - 实例1 Hello Kitty! _Linux编程_Linux公社-Linux系统门户网站...
  12. Win10图片打不开文件系统错误2147416359解决方法
  13. 二叉树有关的计算机二级选择题,2016计算机二级考试选择题训练及答案
  14. DBA必知的170张Oracle常用动态性能表介绍
  15. 中国叶酒市场趋势报告、技术动态创新及市场预测
  16. 一张图认识URI和URL
  17. 算法工程师面试之朴素贝叶斯
  18. 小米4C直接解锁、刷入TWRP
  19. 使用WordPress插件自动实现百度收录查询
  20. 【系统分析师之路】第十七章 多媒体基础章节习题集

热门文章

  1. 密码学归约证明——选择明文攻击下的不可区分性
  2. 2018年的学习任务
  3. 【考研英语语法】写作中的复杂名词短语
  4. 闭关修炼——one——struts2
  5. 360 android系统 流量,360手机卫士Android版增流量监控
  6. [世界杯] 意大利 VS 捷克 2:0 (据说是本届世界杯最有看头的一场)
  7. 1994-2019:中国互联网流量争夺史
  8. 艾默生流量计如何做好防爆工作
  9. macOS中调整终端默认窗口大小
  10. 跳动的心html5,施华洛世奇跳动的心真假怎么分辨