children. Remove(d) public override List<Department> getChildren( return this children; J public class HRDepartment Department public HRDepartment(string name)I this name = name oublic override void add (Department d)t public override void delete(Department d)I public override List<Department> getChildreno return null public class FinanceDepartment Department public Finance Department(string name) this name name: 1 public override void add(Department d) ublic override void delete(Department d) ublic override List<Department>getChildreno[ return null class program static void Display (Department department Console. WriteLine(department. Name) if(department. getChildren!=null foreach (Department d in department. getChildren o) Display (d) static void Main(string[] args) ConcreteDepartment college new ConcreteDepartment("Taze 工程学院") college,add( new HRDepartment("人事处") ConcreteDepartment cs Department new ConcreteDepartment( 计算机与信息科学系") csDepartment. add( new ConcreteDepartment("软件工程教研室 )) sePartment.add( new ConcreteDepartment("信息管理教研室 ))
16 children.Remove(d); } public override List<Department> getChildren() { return this.children; } } public class HRDepartment : Department { public HRDepartment(string name) { this.name = name; } public override void add(Department d){} public override void delete(Department d){} public override List<Department> getChildren() { return null; } } public class FinanceDepartment : Department { public FinanceDepartment(string name) { this.name = name; } public override void add(Department d){} public override void delete(Department d){} public override List<Department> getChildren() { return null; } } class Program { static void Display(Department department) { Console.WriteLine(department.Name); if (department.getChildren()!=null) { foreach (Department d in department.getChildren()) { Display(d); } } } static void Main(string[] args) { ConcreteDepartment college = new ConcreteDepartment("福建 工程学院"); college.add(new HRDepartment("人事处")); ConcreteDepartment csDepartment = new ConcreteDepartment(" 计算机与信息科学系"); csDepartment.add(new ConcreteDepartment("软件工程教研室 ")); csDepartment.add(new ConcreteDepartment("信息管理教研室 "));
ConcreteDepartment basicDepartment = new ConcreteDepartment("计算机基础教研室") basicDepartment.add( new ConcreteDepartment("计算机一级教 研组"); basicDepartment.add( new ConcreteDepartment("计算机二级教 研组")); csDepartment. add(basic Department college. add((4)) college.add( new FinanceDepartment("财务处"); Display((5));/打印整个学院各部门名称 【程序输出结果】 CA\ C: Windows\system 32\cmd.exe 建工程学院 与信息科学系 请按任意键继续 (3)【说明】 类 Universitylist提供了只读的属性用于访问类中常量字段 count;提供了索引器用于读取或设置类中数组型字段 university Name,该索引器有个int型索引参数,在索引器中需判断 该索引参数,如果超出[0~9]范围,则抛出一个异常,异常信息为“索 引下标越界
17 ConcreteDepartment basicDepartment = new ConcreteDepartment("计算机基础教研室"); basicDepartment.add(new ConcreteDepartment("计算机一级教 研组")); basicDepartment.add(new ConcreteDepartment("计算机二级教 研组")); csDepartment.add(basicDepartment); college.add( (4) ); college.add(new FinanceDepartment("财务处")); Display( (5) ); //打印整个学院各部门名称 } } } 【程序输出结果】 (3)【说明】 类 UniversityList 提供了只读的属性用于访问类中常量字段 count ; 提 供 了 索 引 器 用 于 读 取 或 设 置 类 中 数 组 型 字 段 universityName,该索引器有个 int 型索引参数,在索引器中需判断 该索引参数,如果超出[0~9]范围,则抛出一个异常,异常信息为“索 引下标越界