一。实验要求
一、模拟某医院管理科室部门:
1.抽象部门类Dept
Dept基本属性:编号id,名称name,类型(门诊/住院)type,描述description;
Dept类的成员方法:无参构造函数,以上述前三个属性为参数的构造函数;
上述四个属性的getter和setter方法
初始化类
2.门诊部门类OutpatientDept
OutpatientDept继承自抽象部门类,追加地址address属性;
OutpatientDept的成员方法:无参构造函数,编号、名称、类型、地址为参数的构造函数
重写toString方法,实现门诊部门属性信息的控制台打印。
3.住院部门类InpatientDept
InpatientDept继承自抽象部门类,追加病区ward属性;
InpatientDept的成员方法:无参构造函数,编号、名称、类型、院区为参数的构造函数,
重写toString方法,实现住院部门属性信息的控制台打印
由于继承的子类有新的属性,需要新的getter和setter以及新的双层构造函数,也就是super
继承——新
重写的tostring方法:
public String tostring(){ return "门诊科室id为"+getId()+"科室名称为"+getName()+"科室描述为"+getDes()+"科室位置在"+getAddress(); } public String tostring(){ return "住院科室id为"+getId()+"科室名称为"+getName()+"科室描述为"+getDes()+"科室病区在"+getWard(); }
4.医院管理类Hospital
Hospital应包含集合类型的成员变量用于存储各个科室部门;
Hospital的成员方法:显示当前医院所有科室部门showDept(),添加部门addDept(),删除
部门delDept()。
二、在测试类的main方法中实现:
1.创建若干门诊与住院部门对象实例
我们思考一下,作为一个医院,门诊与住院部门这种东西应该是早就存在的,所以我们设置一个初始化部门的函数,来初始化我们的部门——setDept
2.按照科室的类型将科室添加到医院对应部门集合中
直接调用之前Hos类的addDept函数,由于不同的形参类型,自动添加到了对应部门类型的集合中
3.按照科室类型以及科室id在医院对应部门集合中移除指定部门
我们将函数设置为moveDept,调用Hos类的delDept函数即可
public static void delDept(String type, Integer id) {
iff (Objects.equals(type, "门诊")) {
or (int i = 0; i < Hos.OutpatientDeptlist.size(); i++) {
OutpatientDept o = Hos.OutpatientDeptlist.get(i);
if (o.getId() == id) {
Hos.delDept(o);
System.out.print("删除成功");
}
}
}else if (Objects.equals(type, "住院")) {
for (int i = 0; i < Hos.InpatientDeptlist.size(); i++) {
InpatientDept o = Hos.InpatientDeptlist.get(i);
if (o.getId() == id) {
Hos.delDept(o);
System.out.print("删除成功");
}
}
}else {
System.out.print("不存在此类型");
}
}
4.展示医院当前所有部门
直接调用Hos类的showDept就可以了
5.main函数
二。结果展示
具体操作