5、一个公司(Company)拥有多个部门(Department)。请用类图表示它们之间的关系;并
1、一个公司(Company)拥有多个部门(Department)。请用类图表示它们之间的关系;并用代码进行实现。
package 面向对象基本概念综合练习;
import java.util.ArrayList;
public class 课堂练习题5 {
class Department {
private String name; // 部门名称
public Department(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
//定义公司类
class Company {
private String name; // 公司名称
private ArrayList<Department> departments; // 公司部门列表
public Company(String name) {
this.name = name;
departments = new ArrayList<>();
}
// 添加部门
public void addDepartment(Department department) {
departments.add(department);
}
// 获取指定名称的部门
public Department getDepartment(String name) {
for (Department department : departments) {
if (department.getName().equals(name)) {
return department;
}
}
return null;
}
public String getName() {
return name;
}
}
//测试代码
public class Test {
public void main(String[] args) {
// 创建公司对象
Company company = new Company("ABC公司");
// 添加部门
company.addDepartment(new Department("财务部"));
company.addDepartment(new Department("销售部"));
company.addDepartment(new Department("人力资源部"));
// 获取部门
Department department = company.getDepartment("销售部");
if (department != null) {
System.out.println("获取部门:" + department.getName());
} else {
System.out.println("没有找到部门");
}
}
}
}
类图如下:
```
+----------+ +----------+
| Company |<>-------o| Department|
+----------+ +----------+
```
代码实现如下:
```java
public class Company {
private List departments;
public Company() {
departments = new ArrayList<>();
}
public void addDepartment(Department department) {
departments.add(department);
}
public void removeDepartment(Department department) {
departments.remove(department);
}
public List getDepartments() {
return departments;
}
}
public class Department {
private String name;
public Department(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
```