本实验要求在项目三的基础上,定义完整的薪金类,包含成员变量和成员方法。成员变量为薪金wage、员工工资等级level,成员方法分别实现为薪金赋值、根据薪金计算员工工资等级,获得员工的薪金数值、获得员工的工资等级。
定义成员方法用于实现企业根据工资等级制定薪金:
●3级员工的薪金大于10000;
●2级员工的薪金大于5000,但小于等于10000;
●1级员工的薪金不超过5000。
对不同员工的薪金进行数值比较和排序,可以直接比较薪金;也可以先比较员工等级,级别高的员工薪金大于级别低的员工,级别相同的员工,再比较其薪金。
1.薪金类的成员方法setLevel(),showLevel()
【例4-1】 定义setLevel(),showLevel()方法。
公共类Salary内部的wage薪金为可赋值信息,level等级则是通过计算自动划定,不能手动赋值。setLevel()成员方法作用是使用if多分支选择语句,根据wage的数值划分员工的级别;showLevel()成员方法的作用是输出该员工的级别。
【例4-2】 调用setLevel(),showLevel()方法。
控制台显示结果如图4-2所示。
图4-2 【例4-2】运行结果(www.xing528.com)
在主函数方法main()中创建1个Salary类的对象s。使用Scanner类从控制台输入1个double型数据,通过setWage方法给对象s的wage成员变量赋值,调用setLevel方法计算员工薪金等级,自动赋值给level成员变量,调用showLevel输出等级结果。
需要注意,为了正确使用Scanner类,需要在程序的上方添加导入语句:importjava.util.Scanner;或importjava.util.*;。
2.薪金比较的成员方法compareSalary()
【例4-3】 if多分支定义compareSalary方法。
控制台显示结果如图4-3所示。
图4-3 【例4-3】运行结果
在Salary类内部新增成员方法compareSalary(),作用是比较两名员工的薪金值高低。compareSalary()方法有1个参数变量,类型为Salary类对象,在方法体内通过if…elseif…else多分支语句将参数对象的wage成员与this指向的本类对象的wage成员大小进行比较,返回结果。若本对象薪金值较大返回1,较小返回-1,与参数对象薪金值相等则返回0。
【例4-4】 if语句嵌套定义compareSalary方法。
通过if语句的嵌套,先比较本类对象和参数对象的level值,若不同直接返回结果,若相同,则进行内层比较,通过比较两个对象的wage值得出结果。该程序运行结果和例4-3结果相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。