创建一个工人类Worker
1)工人类的属性:工龄、工号、姓名、基本工资 Phone phone
需要定义一个Phone类,属性:brand price
2)输出所有信息的方法(包含手机的信息)
3)定义一个输出工资的方法(工资=基本工资)
4)创建一个部门经理类,继承工人Worker类,并重写其计算工资的方法(工资=基本工资+岗位级别500+工龄1000)
添加属性Saler saler; 定义一个方法manager(){ 打印部门经理谁负责管理的是哪个销售人员,
当月的销售金额是XX } 表示管理哪个销售人员
5)创建一个销售人员类,继承工人Worker类,
并增加一个属性(销售金额)。
并重写其计算工资的方法
(工资=基本工资+销售金额*系数(其中系数当销售金额大于100W时为0.09,小于100W时为0.08))
6)创建测试类,分别定义Manager类的对象,并赋值,调用其输出工资的方法和manager方法进行测试。
工人类
public class Worker {
private int time;
private int id;
private String name;
private double sal;
private Phone phone;
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
public Phone getPhone() {
return phone;
}
public void setPhone(Phone phone) {
this.phone = phone;
}
public Worker() {
super();
// TODO Auto-generated constructor stub
}
public Worker(int time, int id, String name, double sal, Phone phone) {
super();
this.time = time;
this.id = id;
this.name = name;
this.sal = sal;
this.phone = phone;
}
@Override
public String toString() {
return "工龄:" + time + ", 工号:" + id + ", 姓名:" + name + ", 工资:" + sal + ", 手机:" + phone + "]";
}
public void show() {
System.out.println("姓名:"+name+" 工号:"+id+" 工龄:"+time+" 基本工资:"+sal+"手机品牌:"+phone.getBrand()+" 手机价格:"+phone.getPrice());
}
public void showSal() {
System.out.println("基本工资:"+sal);
}
}
管理员类
public class Manager extends Worker{
private int level;
private Saler saler;
public Manager() {
super();
// TODO Auto-generated constructor stub
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public Saler getSaler() {
return saler;
}
public void setSaler(Saler saler) {
this.saler = saler;
}
public Manager(int time, int id, String name, double sal, Phone phone,int level,Saler saler) {
super(time, id, name, sal, phone);
this.level = level;
this.saler = saler;
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Manager [level=" + level + ", saler=" + saler + "]";
}
public void manage(){
//
System.out.println("部门经理是:"+getName()+"管理的销售人:"+saler.getName()+"当月的销售额:"+saler.getSal());
}
// 重写计算工资的方法
//基本工资+岗位级别*500+工龄*1000
@Override
public void showSal() {
double s = getSal()+level*500+getTime();
System.out.println("部门经理的工资"+s);
}
}
销售员类
public class Saler extends Worker{
private double xsSal;
public Saler(int time, int id, String name, double sal, Phone phone,double xsSal) {
super(time, id, name, sal, phone);
this.xsSal = xsSal;
// TODO Auto-generated constructor stub
}
public Saler() {
super();
}
public double getXsSal() {
return xsSal;
}
public void setXsSal(double xsSal) {
this.xsSal = xsSal;
}
@Override
public String toString() {
return "Saler ["+super.toString()+"xsSal=" + xsSal + "]";
}
@Override
public void showSal() {
double l = 0.0;
if(xsSal>=1000000) {
l = 0.09;
}else {
l = 0.08;
}
double totalMoney = getSal()+xsSal*l;
System.out.println("销售人员的工资是:"+totalMoney);
}
}
手机类
public class Phone {
private String brand;
private double price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Phone(String brand, double price) {
super();
this.brand = brand;
this.price = price;
}
public Phone() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "手机品牌" + brand + ", 手机价格" + price + "]";
}
}
测试类
public class Test5 {
public static void main(String[] args) {
Phone phone = new Phone("锤子", 3500);
Phone phone2 = new Phone("8848", 10000);
Saler saler=new Saler(10, 8, "张三", 1000, phone2, 10000000);
Manager manager = new Manager(20, 7,"李四", 2000, phone, 10, saler);
manager.showSal();
manager.manage();
saler.showSal();
// 一个类可以作为另外一个类的属性
}
}
结果:



