1、实验要求

本实验要求:以公司员工日常工作及考评为业务背景,体验继承与方法重写的特性。

1-1. 业务说明:

1-1.1. 本实验以对公司雇员的工作考评为实验业务背景;

1-1.2. 公司每个雇员每天都需要进行日常的常规工作;

1-1.3. 人事既是公司雇员,同时也具有特定的工作职责;

1-1.4. 人事在常规工作的基础上还可以组织员工开展活动;

1-1.5. 人事根据员工的职级给出相应的每月补贴信息;

1-1.6. 本实验还需要实现公司对员工工作范围的考评。

1-2. 创建工程并配置环境:

1-2.1. 限制1. 创建实验工程,命名为:SE_JAVA_EXP_E033;

1-2.2. 限制2. 创建包,命名为:cn.campsg.java.experiment;

1-2.3. 限制3. 创建包,命名为:cn.campsg.java.experiment.entity。

1-3. 创建雇员实体类及其相关属性:

1-3.1. 限制1. 在cn.campsg.java.experiment.entity 包中创建雇员类:Employe。

1-3.2. 为Employe类创建如下属性:

1)雇员姓名:字符类型;

2)雇员职级:整数类型;

3)雇员薪水:整数类型。

1-3.3. 为Employe类的属性创建getter/setter方法;

1-3.4. 为Employe类创建0参构造函数。

1-3.5. 为Employe类创建3参构造函数。

1-3.6. 在3参构造器中,实现雇员类三个属性的初始化。

1-3.7. 为雇员类创建常规工作方法:

1)限制1. 方法名为work。

2)限制2. work方法为0参,无返回公共函数。

3)work方法的作用是:模拟员工的日常工作;

4)work方法需在控制台输出信息: 雇员名+“ 按领导的要求完成任务! ”。

1-4. 创建人事实体类及其相关属性:

1-4.1. 限制1. 在cn.campsg.java.experiment.entity包中创建人事类:Hrstaff;

1)人事类需继承雇员类,来获取雇员类的所有属性和特征。

1-4.2. 为Hrstaff创建0参构造函数。

1-4.3. 为Hrstaff创建1参构造函数:

1)参数为人事的姓名(字符串类型)。

2)Hrstaff利用继承中的属性共用特性实现初始化。

3)Hrstaff负责调用父类Employe的3参构造函数,参数如下:

Employe类的雇员姓名属性 = Hrstaff类的雇员姓名属性。

Employe类的雇员职级属性 = 5(人事雇员等级默认为5)。

Employe类的雇员薪水属性 = 5000(人事雇员薪水默认为5000)。

1-4.4. 在Hrstaff类中重写work方法:

1)该方法需具有Employe类(父类)同名方法的处理能力;

2)还需向控制台输出信息:雇员名字 + " 平时需要组织员工多参加运动。"。

3)本方法使Hrstaff既具有Employe工作内容又具有个性化工作内容。

1-5. 按雇员等级查询员工每月补贴金额:

1-5.1. 为Hrstaff类创建根据雇员职级查看薪水补贴的方法:

1)限制1. 方法名为:looupSalary。

2)限制2. 该方法具有1个整数类型参数:雇员等级。

3)限制3. 该方法具有字符类型的返回值,返回查询所得的补贴额度。

4)looupSalary的返回值需根据职级返回不同的内容,规则如下:

职级在[1-5]之间,返回信息为“每月补贴500元”;

职级在[6-9]之间,返回信息为“每月补贴800元”;

职级在[10-15]之间,返回信息为“每月补贴1000元”;

不在以上职级内,则返回信息为“不存在对应职级。”

1-6. 创建公司类与实现职能考评:

1-6.1. 限制1. 在包cn.campsg.java.experiment中创建公司类:Company;

1-6.2. 为公司类创建职能评估方法:

1)限制2. 方法名为:appraisals;

2)限制3. appraisals方法带有1个Employe类型参数,用于表述评价哪个员工。

3)限制4. appraisals方法可设定为无返回值的公共方法;

4)该方法模拟实现对所有雇员(包括人事)的考评工作;

5)在该方法内实现查看员工日常工作情况的功能;

6)如果员工为人事类,则还需向控制台输出如下格式信息:

"HR的雇员等级为:"+ 人事的职级 + "," + 人事的薪水补贴信息

1-7. 显示考评结果:

1-7.1. 限制1. 在cn.campsg.java.experiment包中创建主类:MainClass;

1-7.2. 为MainClass类创建主函数:main;

1-7.3. 在main函数中创建1个雇员对象和1个人事对象:

1)为雇员设定姓名、职级和薪水;

2)为人事对象指定姓名为“HR”;

1-7.4. 创建公司类对象,分别完成对雇员和人事的考评。

2、实现思路

2-1. 按实验要求创建工程并配置环境。。

2-2. 创建雇员实体类及相关属性:

2-2.1. 在cn.campsg.java.experiment.entity 包中创建雇员类:Employe;

2-2.2. 为Employe定义如下私有属性成员变量:

1)雇员姓名:String name;

2)雇员职级:int level;

3)雇员薪水:int salary。

2-2.3. 为Employe类的属性创建对应的getter/setter方法。

2-2.4. 为Employ类创建默认构造器。

2-2.5. 为Employe类创建3参构造器,创建规则如下:

1)构造器的参数分别对应Employe的三个属性变量;

2)在3参构造器内完成对Employe类三个属性的赋值。

2-2.6. 为Employe创建常规职责的工作方法:work,其形式如下:

+ 提示

public void work() {

}

1)在方法体内向控制台输出信息:雇员名 +“ 按领导的要求完成任务! ”

2-3. 创建人事实体类及其相关属性:

2-3.1.在cn.campsg.java.experiment.entity包中创建人事实体类:Hrstaff。

1)人事类Hrstaff继承自雇员类Employe;

2-3.2.为人事类Hrstaff创建默认构造器。

2-3.3.为人事类Hrstaff创建1参构造器,参数为人事的姓名:

1)在1参构造器内调用Employe的3参构造器,实现人事的属性初始化。

2)人事类属性的初始化可按如下规则设置:

Employe的name属性 = Hrstaff的name属性;

Employe的level属性 = 5;

Employe的salary属性 = 5000。

2-3.4.重写继承而来的Employe类的work方法:

1)在Hrstaff类的work方法中调用父类的work方法,实现常规工作;

2)按实验要求,向控制台输出人事类特定的信息:雇员名字 + " 平时需要组织员工多参加运动。"

3)重写该方法的形式如下:

+ 提示

@Override

  public void work() {

}

2-4. 按雇员等级查询员工每月薪水补贴金额:

2-4.1.为Hrstaff类创建特有的薪水补贴金额查询方法looupSalary,其形式如下:

  + 提示

  public String looupSalary(int level) {

}

2-4.2.实现薪水补贴金额查询的业务逻辑:

1)按实验要求,根据雇员的职级返回薪水补贴金额。

2)超出职级时返回:“不存在对应职级。”。

2-5. 创建公司类与实现职能考评:

2-5.1.在包cn.campsg.java.experiment中创建公司类:Company;

2-5.2.为公司类创建职级评估方法:appraisals,其形式如下:

  +提示

  public void appraisals(Employe emp) {

}

2-5.3.实现职级评估的业务逻辑:

1)在方法体内调用雇员(包括人事)的日常工作函数:work。

2)判断雇员对象是否为Hrstaff类,若是则完成以下工作:

2-1)调用人事对象getLevel方法获取人事的雇员等级。

2-2)调用人事对象的lookupSalary方法查询人事的薪水补贴金额。

2-3)向控制台输出信息:"HR的雇员等级为:"+ 人事的职级 + "," + 人事的薪水补贴信息

2-6. 显示考评结果:

2-6.1.在包cn.campsg.java.experiment中创建业务主类:MainClass;

2-6.2.为MainClass类创建主函数:main;

2-6.3.在main函数中创建1个雇员对象和1个人事对象;

2-6.4.创建公司考评对象。

2-6.5.调用公司对象的appraisals方法考评雇员。

2-6.6.调用公司对象的appraisals方法考评人事。

3. 验证与测试

    3-1. 在工程中定位主类MainClass。

3-2. 右键点击MainClass类,依次选择:Run As->Java Application。

3-3. 运行程序,查看输出结果是否符合预期。

//Employee.java
package cn.campsg.java.experiment.entity;public class Employe {private String name;private int level;private int salary;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getLevel() {return level;}public void setLevel(int level) {this.level = level;}public int getSalary() {return salary;}public void setSalary(int salary) {this.salary = salary;}public Employe(String name, int level, int salary) {this.name = name;this.level = level;this.salary = salary;}public Employe() {this("1",5,5000);}public void work(){System.out.println(this.name+"按领导的要求完成任务!");}
}
//Hrstaff.java
package cn.campsg.java.experiment.entity;public class Hrstaff extends Employe{public Hrstaff(){}public Hrstaff(String name){super(name,5,5000);}public void work(){super.work();System.out.println(this.getName()+" 平时需要组织员工多参加运动。");}public String looupSalary(int level){//level=em.getLevel();if(level>=1&&level<=5){return "每月补贴500元";//System.out.println("每月补贴500元");}else if(level>=6&&level<=9){return "每月补贴800元";//System.out.println("每月补贴800元");}else if(level>=10&&level<=15){return "每月补贴1000元";//System.out.println("每月补贴1000元");}else{return "不存在对应职级。";//System.out.println("不存在对应职级。");}}}
//Company.java
package cn.campsg.java.experiment;import cn.campsg.java.experiment.entity.Employe;
import cn.campsg.java.experiment.entity.Hrstaff;public class Company extends Hrstaff {public Company(){}public void appraisals(Employe emp){emp.work();Hrstaff hr=new Hrstaff(emp.getName());if(emp.getClass()==hr.getClass()){hr.setLevel(emp.getLevel());System.out.println("HR的雇员等级为:"+ hr.getLevel() + ","+hr.looupSalary(hr.getLevel()));}}
}
//MainClass.java
package cn.campsg.java.experiment;import cn.campsg.java.experiment.entity.Employe;
import cn.campsg.java.experiment.entity.Hrstaff;public class MainClass {public static void main(String[] args) {Employe emp=new Employe();Hrstaff hr=new Hrstaff();Company com=new Company();com.appraisals(emp);com.appraisals(hr);}
}

题目:16版.雇员的工作职责(二)相关推荐

  1. 题目:16版.雇员的工作职责(一)

    题目:16版.雇员的工作职责(一) 1.实验要求 本实验要求:以雇员的日常工作为背景,体验"继承"与"属性复用技术"的运用场景.1-1. 业务说明:1-1.1. ...

  2. Java黑皮书课后题第8章:**8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中。1行包含7列,记录了一个雇员7天的工作小时数。编写一个程序,按照总工时降序显示

    **8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中.1行包含7列,记录了一个雇员7天的工作小时数.编写一个程序,按照总工时降序显示 题目 题目描述 破题 代码 ...

  3. 剑指offer(第二版)读书笔记以及编程题目python版答案(二)

    剑指offer(第二版)读书笔记以及编程题目python版答案(二) 题目五:青蛙跳台阶 github地址: https://github.com/ciecus/leetcode_answers/tr ...

  4. 前端开发是做什么的?工作职责

    想要了解前端从业者的工作职责,需要从一个完整网站应用产生流程入手,一个网站应用从无到有的过程大致如下 : 1)产品经理与甲方反复沟通交流,逐步确定产品需求完成设计草图: 2)产品经理根据需求和草图进行 ...

  5. PHP程序员的工作职责与薪酬待遇 -兄弟连IT教育

    PHP程序员的工作职责与薪酬待遇 -兄弟连IT教育 PHP程序员的工作职责与薪酬待遇hp程序员首先应该热爱php,俗话说:"要做好一件事,要先去理解他,然后爱他."PHP是一种很美 ...

  6. 详细介绍Oracle DBA工作职责

    Oracle DBA工作职责如下: 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案. 3.根据开发人员设计的应用 ...

  7. 剑指offer有python版吗_剑指Offer算法类题目[Python版]

    标签:重复   作用   coding   面试   medium   mba   none   fas   utf-8 面试题012 数值的整数次方 解题思路1 考虑所有情况,循环连乘 代码: de ...

  8. 大疆2019校招提前批机器学习算法工程师在线笔试题目回忆版

    最后还涉及到两道16分的在线编程题目,但是我忘记了,故没有列出来,望大家原谅2333. 大疆2019年校招提前批机器学习算法工程师B卷题目回忆版 1 考察关于各种激活函数 sigmoid.tanh.r ...

  9. 产品经理的六大工作职责——最简洁

    一 产品经理做APP从头到尾的所有工作流程详解! - eickandy的专栏 - CSDN博客 https://blog.csdn.net/eickandy/article/details/80294 ...

最新文章

  1. 想法1 : 突然萌发的 “天时地利人和”-----优化
  2. Python十大装腔语法
  3. Laravel5.2之Filesystem源码解析(下)
  4. 主键primary key和唯一索引unique index
  5. 致驱动工程师的一封信
  6. 卡农 matlab,matlab 编的卡农
  7. npm的镜像替换淘宝
  8. java dev guide
  9. Seata多微服务互相调用_全局分布式事物使用案例_Order-Module order微服务的配置搭建_写代码上---微服务升级_SpringCloud Alibaba工作笔记0061
  10. JZ50第一个只出现一次的字符JZ50第一个只出现一次的字符JZ25合并两个排序的链表思路
  11. Java编程经典10道_10道经典java编程笔试题
  12. python编程入门视频-Python编程入门电子书及视频教程-非常详细『强烈推荐』
  13. python和opencv人脸表情识别_使用OpenCV和Python进行人脸识别
  14. HashTable和HashMap的区别详解(转)
  15. Python全栈开发【基础-11】基本数据类型内置方法
  16. C语言实现J1939长帧组包接口以及模拟DM1数据并生成CANalyst数据文件
  17. 记一次阿里云配置二级域名经历,及申请免费非工作用途SSL证书
  18. python多变量相关性分析_两个变量与因变量相关性分析_spss多变量相关性分析
  19. Linux- 什么是PID?
  20. ROVIO WowWee 路威小车

热门文章

  1. 软件测试中怎么分析性能的好坏,软件测试中性能测试结果分析
  2. C#修改电脑系统时间
  3. java 模拟一个简单的英雄对战(面向过程练习)
  4. 残酷的纲领计算机音乐,残酷な天使のテーゼ (残酷天使的行动纲领) (Director's Edit. Version|Instrumental)...
  5. pip安装Z3求解器
  6. BA黑凤梨探营CBA上海大鲨鱼 华为Mate 20 X获职业电竞选手青睐
  7. 9月PMP考试报名查看(如何支付PMP考试费用?)
  8. 免费开源3D模型设计软件汇总
  9. 【智能硬件】打印机微信公众配置WIFI模块
  10. 保险公司理赔作业流程分析