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

题目:16版.雇员的工作职责(一)
1、实验要求

本实验要求:以雇员的日常工作为背景,体验“继承”与“属性复用技术”的运用场景。1-1. 业务说明:1-1.1. 本实验以公司雇员的日常工作模式为业务背景。1-1.2. 公司每个雇员每天都需要进行日常的常规工作。 1-1.3. 人事人员既是公司雇员,同时也具有特定的工作职责。1-1.4. 人事除了日常的常规工作外,还具有为员工发放薪水的工作职责。1-2. 创建工程并配置环境:1-2.1. 限制1. 创建实验工程,命名为:SE_JAVA_EXP_E032;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参构造器中,对雇员类的三个属性进行初始化。1-3.6. 为Employe类创建日常的常规工作方法:1)限制1. 方法名为:work。2)限制2. work方法可设定为0参,无返回公共函数。3)work方法的作用是,模拟雇员的常规工作。4)work方法需在控制台输出信息:雇员名称 +“ 做好了本职工作! ”1-4. 创建人事实体类及其相关属性:1-4.1. 限制1.在cn.campsg.java.experiment.entity包中创建人事类:Hrstaff;1)Hrstaff类需继承Employe类,以此获取雇员类的所有属性和特征。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-5. 实现人事为雇员发放薪水的操作:1-5.1. 为Hrstaff类创建发放薪水方法:1)限制1. 方法名为:paySalary;2)限制2. paySalary方法带有1个Employe类型参数,用于表述为哪位员工发放工资。3)限制3. paySalary方法可设定为无返回公共函数。4)paySalary根据Employe的雇员等级实现薪水发放,发放规则如下:职级在[1-5]之间,雇员薪水 = 雇员薪水 + 500;职级在[6-9]之间,雇员薪水 = 雇员薪水 + 800;职级在[10-15]之间,雇员薪水 = 雇员薪水 + 1000;超出职级范围,提示:“不存在对应的职级,无法发放额外浮动薪水”1-6. 显示雇员工作内容和薪水:1-6.1. 限制1. 在cn.campsg.java.experiment包中创建主类:MainClass;1-6.2. 为MainClass创建入口主方法:main;1-6.3. 在main方法中,创建3个不同雇员对象和1个人事对象。1-6.4. 在main方法中,显示所有雇员和人事的常规工作情况(调用work)。1-6.5. 在main方法中,实现人事对所有雇员(包括自己)发放薪水的操作。1-6.6. 工资发放后,在main方法中输出雇员的发薪信息(包括人事):1)输出信息格式为:员工姓名 +“ 的薪水: ”+ 员工类的雇员薪水

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)Hrstaff类属性的初始化可按如下规则设置:Employe的name属性 = Hrstaff的name属性;Employe的level属性 = 5;Employe的salary属性 = 5000。2-4. 实现人事为雇员发放薪水的操作:2-4.1. 为Hrstaff类创建特有的发薪方法paySalary,其形式如下:
  • 提示

public void paySalary(Employe em) {

}

    2-4.2. 实现薪水发放的业务逻辑:1)在方法内,首先获取通过参数传入的雇员对象职级:int level = em.getLevel();2)按实验要求,根据雇员的职级在原有薪水基础上增加额外的补贴金额。3)超出职级时提示信息为:“不存在对应的职级,无法发放额外浮动薪水”。2-5. 显示雇员工作内容和薪水:2-5.1. 在包cn.campsg.java.experiment中创建业务主类:MainClass;2-5.2. 在MainClass中定义主函数main。2-5.3. 在main方法中创建3个不同的雇员对象和1个人事对象。2-5.4. 调用4个对象的work函数,输出所有雇员(包括人事)的工作内容。2-5.5. 模拟实现人事为雇员(包括自己)发放薪水的操作:1)调用Hrstaff对象的paySalary方法,并分别传入三个雇员对象。2)调用Hrstaff对象的paySalary方法,并传入人事对象自己。3)依次向控制台输出所有雇员的发薪信息,信息格式如下:雇员对象.getName() +“的薪水:”+ 雇员对象.getSalary()。

3、验证与测试

3-1. 在工程中定位主类MainClass。3-2. 右键点击MainClass类,依次选择:Run As->Java Application。3-3. 运行程序,查看输出结果是否符合预期。
package cn.campsg.java.experiment.entity;public class Employe {String name ;int level;int salary;public void setLevel(int level) {this.level = level;}public int getLevel() {return level;}public void setName(String name) {this.name = name;}public String getName() {return name;}public void setSalary(int salary) {this.salary = salary;}public int getSalary() {return salary;}public Employe() {//创建默认构造器super();}public Employe(String name,int level,int salary)//创建三参构造器{super();this.name = name;this.level = level;this.salary = salary;}public void work()//函数{System.out.println(name+"做好了本职工作!");}
}
package cn.campsg.java.experiment.entity;public class Hrstaff extends Employe{//继承public Hrstaff(){super();}public Hrstaff(String name){super(name,5,5000);//初始化}public void paySalary(Employe em){int level = em.getLevel();if (level>=1&&level<=5) em.setSalary(em.getSalary() + 500);else if (level>=6&&level<=9) em.setSalary(em.getSalary() + 800);else if (level>=10&&level<=15) em.setSalary(em.getSalary() + 1000);else {System.out.println("不存在对应的职级,无法发放额外浮动薪水");}System.out.println("员工" + em.getName() + "的薪水:" + em.getSalary());}
}
package cn.campsg.java.experiment;import cn.campsg.java.experiment.entity.Employe;
import cn.campsg.java.experiment.entity.Hrstaff;public class MainClassMainClass {public static void main(String[] args) {// TODO Auto-generated method stubEmploye employe1 = new Employe("洪吉江",1,1000);Employe employe2 = new Employe("李俊生",6,2000);Employe employe3 = new Employe("赵子万",11,3000);Hrstaff hr=new Hrstaff("HR");employe1.work();employe2.work();employe3.work();hr.work();System.out.println(hr.getName()+"开始发放工资:");hr.paySalary(employe1);hr.paySalary(employe2);hr.paySalary(employe3);hr.paySalary(hr);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构实战:(一)Redis采用主从架构的原因

架构实战 &#xff08;一&#xff09;Redis采用主从架构的原因 &#xff08;二&#xff09; 如果系统的QPS超过10W&#xff0c;甚至是百万以上的访问&#xff0c;则光是Redis是不够的&#xff0c;但是Redis是整个大型缓存架构中&#xff0c;支撑高并发的架构非常重要的环节。 首…

5. 多重背包问题 II

多重背包问题 II 二进制优化&#xff1a; #include<iostream> #include<vector> #include<algorithm> #include<cstring> using namespace std; int f[10001]; struct node {int v;int w; }; int main() {vector<node>cun;int n,V;cin>>n…

使用memcache作为中间缓存区的步骤

① 直接让PHP程序memcache取数据 ② 如果memcache里面没有数据&#xff0c;则让其连接数据库&#xff0c;去数据库里面取数据 ③ 将取出的数据展示给用户的同时&#xff0c;再将数据缓存到memcache里面&#xff0c;并且可以指定一个缓存的时间&#xff0c;单位为秒。 ④ 如果之…

844. 走迷宫

走迷宫 友情提示&#xff1a;尽量不用fill&#xff0c;用memset 一个fill浪费我两个小时找错。。。。。 #include <iostream> #include <queue> #include <algorithm> #include <cstring> using namespace std; int ch[111][111]; int op[111][111];…

计算机 - 网络原理

计算机 - 网络原理转载于:https://www.cnblogs.com/KevinXia/p/7477693.html

3578. 最大中位数

最大中位数 给定一个由 n 个整数组成的数组 a&#xff0c;其中 n 为奇数。 你可以对其进行以下操作&#xff1a; 选择数组中的一个元素&#xff08;例如 ai&#xff09;&#xff0c;将其增加 1&#xff08;即&#xff0c;将其替换为 ai1&#xff09;。 你最多可以进行 k 次操…

selenium无法定位到QQ邮箱登录页面的输入框元素和登录按钮元素-解决方法

问题如下&#xff1a; 代码如下&#xff1a; package TestNG1; import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.support.FindBy;import org.openqa.selenium.support.PageFactory;import org.testng.annotations.Tes…

3583. 整数分组

整数分组 #include<iostream> #include<algorithm> using namespace std; int main() {int f[5010][5010];int w[5010];int n,m;cin>>n>>m;for (int i1;i<n;i) cin>>w[i];sort(w1,wn1);for (int i1,j1;i<n;i){while (w[i]-w[j]>5) j;f…

《JavaWeb从入门到改行》注册时向指定邮箱发送邮件激活

javaMail API javaMail是SUN公司提供的针对邮件的API 。 两个jar包 mail.jar 和 activation.jar java mail中主要类&#xff1a;javax.mail.Session、javax.mail.internet.MimeMessage、javax.mail.Transport。 Session 表示会话&#xff0c;即客户端与邮件服务器之…

9. 分组背包问题

分组背包问题 #include <iostream> #include <algorithm> using namespace std; const int maxn 1000; int w[maxn], v[maxn], f[maxn]; int main() {int n, V;cin >> n >> V;for (int i 0; i < n; i){int m;cin >> m;for (int j 0; j &l…

HTTP之报文

HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端&#xff08;客户端&#xff09;的 HTTP 报文叫做请求报文&#xff0c;响应端&#xff08;服务器端&#xff09;的叫做响应报文。HTTP 报文本身是由多行&#xff08;用 CRLF 作换行符&#xff09;数据构成的字符串文…

小程序添加本地图片

写背景图片的时候用了本地的图片&#xff0c;报错说是不能直接使用本地图片。 只能使用<image></image> 或者网络图片以及base64 只好换背景图为<image src本地图片路径></image>转载于:https://www.cnblogs.com/zhangweihu/p/7490233.html

896. 最长上升子序列 II

最长上升子序列 II #include<iostream> using namespace std; int main() {int n;int w[100001],v[100001];cin>>n;for (int i0;i<n;i) cin>>w[i];int len 0;v[0] -2e9;for (int i0;i<n;i){int l 0,r len;while (l<r){int mid lr1>>1;i…

python 内置函数

一 print( ) flush的应用——模拟进度条 import time for i in range(1,101):time.sleep(0.1)print(\r{}%:{}.format(i,**i),end,flushTrue) #\r &#xff08;return&#xff09; 表示回车 \n &#xff08;new line&#xff09;表示换行&#xff0c;实际上是回车换…

275. 传纸条

传纸条 DP 三维数组。 #include <iostream> #include <cstring> using namespace std; const int maxn 100; int f[maxn][maxn][maxn];//第一维是步数&#xff0c;第二维是x1&#xff0c;第三维是x2。 int w[maxn][maxn];//y可以用x表示 int main() {int n, m;ci…

java使用token防止用户重复登录以及验证用户登录

登录成功后&#xff0c;使用用户id构造生成一个token并保存到redis中&#xff0c;同时也保存用户id到session中 生成token的代码如下&#xff1a; Overridepublic String createToken(String phone,String appId) throws Exception {long loginTime DateUtil.getNowTimeStampT…

866. 试除法判定质数

试除法判定质数 #include<iostream> #include<cmath> using namespace std; bool cmp(int x) {if (x1) return false;for (int i2;i<sqrt(x);i){if (x%i0) return false;}return true; } int main() {int n,num;cin>>n;while (n--){cin>>num;bool …

python基础练习

1.简单输入输出交互。 oldinput(How old are you?\n) print(I am %s%old) 2.用户输入两个数字&#xff0c;计算并输出两个数字之和&#xff0c;尝试只用一行代码实现这个功能。 minput(输入第一个数字&#xff1a;) ninput(输入第二个数字&#xff1a;)sumfloat(m)float(n)pr…

867. 分解质因数

分解质因数 #include <iostream> #include <set> #include <map> #include <cmath> using namespace std; int main() {int n;cin >> n;for (int i 0; i < n; i){int num;map<int, int> mp;set<int> cun;cin >> num;for …

.Net AppDomain详解(一)

AppDomain是CLR的运行单元&#xff0c;它可以加载Assembly、创建对象以及执行程序。AppDomain是CLR实现代码隔离的基本机制。每一个AppDomain可以单独运行、停止&#xff1b;每个AppDomain有自己默认的异常处理&#xff1b;一个AppDomain的运行失败不会影响到其他的AppDomain。…