课时67:案例分析二(管理人员与职员)
摘要:今天我分享的是关于 Java 编程中管理人员与职员的案例分析,用于巩固继承概念。主要分为以下三部分。
1. 案例需求说明
2. 代码实现过程
3. 测试纠错与总结
01. 案例需求说明
本次进行关于管理人员和职员的案例分析。要求定义一个员工类,该员工类应包含姓名、年龄、性别等属性,同时具备构造方法和显示数据的方法。
此外,需定义管理层类和职员类,管理层类要继承员工类,并拥有自身特有的职务和年薪属性;职员类同样继承员工类,其特有的属性为所属部门和月薪。
02. 代码实现过程
在编写代码时,遵循先专注于父类,暂不考虑子类的原则。对于员工类,确定其包含姓名(name)、年龄(age)和性别属性。在一般开发中,若未对性别类型作特殊要求,使用 Sex 表示性别且采用字符串类型更为实用。
接着编写员工类的构造方法,至少应包含一个无参构造方法,以及一个参数为 Name 、 Age 和 Sex 的有参构造方法,在有参构造方法中,将传入的参数赋值给对应的属性。此外,还需编写一个获取信息的方法GetInfo,在该方法中,将姓名、年龄、性别等信息拼接后返回。员工类的代码如下:
class Employee { private String name; private int age; private String sex; // 无参构造方法 public Employee() { } // 有参构造方法 public Employee(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } // 获取信息方法 public String getInfo() { return "姓名:" + name + ",年龄:" + age + ",性别:" + sex; } }
完成员工类的编写后,开始编写管理层类Manager,该类继承自员工类Employee。管理层类除继承员工类的属性外,还拥有职务(job)和年薪(income)属性。其构造方法的参数包含员工类的参数,以及职务和年薪参数。在构造方法中,先调用父类的构造方法为员工类的属性赋值,再为职务和年薪这两个新属性赋值。
同时,重写获取信息的方法GetInfo,先调用父类的GetInfo方法获取员工类的信息,再拼接职务和年薪的信息后返回。管理层类的代码如下:
class Manager extends Employee { private String job; private double income; // 构造方法 public Manager(String name, int age, String sex, String job, double income) { super(name, age, sex); this.job = job; this.income = income; } // 重写获取信息方法 @Override public String getInfo() { return super.getInfo() + ",职务:" + job + ",年薪:" + income; } }
最后编写职员类 Clerk ,该类同样继承自员工类Employee。职员类拥有所属部门(department) 和 月薪(salary) 属性。其构造方法和获取信息方法的编写逻辑与管理层类相似,先调用父类构造方法为员工类属性赋值,再为所属部门和月薪这两个新属性赋值;重写获取信息方法,将员工类信息与所属部门、月薪信息拼接后返回。职员类的代码如下:
class Clerk extends Employee { private String department; private double salary; // 构造方法 public Clerk(String name, int age, String sex, String department, double salary) { super(name, age, sex); this.department = department; this.salary = salary; } // 重写获取信息方法 @Override public String getInfo() { return super.getInfo() + ",所属部门:" + department + ",月薪:" + salary; } }
代码编写完成后进行测试。创建一个管理层对象和一个职员对象,并为其赋予相应的值。例如,管理层对象为“张三”, 38 岁,职务为“主管”,年薪 150000 ;职员对象为“李四”, 18 岁,性别为“男”,所属部门为“出纳”,月薪 3000 。然后分别调用它们的GetInfo方法,将信息打印出来。测试代码如下:
public class Main { public static void main(String[] args) { Manager manager = new Manager("张三", 38, "", "主管", 150000); Clerk clerk = new Clerk("李四", 18, "男", "出纳", 3000); System.out.println(manager.getInfo()); System.out.println(clerk.getInfo()); } }
03.测试纠错与总结
在编译运行代码时,发现程序出错。经检查,第 32 、 35 行存在问题,原因是缺少Class 关键字。添加该关键字后,又发现创建了两个管理层对象,不符合要求,应一个为管理层对象,一个为职员对象。
修正这些问题后,程序能够正常运行。该案例旨在帮助巩固继承的概念,整体逻辑较为简单。感谢大家的观看!