7-6 jmu-Java-03面向对象-06-继承覆盖综合练习
写之前还是要先明确好程序编写的要求,以免过了样例但代码运行逻辑和要求不符合。
记录一个比较浮点型数据的方法
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-继承覆盖综合练习相关推荐
- 4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company**
4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person.Student.Employee.Company 题目概况: 定义Person抽象类,Student类.Company类, ...
- java之面向对象:继承extends、super、覆盖override的用法
继承的好处: 1 )提高了代码的复用性. 2 )让类与类之间产生了关系,给第三个特征多态提供 了前提. java支持单继承,不直接支持多继承,但对C++中的多继承机制进行改良. 单继承:一个子类只能有 ...
- java继承stu继承person_4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (20 分)中的一些问题...
1.Employee类的equals 由于题目要求//首先调用父类的equals方法,如果返回true.再比较company与salary. //比较salary属性时,使用DecimalFormat ...
- 7-2 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (15分)
定义Person抽象类,Student类.Company类,Employee类. Person类的属性:String name, int age, boolean gender Person类的方法: ...
- Java(10)面向对象之继承,内部类
01 面向对象之继承 public class Inheritance02 {public class Person {/*** 昵称*/private String nickname;/*** 性别 ...
- 【JavaSE学习】03面向对象Java语法
JavaSE(B站黑马)学习笔记 01Java入门 02数组.方法 03面向对象&Java语法 04-1Java高级(Stream流.异常处理.日志技术) 04-2Java高级(文件处理-IO ...
- java用继承编写宠物乐园_MoreThanJavaDay 5:面向对象进阶继承详解
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- Java基础-面向对象第二特征之继承(Inheritance)
Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...
- Java面向对象(继承、抽象类)
面向对象 今日内容介绍 u 继承 u 抽象类 第1章 继承 1.1 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成 ...
最新文章
- 当postgres的主键序列不同步时,如何重置?
- 备考信息系统项目管理师5点必过经验
- Java中的查找树和哈希表(一级)
- struts2开发action 的三种方法以及通配符、路径匹配原则、常量
- .NET Core微服务之基于Exceptionless实现分布式日志记录
- 特斯拉再因致命Autopilot车祸被起诉 遭索赔逾1.5万美元
- beatsx三闪红灯是什么意思_飞机座椅上写的quot;taxiquot; 什么意思?出租车?
- 一文读懂cooie和session
- jQuery weui 时间选择器datetimepicker只用年月日
- Python——程序设计:商贷月供计算器!谁还没点月供了!
- Linux编程经典实例,PyQt4 精彩实例分析 - 实例1 Hello Kitty! _Linux编程_Linux公社-Linux系统门户网站...
- Win10图片打不开文件系统错误2147416359解决方法
- 二叉树有关的计算机二级选择题,2016计算机二级考试选择题训练及答案
- DBA必知的170张Oracle常用动态性能表介绍
- 中国叶酒市场趋势报告、技术动态创新及市场预测
- 一张图认识URI和URL
- 算法工程师面试之朴素贝叶斯
- 小米4C直接解锁、刷入TWRP
- 使用WordPress插件自动实现百度收录查询
- 【系统分析师之路】第十七章 多媒体基础章节习题集