2017-08-24 1 views
-1

Ich muss Patientennamen (mit ArrayList) über eine Methode (in der Klasse Krankenhaus) auflisten. Ich habe versucht, den Code zu schreiben, aber ich steckte fest. Zuerst denke ich, ich sollte die Namen in ArrayList hinzufügen und dann denke ich, ich sollte sie zeigen. Aber wie kann ich es tun?Einführung von Elementen in einer Variablen vom Typ 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

Sie haben nie –

+0

Ihr erklärt verwendeten Scanner nicht, aber das ist nicht das Problem, das Problem ist der Code, den ich habe, schreiben die Einführung Name des Patienten mit ArrayList. @ ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ – Michelle

+1

Was willst du mit 'ShowListOfNames'? "Zeigen" (drucken) eine Liste von Namen? Erstellen Sie eine Namensliste? Gibt eine Liste mit Namen an den Anrufer zurück? Es ist überhaupt nicht klar, was Sie zu erreichen versuchen. – ajb

Antwort

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

zu senden. Ja, ich habe die Verwirrung über den Patienten und das Krankenhaus behoben – Michelle

+0

Warum hast du 'final' benutzt? hier: 'für (letzter Patient: this.patients)' – Michelle

+1

Ja. 'final' bedeutet, dass die Variable in ihrem Gültigkeitsbereich nicht neu zugewiesen werden kann. In der enhanced-for-Anweisung befindet sich der Variablenbereich innerhalb des Schleifenblocks und es gibt keine Zuweisung für ihn, also kann es "final" sein ... –

2

Einfache lösungs- verwenden

void ShowListOfNames(List <Hospital> patient) 
{ 
    for(Hospital h:patient) 
     System.out.println(h.getName()); 
    } 
} 
Verwandte Themen