Java基础 8.3

1.面向对象编程练习

package com.logic.homework.homework05;
//5.设计父类一员工类.子类:工人类(Worker),农民类(Peasant),教师类(Teacher),科学家类(Scientist),服务生类(Waiter)。
//(1)其中工人,农民,服务生只有基本工资
//(2)教师除基本工资外,还有课酬(元/天)
//(3)科学家除基本工资外,还有年终奖
//(4)编写一个测试类,将各种类型的员工的全年工资打印出来

public class Homework05 {
    public static void main(String[] args) {
        Worker worker = new Worker(200, 20);
        worker.setSalMonth(15);
        worker.printYearSal();
        Waiter waiter = new Waiter(100, 20);
        waiter.printYearSal();
        Peasant peasant = new Peasant(300, 20);
        peasant.printYearSal();
        Teacher teacher = new Teacher(200, 20);
        teacher.setClassSal(50);
        teacher.setTeachDays(400);
        teacher.printYearSal();
        Scientist scientist = new Scientist(400, 20);
        scientist.setYearBonus(200000);
        scientist.printYearSal();
    }
}
package com.logic.homework.homework05;

public class Employee {
    private double daySal;
    private int monthWorkDays;
    private int salMonth = 12;

    public Employee(double daySal, int monthWorkDays) {
        this.daySal = daySal;
        this.monthWorkDays = monthWorkDays;
    }

    public double getDaySal() {
        return daySal;
    }

    public void setDaySal(double daySal) {
        this.daySal = daySal;
    }

    public int getMonthWorkDays() {
        return monthWorkDays;
    }

    public void setMonthWorkDays(int monthWorkDays) {
        this.monthWorkDays = monthWorkDays;
    }

    public int getSalMonth() {
        return salMonth;
    }

    public void setSalMonth(int salMonth) {
        this.salMonth = salMonth;
    }

    public void printYearSal() {
        System.out.println("的年薪为: " + daySal * monthWorkDays * salMonth);
    }
}
package com.logic.homework.homework05;

public class Worker extends Employee {
    public Worker(double daySal, int monthWorkDays) {
        super(daySal, monthWorkDays);
    }

    @Override
    public void printYearSal() {
        System.out.print("该工人");
        super.printYearSal();
    }
}
package com.logic.homework.homework05;

public class Scientist extends Employee {
    private double yearBonus;

    public Scientist(double daySal, int monthWorkDays) {
        super(daySal, monthWorkDays);
    }

    public double getYearBonus() {
        return yearBonus;
    }

    public void setYearBonus(double yearBonus) {
        this.yearBonus = yearBonus;
    }

    @Override
    public void printYearSal() {
        System.out.println("该科学家的年资为: " + (getDaySal() * getMonthWorkDays()
                * 12 + getYearBonus()));
    }
}
package com.logic.homework.homework05;

public class Teacher extends Employee {
    private double classSal;
    private int teachDays;

    public Teacher(double daySal, int monthWorkDays) {
        super(daySal, monthWorkDays);
    }

    public double getClassSal() {
        return classSal;
    }

    public void setClassSal(double classSal) {
        this.classSal = classSal;
    }

    public int getTeachDays() {
        return teachDays;
    }

    public void setTeachDays(int teachDays) {
        this.teachDays = teachDays;
    }

    @Override
    public void printYearSal() {
        System.out.println("该教师的年薪为: " + (getDaySal() * getMonthWorkDays() * 12
                + getClassSal() * getTeachDays()));
    }
}
package com.logic.homework.homework05;

public class Waiter extends Employee {
    public Waiter(double daySal, int monthWorkDays) {
        super(daySal, monthWorkDays);
    }

    @Override
    public void printYearSal() {
        System.out.print("该服务员");
        super.printYearSal();
    }
}
package com.logic.homework.homework05;

public class Peasant extends Employee {
    public Peasant(double daySal, int monthWorkDays) {
        super(daySal, monthWorkDays);
    }

    @Override
    public void printYearSal() {
        System.out.print("该农民");
        super.printYearSal();
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值