2017-08-24 11 views
-1

メソッド(クラスの病院内)で患者名(ArrayListを使用)をリストアップする必要があります。コードを書き込もうとしましたが、スタックしました。まず、ArrayListに名前を追加する必要があると思いますが、私はそれらを表示する必要があると思います。しかし、どうすればいいですか?ArrayList型の変数に要素を導入する

class Hospital 
{ Patient p; 


class Patient 
{ 

private String name,adress; 
private int age,phoneNumber,securityNumber; 
private char sex; 

Patient(String name,char sex,String adress,int age,int 
phoneNumber,int securityNumber) 
{ 
this.name=name; 
this.adress=adress; 
this.age=age; 
this.sex=sex; 
this.phoneNumber=phoneNumber; 
this.securityNumber=securityNumber; 
} 

String getName() 
{ 
    return name; 
} 
void setName(String nam) 
{ 
name=nam; 
} 

void ShowListOfNames(List <Patient> pat) 
{ 
for(Patient h:pat) 
    System.out.println(h.getName()); 
    } 
} 


} 



public class Tarea23_1ago 
{ 
public static void main(String[] args) 
{ 
Scanner x=new Scanner(System.in); 
List <Patient> pat=new ArrayList <Patient>(); 
pat.add(new Patient("dan",'f',"nuyoo",12,2356445,001)); 
pat.add(new Patient("fredy",'m',"idk",34,34657,002)); 
pat.add(new Patient("dan",'m',"west",21,345546,003)); 



} 
+1

あなたがいないあなたの宣言スキャナ –

+0

を使用したことがないが、それは問題ではない、問題は、私が紹介して書かなければならないコードです患者の名前はArrayListを使用します。 @ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ – Michelle

+1

'ShowListOfNames'に何をしたいですか?名前のリストを「表示」(印刷)しますか?名前のリストを作成しますか?呼び出し元に名前のリストを返しますか?あなたが達成しようとしていることはまったく明確ではありません。 – ajb

答えて

1
// First of all, these data are of a patient, not of a hospital, so I renamed the class... 
public class Patient 
{ 
    private String name,address; 
    private int age, phoneNumber, securityNumber; 
    private char sex; 

    // No need a no-argument-constructor 
    public Patient(String name, char sex, String address, int age, int 
      phoneNumber, int securityNumber) 
    { 
     // Just to remember: Java generates a super() call even if you do not write it out 
     super(); 
     this.name = name; 
     this.address = address; 
     this.age = age; 
     this.sex = sex; 
     this.phoneNumber = phoneNumber; 
     this.securityNumber = securityNumber; 
    } 

    public String getName() { return name; } 
    public void setName(String name) { this.name=name; } 
} 

// Now comes the part that is about more patients. Could be named a hospital... 
public class Hospital 
{ 
    // A list of patents 
    private final List<Patient> patients = new ArrayList<>(); 

    // Prints out the names of the patents on the list 
    public void showListOfNames() 
    { 
     for(final Patient : this.patients) 
     { 
      System.out.println(patient.getName()); 
     } 
    } 

    // The main method. It does not have to be in a separated class... 
    public static void main(String[] args) 
    { 
     final Scanner x = new Scanner(System.in); // Still not in use... 
     final Hospital h = new Hospital(); // our hospital instance, with the list of patients 

     // Adding patents to the hospital's list 
     h.patients.add(new Patient("dan",'f',"nuyoo",12,2356445,001)); 
     h.patient.add(new Patient("fredy",'m',"idk",34,34657,002)); 
     h.patient.add(new Patient("dan",'m',"west",21,345546,003)); 

     // Printing out the names 
     showListOfNames(); 
    } 

} 
+0

はい患者と病院についての混乱も修正しました – Michelle

+0

なぜ「最終」を使用しましたか?ここで: 'のために(最終患者:this.patients)' – Michelle

+1

はい。 'final'は変数がそのスコープ内で再割り当てできないことを意味します。 enhanced-forステートメントでは、可変スコープはループのブロックの内側にあり、割り当てはありませんので、 'final'にすることができます... –

2

シンプル溶液 - 使用この

void ShowListOfNames(List <Hospital> patient) 
{ 
    for(Hospital h:patient) 
     System.out.println(h.getName()); 
    } 
} 
関連する問題