阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某公司的组织结构图如图17—9所示,现采用组合(Composition)设计模式来设计,得到如图17—10所示的类图。 其中Company为抽象类,定义了在组织结构图上添

admin2014-11-13  58

问题 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某公司的组织结构图如图17—9所示,现采用组合(Composition)设计模式来设计,得到如图17—10所示的类图。

其中Company为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分公司/办事处或者部门的方法接口。类ConcreteCompany表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类HRDepament和FinanceDepartment分别表示人力资源部和财务部。
[Java代码]
importjava.util.*:
(1)Company{
protectedStringname;
publicCompany(Stringname)(2)=name;}
DublicabstractvoidAdd(Companyc);//增加子公司、办事处或部门
DublicabstractvoidDelete(Companyc);//删除子公司、办事处或部门
}
C1assConcreteCompanyextendsCompany{
privateList<(3)>children=newArrayList<(4)>();
//存储子公司、办事处或部门
publicConcreteCompany(Stringname){super(name);)
publiCvoidAdd(Companyc)((5).addc;)
publicvoidDelete(Companyc)((6).remove(C);)
}
C1assHRDepartmentextendsCompany(
publiCHRDepartment(Stringname)(super(name);)
//其他代码省略
}
C1assFinanceDepartmentextendsCompany(
publicFinanceDepartment(Stringname)(super(name);)
//其他代码省略
}
publiCClassTest{
publicstatiCvoi‘dmain(String[]args)(
c。ncretecompanyroot=newconcretecompany(“北京总公司”);
root.Add(newHRDepartment(”总公司人力资源部”));
root.Add(newFinanceDepartment(“总公司财务部”));
concretecompanycomp=newcOncretecompany(“上海分公司”);
comp.Add(newHRDepartment(“上海分公司人力资源部”));
comp.Add(newFinanceDepartment(“上海分公司财务部”));
(7);
ConcreteCompanycompl=newconcretecompany(”南京办事处”);
compl.Add(newHRDepartment(”南京办事处人力资源部”));
compl.Add(newFinanceDepartment(”南京办事处财务部”);
(8);//其他代码省略
}
}

选项

答案(1)ahstractclass (2)this.name (3)Company (4)Company (5)children (6)children (7)root.Add(comp) (8)comp.Add(compl)

解析 Company为抽象类,所以(1)肯定为.abstractclass:
(2)所在的语句为构造函数,用来对name字段进行初始化;
子公司、办事处或部门都是Company这个抽象类的具体实现,所以(3)处为compally(4)处为Company;
(5)处所在的语句的作用是向Company列表的实例children中添加节点;
(6)处所在的语句的作用从Company列表的实例childrenqb删除节点;
(7)处所在的语句的作用把上海分公司这个子节点加入到北京公司总部这个跟节点中;
(8)处所在的语句的作用将南京办事处这个子节点加入到上海分公司这个父节点中。
转载请注明原文地址:https://jikaoti.com/ti/O0i7FFFM
0

相关试题推荐
最新回复(0)