2016-04-27 38 views
1

不确定我应该如何添加到数组中,我被要求从测试文件中填充数组,但是在类Patient中定义它。有任何想法吗?将对象从测试文件添加到类中的数组?

public class Patient 
    { 
    private String name; 
    private int id; 
    private int current = 1; 
    public Patient(String name, int id) 
    { 
     this.name = name; 
     this.id = id; 
     Patient[] patient = new Patient[100]; 
     String[] Observations; 
     System.out.print(patient[0]); 
    } 
    public String addPatient(String name,int id) 
    { 
    Patient[current-1] = new Patient(name,id); 
    } 
} 

// extract from class PatientRecordSystem 
public void addPatient() 
{ 
    String name = "James"; 
    int id = 10122; 
    Patient patient = new Patient(name, id); 
} 
+1

您没有在类Patient中定义数组,您将其定义为类Patient的特定构造函数的局部变量。 – SomeJavaGuy

回答

1

你的问题是,你正在定义该列表(或数组)到您的Patient类的构造函数患者持有的对象。

这在许多层面上都是错误的。首先 - 一个“患者”应该完全相同 - 代表一个患者。当你去看医生并成为一名病人时......你是否被要求了解其他约100名患者?!然后:在构造函数中定义的那个数组......只是在构造函数的执行期间存在。它只要一通电话就立即消失

Patient newPatient = new Patient(...) 

返回。

换句话说:您想要考虑另一个负责“管理”多个患者的类。然后你创建“耐心的对象”;并告诉经理他们。然后,那个“经理”就会使用一个数组(或者更好一些更具动态性的List)来跟踪“受管理”的病人。

-2

首先你需要声明数组。如果你知道数组的大小

Patient[] patients = new Patient[100]; 

你可以这样做。

如果你想建立一个动态数组,因为你不知道有多少元素,你可以做这样的事情。

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

然后你就可以将值分配给数组:

如果你已经声明了一个固定的数组,你可以做这样的事情:

患者[0] =新患者(姓名,身份证) ;

在另一方面,如果你已经声明了一个动态数组,代码如下所示:

patients.add(new Patient(name, id)); 
+1

只是代码,没有解释;然后绝对不**帮助他解决问题......做出非常糟糕的回答。 – GhostCat

+0

@Jägermeister你是对的,我认为答案很清楚,不需要任何解释。但是,让我们假设被问到的人对编程知之甚少。我将修改我的答案。 –

+1

询问的人说他刚刚开始学习java。另外:你从来不知道谁会在稍后阅读你的问题/答案。您应该**总是**尝试写出与您在问题中可以观察到的“专业水平”相匹配的内容。除此之外,您的答案会导致“原始类型”警告,因为您忘记了<<>';它甚至不编译,因为没有方法'Add()'。猜猜看:需要一些**工作来推动你的声誉;不只是向其他人抛出一些不好的代码。哇,即使重做的答案仍然使用错误的代码。 – GhostCat

0

不管安德鲁说是正确的,只是让您轻松。使用下面的代码

public class Patient 
    { 
    private String name; 
    private int id; 
    private int current = 1; 
    private Patient[] patient = new Patient[100]; 
    public Patient(String name, int id) 
    { 
     this.name = name; 
     this.id = id; 

     String[] Observations; 
     System.out.print(patient[0]); 
    } 
    public String addPatient(String name,int id) 
    { 
    patient[current-1] = new Patient(name,id); 
    } 
} 

// extract from class PatientRecordSystem 
public void addPatient() 
{ 
    String name = "James"; 
    int id = 10122; 
    Patient patient = new Patient(name, id); 
}