5、一個(gè)公司(Company)擁有多個(gè)部門(Department)。請用類圖表示它們之間的關(guān)系;并
1、一個(gè)公司(Company)擁有多個(gè)部門(Department)。請用類圖表示它們之間的關(guān)系;并用代碼進(jìn)行實(shí)現(xiàn)。
?
?
?
?
package?面向?qū)ο蠡靖拍罹C合練習(xí);
?
import?java.util.ArrayList;
?
public?class?課堂練習(xí)題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) {
????????// 創(chuàng)建公司對象
????????Company company?= new?Company("ABC公司");
?
????????// 添加部門
????????company.addDepartment(new?Department("財(cái)務(wù)部"));
????????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|
+----------+ +----------+
```
代碼實(shí)現(xiàn)如下:
```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;
}
}
```