Instanz einer Klasse erstellen



  • Guten Morgen,

    gleich vorweg : bin blutiger Anfänger in Java !

    Folgendes Problem :
    Ich lese in einer while-Schleife Namen ein, die über die
    Tastatur eingegeben werden. Dann habe ich mir eine einfache
    Klasse 'Person' erstellt. Nun möchte ich nach folgendem Schema
    die neuen Instanzen benennen :

    System.out.print("Wieviele Datensätze : ");
    		anzahl=IO.readInt();
    
    		String[] name = new String[anzahl];
    
    		while(i<anzahl){
    			System.out.println("Name Student "+i+" : ");
    			name[i]=IO.readLine();
    			[b]Student name[i] = new Student();[/b]
    			i++;
    

    Grundsätzlich ist der Fehler für mich nachvollziehbae, da name[i]
    ja ein Array ist, aber ich weiß leider nicht, wie ich das in Java
    schreiben muss, dass der Compiler versteht, was ich gerne möchte.

    Thx im voraus !



  • Moin,

    Student name[i] = new Student();
    

    Das kann so nicht aufgerufen werden, da das Array von Studenten noch nicht existiert, sprich Du hast es noch nicht deklariert.
    Außerdem verwendest Du 2x die Variable "name", was das Ganze undurchschaubar macht.

    Deshalb solltest Du - genauso wie Du es mit dem String-Array machst - vorweg das Studenten-Array erstellen, außerhalb der Schleife:

    Studenten stud[] = new Studenten[anzahl];
    

    Der Zugriff erfolgt dann ebenso über:

    stud[i] = new Student();
    

    Da ich annehme, Dein Konstruktor der Student-Klasse erwartet eventuell auch einen String, kannst Du dem aktuellen Studenten gleich seinen Namen zuweisen:

    stud[i] = new Student(name[i]);
    

    Ich hoffe, Dich korrekt verstanden zu haben...

    Gruß,
    Xan



  • @Xandro

    Vielen Dank ! Hat mir sehr geholfen und ich komme in
    meinem Programm nun weiter !

    Also nochmal THX !


Anmelden zum Antworten