运行结果如下:
题目:
使用面向对象思想,输出员工信息并计算员工的工资。
实现过程为: a.定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性; b.再定义一个员工(Employee)类,该类的属性有员工编号(Id)、姓名(Name)、底薪 (Salary),所在部门(Department,该属性的值为Department类的对象). c. 然后为员工类定义一个计算工资(countSalary)的方法,该方法的参数为本月销售额(sales),返 回值为该员工的月工资。 月工资的计算方法为:底薪+销售提成,销售提成的比例如下:小于10w为1%,10w至20w为2%,大 于等于20w为3% d.在main()方法中,创建Department类和Employee类的对象、输入该员工的本月销售额后,计算并输 出该员工的工资。
Department类如下:
package JavaEEtest.Test1;
public class Department {
public double sales;
private int Id;//部门编号,不是员工编号
private String Name;//部门名字
public Department(int id, String name) {
Id = id;
Name = name;
}
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
}
Employee类如下:
package JavaEEtest.Test1;
public class Employee {
// 2、使用面向对象思想,输出员工信息并计算员工的工资。
// 实现过程为:
// a.定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;
// b.再定义一个员工(Employee)类,该类的属性有员工编号(Id)、姓名(Name)、底薪
//(Salary),所在部门(Department,该属性的值为Department类的对象).
// c. 然后为员工类定义一个计算工资(countSalary)的方法,该方法的参数为本月销售额(sales),返
// 回值为该员工的月工资。
// 月工资的计算方法为:底薪+销售提成,销售提成的比例如下:小于10w为1%,10w至20w为2%,大
// 于等于20w为3%。
// d.在main()方法中,创建Department类和Employee类的对象、输入该员工的本月销售额后,计算并输
// 出该员工的工资。
private int Id;//员工编号
private String Name;//员工名字
private double Salary;//底薪
private Double pay;
Department employnee;//销售部
public Employee(int id, String name, double salary, Double pay, Department employnee) {
Id = id;
Name = name;
Salary = salary;
this.pay = pay;
this.employnee = employnee;
}
public Double countSalary(Double sales) {
if (sales <= 0) {
System.out.println("你是竞争对手派来捣乱的吧!");
return pay;
} else if (sales > 0 && sales < 100000) {
pay = Salary + 0.01 * sales;//pay是Double时这种写法可以,当时当pay是float;系统会报错;
return pay;
//也可以直接用return Salary+0.01*sales;
} else if (sales >= 100000 && sales <= 200000) {
pay = Salary + 0.02 * sales;
return pay;
} else if (sales >= 200000) {
pay = Salary + 0.03 * sales;
}
return pay;
}
public Employee(int i, String 猪头君, double v, Department saledepartment) {
}
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public Double getSalary() {
return Salary;
}
public void setSalary(float salary) {
Salary = salary;
}
}
TestMain类(主类)如下:
package JavaEEtest.Test1;
import java.util.Scanner;
public class TestMain {
public static void main(String args[]){
double sales;
Scanner input=new Scanner(System.in);
Department saledepartment = new Department(001,"销售部");
Employee employee = new Employee(530122,"猪头君",600000,0.0,saledepartment);
System.out.println("猪头君所属的部门编号:"+ saledepartment.getId());
System.out.println("猪头君所属的部门名称:"+ saledepartment.getName());
System.out.println("猪头君的姓名:想当憨厚猪猪侠的少年:"+ employee.getName());
System.out.println("猪头君个人员工编号:"+ employee.getId());
System.out.print("请输入猪头君该月的销售额:");
sales=input.nextDouble();
System.out.print("请输入猪头君该月的工资为:"+employee.countSalary(sales));
System.out.println("\t=============================================");
System.out.println("\n底薪"+employee.getSalary()+"\t\t\t提成"+(employee.countSalary(sales)-employee.getSalary()));
}
}
员工和部门的关系很好理解,但是写代码时,怎么准确表达他们之间个变量的关系,和使用可能不好写。