系统通过Java的封装、继承与多态实现部门员工管理,设计Employee基类并由Staff和Manager继承,Department类管理员工列表,支持增删查及信息展示。

部门员工管理系统是面向对象编程中常见的实战项目,通过Java的继承与封装特性,可以清晰地组织员工信息和部门结构。这个系统不仅能帮助理解类的设计原则,还能提升对多态、访问控制等核心概念的应用能力。
1. 系统需求分析
系统需要管理多个部门,每个部门包含若干员工。员工分为普通员工和经理两类,具有姓名、工号、薪资等基本信息。经理除了基本属性外,还有额外的奖金字段。要求实现以下功能:
定义员工基类,封装共用属性和方法通过继承扩展经理类创建部门类来管理所属员工提供添加、删除、查询员工的方法输出员工信息时体现多态性
2. 类设计与封装实现
使用private修饰字段,通过public的getter/setter方法进行安全访问,确保数据完整性。
立即学习“Java免费学习笔记(深入)”;
// 员工基类(抽象类)abstract class Employee { private String id; private String name; private double salary;public Employee(String id, String name, double salary) { this.id = id; this.name = name; this.salary = salary;}// 封装的getter/setterpublic String getId() { return id; }public void setId(String id) { this.id = id; }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 abstract void showInfo();
}
绘蛙AI修图
绘蛙平台AI修图工具,支持手脚修复、商品重绘、AI扩图、AI换色
285 查看详情
立即学习“Java免费学习笔记(深入)”;
// 普通员工类class Staff extends Employee { public Staff(String id, String name, double salary) { super(id, name, salary); }@Overridepublic void showInfo() { System.out.println("员工[" + getId() + "] " + getName() + ",薪资:" + getSalary());}
}
// 经理类class Manager extends Employee {private double bonus;
public Manager(String id, String name, double salary, double bonus) { super(id, name, salary); this.bonus = bonus;}public double getBonus() { return bonus; }public void setBonus(double bonus) { this.bonus = bonus; }@Overridepublic void showInfo() { System.out.println("经理[" + getId() + "] " + getName() + ",基础薪资:" + getSalary() + ",奖金:" + bonus);}
}
3. 部门类的设计与员工管理
Department类负责维护员工列表,利用ArrayList存储员工对象,并提供增删查操作。
立即学习“Java免费学习笔记(深入)”;
import java.util.ArrayList;import java.util.List;class Department {private String deptName;private List employees;
public Department(String deptName) { this.deptName = deptName; this.employees = new ArrayList();}// 添加员工public void addEmployee(Employee emp) { employees.add(emp); System.out.println("已添加员工:" + emp.getName());}// 根据工号删除员工public boolean removeEmployee(String id) { return employees.removeIf(e -> e.getId().equals(id));}// 查询员工public Employee findEmployeeById(String id) { for (Employee e : employees) { if (e.getId().equals(id)) { return e; } } return null;}// 显示所有员工信息(体现多态)public void listAllEmployees() { System.out.println("\n--- " + deptName + " 所有成员 ---"); for (Employee e : employees) { e.showInfo(); // 自动调用对应类型的showInfo() }}
}
4. 主程序测试
编写主类验证系统功能是否正常运行。
立即学习“Java免费学习笔记(深入)”;
public class DeptSystem { public static void main(String[] args) { Department itDept = new Department("IT技术部"); // 创建不同类型员工 Staff s1 = new Staff("S001", "张三", 8000); Manager m1 = new Manager("M001", "李四", 15000, 5000); // 添加到部门 itDept.addEmployee(s1); itDept.addEmployee(m1); // 查看全部 itDept.listAllEmployees(); // 查询特定员工 Employee found = itDept.findEmployeeById("M001"); if (found != null) { System.out.println("找到员工:" + found.getName()); } // 删除员工 boolean removed = itDept.removeEmployee("S001"); if (removed) { System.out.println("删除成功"); } itDept.listAllEmployees();}
}
基本上就这些。通过合理运用封装保护数据,使用继承减少重复代码,再结合集合管理对象,一个结构清晰的小型管理系统就完成了。这种设计便于后期扩展,比如增加职位层级或统计功能。不复杂但容易忽略细节,比如构造函数中的super调用和null判断。实际开发中还可以加入异常处理和输入验证来增强健壮性。
以上就是Java实现部门员工管理系统_继承与封装综合实战的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1083113.html
微信扫一扫
支付宝扫一扫