1.面向对象练习
package com.logic.homework;
public class Employee {
private String name;
private double daySal;
private int workdays;
private double garde;
public Employee(String name, double daySal, int workdays, double garde) {
this.name = name;
this.daySal = daySal;
this.workdays = workdays;
this.garde = garde;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getDaySal() {
return daySal;
}
public void setDaySal(double daySal) {
this.daySal = daySal;
}
public int getWorkdays() {
return workdays;
}
public void setWorkdays(int workdays) {
this.workdays = workdays;
}
public double getGarde() {
return garde;
}
public void setGarde(double garde) {
this.garde = garde;
}
public void printSal() {
System.out.println(name + " 工资是" + daySal * workdays * garde);
}
}
package com.logic.homework;
public class Manager extends Employee {
private double bonus;
//创建Manager对象的时候 奖金是多少不能确定 所以构造器中不给bonus 可以通过setBonus
public Manager(String name, double daySal, int workdays, double garde) {
super(name, daySal, workdays, garde);
}
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
//重写父类的printSal
@Override
public void printSal() {
//因为经理的工资计算方式和员工不一样 所以我们重写打印工资方法
System.out.println("经理 " + getName() + " 工资是" + (bonus + getDaySal()
* getWorkdays() * getGarde()));
}
}
package com.logic.homework;
public class Worker extends Employee {
public Worker(String name, double daySal, int workdays, double garde) {
super(name, daySal, workdays, garde);
}
@Override
public void printSal() {
System.out.print("普通员工 ");
super.printSal();
}
}
package com.logic.homework;
public class Homework04 {
//1.员工类:父类、子类:部门经理类、普通员工类 部门经理工资=1000+单日工资*天数*等级(1.2)。=>奖金 + 基本工资
//2.普通员工工资=单日工资*天数*等级(1.0):=>基本工资
//3.员工属性:姓名,单日工资,工作天数
//4.员工方法(打印工资)
//5.普遍员工及部门经理都是员工子类,需要重写打印工资方法
//6.定义井初始化普通员工对象,调用打印工资方法输出工资,定义并初始化部门经理对象调用打印工资方法输出工资
public static void main(String[] args) {
Manager manager = new Manager("logic", 400, 24, 1.3);
//设置奖金
manager.setBonus(3000);
manager.printSal();
Worker jack = new Worker("jack", 200, 24, 1);
jack.printSal();
}
}
package com.logic.homework;
public class Teacher {
private String name;
private int age;
private String post;
private double salary;
private double grade;//工资级别
public Teacher(String name, int age, String post, double salary,
double grade) {
this.name = name;
this.age = age;
this.post = post;
this.salary = salary;
this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPost() {
return post;
}
public void setPost(String post) {
this.post = post;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public double getGrade() {
return grade;
}
public void setGrade(double grade) {
this.grade = grade;
}
public void introduce() {
System.out.println("name: " + name + " age: " + age + " post: " + post
+ " salary: " + salary + " grade: " + grade);
}
}
package com.logic.homework;
public class Professor extends Teacher {
public Professor(String name, int age, String post, double salary, double grade) {
super(name, age, post, salary, grade);
}
@Override
public void introduce() {
System.out.println("这是教授的信息");
super.introduce();
}
}
package com.logic.homework;
public class Homework03 {
//编写老师类要求有属性“姓名name”“年龄age”“职称post”“基本工资salary”
//编写业务方法,introduce(),实现输出一个教师的信息。
//编写教师类的三个子类:教授类(Professor)、副教授类、讲师类。工资级别分别为:
//教授为1.3、副教授为1.2、讲师类1.1。在三个子类里面都重写父类的introduce()方法
//(4)定义井初始化一个老师对象,调用业务方法,实现对象基本信息的后台打印
public static void main(String[] args) {
Professor professor = new Professor("logic", 20, "正高级",
10000, 1.3);
professor.introduce();
}
}