任务描述:公司要对两类人进行收入计算:老板收入=工资+股份红利;员工=工资+奖金。
设计整体要求:各个类要完成的的计算在内部完成。
1、先写空结构
package
base;
public class NoInstanceOf {
public static void main(String[] args){
}
}
class Employee {
//共性:收入与工资
private double income;
private double salary;
}
class Worker extends Employee {
//奖金
private double bonus;
}
class Boss extends Employee {
//股份
private double stock;
}
public class NoInstanceOf {
public static void main(String[] args){
}
}
class Employee {
//共性:收入与工资
private double income;
private double salary;
}
class Worker extends Employee {
//奖金
private double bonus;
}
class Boss extends Employee {
//股份
private double stock;
}
2、设计实现
package
base;
public class CalcSimple {
public static void main(String[] args){
//步骤:1.创建实例2.设置相关数据3.调用计算过程4.求值
Worker worker1 = new Worker();
worker1.setSalary(1000);
worker1.setBonus(2000);
worker1.calc();
System.out.println("员工收入:"+worker1.getIncome());
Boss boss1 = new Boss();
boss1.setSalary(1000);
boss1.setStock(10000);
boss1.calc();
System.out.println("老板收入:"+boss1.getIncome());
}
}
class Employee {
//共性:收入与工资
private double income;
private double salary;
public double getIncome() {
return income;
}
public void setIncome(double income) {
this.income = income;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
class Worker extends Employee {
//奖金
private double bonus;
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
public void calc(){
this.setIncome(this.getSalary()+this.getBonus());
}
}
class Boss extends Employee {
//股份
private double stock;
public double getStock() {
return stock;
}
public void setStock(double bonus) {
this.stock = bonus;
}
public void calc(){
this.setIncome(this.getSalary()+this.getStock());
}
}
public class CalcSimple {
public static void main(String[] args){
//步骤:1.创建实例2.设置相关数据3.调用计算过程4.求值
Worker worker1 = new Worker();
worker1.setSalary(1000);
worker1.setBonus(2000);
worker1.calc();
System.out.println("员工收入:"+worker1.getIncome());
Boss boss1 = new Boss();
boss1.setSalary(1000);
boss1.setStock(10000);
boss1.calc();
System.out.println("老板收入:"+boss1.getIncome());
}
}
class Employee {
//共性:收入与工资
private double income;
private double salary;
public double getIncome() {
return income;
}
public void setIncome(double income) {
this.income = income;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
class Worker extends Employee {
//奖金
private double bonus;
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
public void calc(){
this.setIncome(this.getSalary()+this.getBonus());
}
}
class Boss extends Employee {
//股份
private double stock;
public double getStock() {
return stock;
}
public void setStock(double bonus) {
this.stock = bonus;
}
public void calc(){
this.setIncome(this.getSalary()+this.getStock());
}
}
3、分析总结
一、设计时要注意的问题:
1.1 、先画出空结构
1.2 、想出调用步骤(如:)
1.3 、要按Java开发常用模式进行设计,不要想简单而直接将内部组成(如收留income)设置为public。
二、优点:
2.1 :直接了当,思路清楚。
2.3 、适合小项目以及项目内部开发人员,其它人用要对类之间的关系了解得很清楚才能使用。
三、缺点及其它策略:
3.1 、如果公司有很多人员种类:股东、总经理、项目经理、组长、员工、保安……那么每个都必须完成这种计算方法。
3.2 、另一个策略是:人员只保存基本信息和基本方法,另外再建立一个计算类,专门对各业人员进行计算。
说明:出于学习目的,本系统的设计的整体要求:各个类要完成的的计算在内部完成。