一个不知名大学生,江湖人称菜狗
original author: jacky Li
Email : 3435673055@qq.com

Time of completion:2022.12.20
Last edited: 2022.12.20

目录

一、实验目的

二、实验内容

三、总体设计(设计原理、设计方案及流程等)

四、实验步骤(包括主要步骤、代码分析等)

参考代码之主函数

参考代码之Employee

参考代码之SalariedEmployee

参考代码之HourlyEmployee

参考代码之SalesEmployee

参考代码之BaseplusEmplyee

作者有言


课程名称

Java程序设计

指导教师

***

学号

姓名

实验地点

***

实验时间

***

项目名称

Employee类的设计

实验类型

设计性

一、实验目的

(1)全面检验面向对象编程思想,巩固Java面向对象的封装、继承和多态;

(2)掌握常用API的使用;

(3)加强实践动手能力,能够将从书本上学习到的理论知识用到了实践上。

二、实验内容

某公司的雇员分为5类,每类员工都有相应的封装类,这5个类的信息如下所示。

(1) Employee:这是所有员工总的父类。

① 属性:员工的姓名,员工的生日月份

② 方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100 元。

(2) SalariedEmployee:Employee 的子类,拿固定工资的员工。

① 属性:月薪。

(3)HourlyEmployee:Employee 的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5 倍工资发放。

① 属性:每小时的工资、每月工作的小时数。

(4) SalesEmployee:Employee 的子类,销售,工资由月销售额和提成率决定。

① 属性:月销售额、提成率。

(5) BasePlusSalesEmployee:SalesEmployee 的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。

① 属性:底薪。

本题要求根据上述雇员分类,编写一个程序,实现以下功能:

(1)创建一个Employee 数组,分别创建若干不同的Employee对象,并打印某个月的工资。

(2)每个类都完全封装,不允许非私有化属性。

三、总体设计(设计原理、设计方案及流程等)

该部分听从友友建议已删除,该代码只能用于参考

四、实验步骤(包括主要步骤、代码分析等)

参考代码之主函数

/*original author: jacky LiEmail : 3435673055@qq.comTime of completion��2022.12.20Last edited: 2022.12.20
*/public class Main {public static void main(String[] args) {Employee salariedEmployee = new SalariedEmployee("张三", 5, 1000);Employee salesEmployee = new SalesEmployee("李四", 4, 10, 200);Employee hourlyEmloyee = new HourlyEmloyee("王五", 5, 15, 100);Employee basePlusSalesEmployee = new BasePlusSalesEmployee("赵六", 5, 10, 200, 500);Employee arr[] = { salariedEmployee, salesEmployee, hourlyEmloyee, basePlusSalesEmployee };for (Employee employee : arr) {System.out.println(employee.getName() + "五月薪:" + employee.getSalary(5));// 张三生日5月,月薪1000,五月加100,所以月薪1100,输出正确,之后同理,不再做统一阐述。System.out.println("-------------------");}}
}

参考代码之Employee

/*original author: jacky LiEmail : 3435673055@qq.comTime of completion��2022.12.20Last edited: 2022.12.20
*/abstract class Employee {private String name;private int birthday;public double getSalary(int month) {return this.birthday == month ? 100 : 0;}public Employee() {super();}public Employee(String name, int birthday) {super();this.name = name;this.birthday = birthday;}public int getBirthday() {return birthday;}public void setBirthday(int birthday) {this.birthday = birthday;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

参考代码之SalariedEmployee

/*original author: jacky LiEmail : 3435673055@qq.comTime of completion��2022.12.20Last edited: 2022.12.20
*//*** 拿固定工资的员工* * **/
public class SalariedEmployee extends Employee {private double salar;public SalariedEmployee(String name, int birthday, double salar) {super(name, birthday);this.salar = salar;}@Overridepublic double getSalary(int month) {return super.getSalary(month) + salar;}public double getSalar() {return salar;}public void setSalar(double salar) {this.salar = salar;}}

参考代码之HourlyEmployee

/*original author: jacky LiEmail : 3435673055@qq.comTime of completion??2022.12.20Last edited: 2022.12.20
*//*** 拿小时工资的员工*/
public class HourlyEmloyee extends Employee {private double hourSalar;private double hour;public HourlyEmloyee(String name, int birthday, double hourSalar, double hour) {super(name, birthday);this.hourSalar = hourSalar;this.hour = hour;}@Overridepublic double getSalary(int month) {return super.getSalary(month) + hour * hourSalar;}public double getHourSalar() {return hourSalar;}public void setHourSalar(double hourSalar) {this.hourSalar = hourSalar;}public double getHour() {return hour;}public void setHour(double hour) {this.hour = hour;}}

参考代码之SalesEmployee

/*original author: jacky LiEmail : 3435673055@qq.comTime of completion��2022.12.20Last edited: 2022.12.20
*//*** 销售* * **/
public class SalesEmployee extends Employee {private double saleNum;private double plusRate;public SalesEmployee(String name, int birthday, double saleNum, double plusRate) {super(name, birthday);this.saleNum = saleNum;this.plusRate = plusRate;}@Overridepublic double getSalary(int month) {return super.getSalary(month) + saleNum * plusRate;}public double getSaleNum() {return saleNum;}public void setSaleNum(double saleNum) {this.saleNum = saleNum;}public double getPlusRate() {return plusRate;}public void setPlusRate(double plusRate) {this.plusRate = plusRate;}}

参考代码之BaseplusEmplyee

/*original author: jacky LiEmail : 3435673055@qq.comTime of completion��2022.12.20Last edited: 2022.12.20
*//** 固定工资销售*/
public class BasePlusSalesEmployee extends SalesEmployee {private double beasSalar;public BasePlusSalesEmployee(String name, int birthday, double saleNum, double plusRate, double beasSalar) {super(name, birthday, saleNum, plusRate);this.beasSalar = beasSalar;}@Overridepublic double getSalary(int month) {return super.getSalary(month) + beasSalar;}public double getBeasSalar() {return beasSalar;}public void setBeasSalar(double beasSalar) {this.beasSalar = beasSalar;}}

五、结果分析与总结

作者有言

如果感觉博主讲的对您有用,请点个关注支持一下吧,将会对此类问题持续更新……

java实验报告之Employee类的设计相关推荐

  1. java实验报告之applet(小程序)

    一.实验目的与要求 1.了解java Applet基本框架结构.生命期. 2.了解Applet与HTML网页之间的应用关系. 3.了解HTML向Applet传递参数. 二.实验内容 2.1实验问题及结 ...

  2. Java实验报告之java面向对象编程

    一.实验目的: 1. 理解 Java 语言是如何体现面向对象编程基本思想的: 2. 掌握类的声明以及对象的创建: 3. 了解类的成员变量和成员方法的特性以及类的构造方法的使用. 二.实验环境: Ecl ...

  3. 基于Java多线程的打怪升级类游戏设计与开发

    摘要:本文论述了通过JAVA多线程.基于JAVA Swing的GUI图形用户界面设计.IO输入输出流.JDBC技术,实现了游戏系统的UI设计.游戏数据的存储.关卡的设置.用户头像的上传与更改.游戏数据 ...

  4. 计算机图形Opengl的实验报告,opengl计算机图形学实验报告之3D漫游世界.doc

    opengl计算机图形学实验报告之3D漫游世界.doc 北师大珠海分校信息技术学院计算机图形学实验报告实验报告文件命名方式学号姓名_实验序号_实验名称.doc姓名学号1001010092专业计算机任课 ...

  5. Java实验实现一个circle类,java实验报告-类的定义.doc

    java实验报告-类的定义 南京理工大学泰州科技学院 实验报告书 课程名称: <JAVA面向对象程序设计> 实验题目: 实验三 类的定义 班 级: 09计算机(2) 学 号: 090903 ...

  6. Java实验实现一个circle类_Java实验报告四

    Java实验报告四 一.题目 1.根据下面的要求实现圆类Circle. 1).圆类Circle的成员变量:radius表示圆的半径. 2).圆类Circle的方法成员: Circle():构造方法,将 ...

  7. 软件工程导论实验报告二(类图设计)

    软件工程导论实验报告 实验二 类图设计 2.实验目的 (1)掌握绘制类图的基本步骤: (2)掌握识别类的方法. 3.实验内容 利用StarUML或其它UML绘图工具,绘制系统中的类图. (1)图书管理 ...

  8. java实验:银行账户类的定义与使用

    内容要求: 一.实验目的 (1)理解对象和类,掌握用类创建对象模型. (2)理解和掌握抽象类的使用 (3)理解和掌握继承.方法覆盖的使用 (4)初步掌握使用多态性的方法 二.实验内容 按照如下步骤完成 ...

  9. 中南林业科技大学Java实验报告六:类的特性

    实验6:类的特性 6.1 实验目的 掌握类的私有成员和共有成员的定义: 掌握类的私有成员的访问方法: 理解类的构造方法的作用和执行过程: 掌握类的构造方法的定义和关键词this的使用: 类的静态变量: ...

最新文章

  1. 如何合理地估算线程池大小?
  2. Java_io体系之CharArrayReader、CharArrayWriter简介、走进源码及示例——13
  3. jdeveloper_JDeveloper中的Java反编译器
  4. React开发(229):react删除的实现
  5. Leecode刷题热题HOT100(7)—— 整数反转
  6. ECMAScript6(17):Class类
  7. 高一计算机专业班主任工作总结,07计算机5班班主任工作总结
  8. 啊哈C语言 第7章 有了它你能做更多的事(第27-28讲)
  9. mssql2000sp4 sql injection
  10. Office 2013 论文排版心得
  11. iPhone13再现粉屏问题,同时出现闪退/卡顿/重启?
  12. 计算机图像变为红色是什么故障,电脑显示器变成红色怎么办
  13. 【算法上车②】编译打包华为摄像头yolov3 狗识别demo
  14. 视频增强,去雾的实现 BU6521KV
  15. Linux电脑安全管家
  16. 针对大型网吧:阿尔法千兆网吧解决方案(转)
  17. jmeter 之 BSF,BeanShell(转载)
  18. 软件测试之测试计划与工具(三)
  19. 巴萨“青梅竹马”力量震惊世界 梅西小法19球占79.2%
  20. 网络编程之BIO、NIO

热门文章

  1. 一扩四(​FE8.1)USB转接和一扩七(FE2.1)USB原理图和PCB分享
  2. 商业模式-创新-增值价值
  3. Element ui —— dialog 弹窗 设置点击空白处不关闭
  4. h5 HTML5 浏览器 录制视频
  5. python使用XPATH爬取电影票房
  6. windows10 C盘满了,怎么处理
  7. redhat linux之bash 编程
  8. LeetCode4寻找两个有序数组的中位数(二分查找+分治)
  9. Ubuntu18修改host文件加速访问Github
  10. 大家注意咯!incaseformat蠕虫病毒爆发