一、在此之前,固定写编程的套路(流程)
一、分类
1、调用(测试类):GameGo
2、父类(is-a判断)
3、子类
二、类的细节
1、先写属性,private封装
2、写set,get方法
3、写构造器
4、再写其他方法体
二、开始编写
1、父类Personnel
父类是全部子类共有的属性,方法。
构造器写入子类共有的属性。
并且写入set,get方法,当调用set方法可以重新设置属性,调用get方法得到属性。
package com.wym.homework05;
public class Personnel {
//属性
private String name;
private double salary;
private int salaryMonth=12;
//构造器
public Personnel(String name, double salary) {
this.name = name;
this.salary = salary;
}
//打印方法
public void print(){
System.out.println(name+" 全年工资为:"+salary*salaryMonth);
}
//set,get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public int getSalaryMonth() {
return salaryMonth;
}
public void setSalaryMonth(int salaryMonth) {
this.salaryMonth = salaryMonth;
}
}
2、工人类
可以重复引用name 还有salary;还有print方法,
如果打印与父类相同的东西,可以不用写print方法,只用写构造器,传入参数(构造器不写会报错)
package com.wym.homework05;
public class Worker extends Personnel{
public Worker(String name, double salary) {
super(name, salary);
}
@Override
public void print() {
System.out.print("员工:");
super.print();
}
}
3、农民类Peasant
与工人类一样
4、服务员类Waiter
与工人类一样
5、教师类Teacher
固定编程流程,教师类有一些自己的属性,课酬rewar,与上课天数day
固定编程流程,写入set与get方法
固定编程流程,写入构造器(提前先把属性写好)
package com.wym.homework05;
public class Teacher extends Personnel{
private double reward;
private double day;
public Teacher(String name, double salary, double reward, double day) {
super(name, salary);
this.reward = reward;
this.day = day;
}
@Override
public void print() {
System.out.print("老师:");
System.out.println(getName()+" 全年工资为:"+(getSalary()*getSalaryMonth()+reward*day));
}
public double getReward() {
return reward;
}
public void setReward(double reward) {
this.reward = reward;
}
public double getDay() {
return day;
}
public void setDay(double day) {
this.day = day;
}
}
6、科学家类Sceintist
固定流程,并且增加新属性
package com.wym.homework05;
public class Scientist extends Personnel{
double bonus;
public Scientist(String name, double salary, double bonus) {
super(name, salary);
this.bonus = bonus;
}
@Override
public void print() {
System.out.print("科学家:");
System.out.println(getName()+" 全年工资为:"+(getSalary()*getSalaryMonth()+bonus));
}
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
}
6、最重要的,调用类!!!GameGo
package com.wym.homework05;
public class GameGo {
public static void main(String[] args) {
Personnel jack = new Personnel("jack", 5000);
jack.print();
Worker mary = new Worker("mary", 4000);
mary.print();
Waiter wym = new Waiter("wym", 2000);
wym.print();
Teacher xxh = new Teacher("xxh", 3000, 3000, 300);
xxh.setSalaryMonth(10);//灵活修改月份,set,get方法
xxh.print();
Scientist hsp = new Scientist("hsp", 3000, 500000);
hsp.print();
}
}