gpt4 book ai didi

java - Java中的ArrayList多态性

转载 作者:行者123 更新时间:2023-12-01 17:45:13 25 4
gpt4 key购买 nike

我有一份关于医院管理系统的作业。我已经完成大部分工作,但我有一个关于多态性的问题。在我的项目中,我有 6 个类(class)和 1 个测试类(class)。这 6 个类别是医生、门诊病人、住院病人、病人和个人。 Doctor 和 Patient 类扩展 Person 类,In/OutPatient 类扩展 Patient 类。我的老师说,医生现在只有 1 个患者列表,其中可以添加住院患者和门诊患者(多态性)。该列表是私有(private)定义的。因此,新添加的 addPatient/removePatient 方法将用于在该列表中添加/删除患者。

我怎样才能做到这一点?我必须在哪个类(class)写入/门诊数组列表。这是我的代码

Doctor.java

public class Doctor extends Person{

private int staffId;
private double salary;

public ArrayList<Patient> patients = new ArrayList<Patient>();

public ArrayList<Inpatient> inpatients = new ArrayList<Inpatient>();
public ArrayList<Outpatient> outpatients = new ArrayList<Outpatient>();
...
public void addPatient(Patient a) {
JFrame j=new JFrame();

for (int i = 0; i < patients.size(); i++) {
if ( (patients.get(i)).getRegistrationId() == a.getRegistrationId()) {
JOptionPane.showMessageDialog(j,"Patient already added before!");
return;
}
}

patients.add(a);
}

public void removePatient(int registrationId) {
for (int i = 0; i < patients.size(); i++) {
if (patients.get(i).getRegistrationId() == registrationId) {
patients.remove(i);
}
}
}

测试.java

public static void main(String args[]){
...
Doctor d = new Doctor(111222, "ali", 50, "m", "ankara", 6000); //staffId, name, age, sex, address, salary
h.addDoctor(d);
Inpatient in = new Inpatient(333444, "veli", 32, "m", "istanbul", 345.40, 410);
d.addPatient(in); //Inpatient in is registered to Doctor d.
Outpatient out = new Outpatient(555666, "helin", 28, "f", "izmir", 610.35);
d.addPatient(out); //Outpatient out is registered to Doctor d.

...

最佳答案

我认为,您老师的意思是,您根本不需要住院患者门诊列表。当您创建患者数组列表时,您可以在其中包含两个患者,因为它们扩展了Patient类。

关于java - Java中的ArrayList多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56208423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com