Klassen Klasse als Komponententyp bei Feldern

Janomikado

Mitglied
Hallo liebe Community, ich würde gerne herausfinden, wie ich meine Klasse Person mit dessen Konstruktor und Attributen entwickeln muss um am Ende sowas einbauen zu können

Java:
Person[] familie = new Person[4];

for (int i = 0; i < 4; i++){
    familie[i] = new Person();
}
    familie[2].vorname = "Hannah";

Bisher habe ich ein paar Sachen ausprobiert, aber kam nicht sonderlich weit und bin dann bei folgendem stehen geblieben

Java:
class Person[] {
    String name, vorname;
    int alter;

    Person[](String n, String v, int a) {
        name=n;
        vorname=v;
        alter=a;
    }
}

Es soll kein konkretes Programm erstellt werden, ich will nur nachvollziehen und verstehen, wie ich die Inhalte meiner Vorlesungsunterlagen in meinen Code und eben in der Klausur einbauen kann. Jedoch habe ich das bisher nur einmal auf den Folien gesehen und sonst bei keiner Praktikumsaufgabe, in keiner Klausur und auch sonst in keiner anderen Veranstaltung wieder gesehen.
 
a) Schau Dir an, wie eine KLasse in Java erzeugt wird! Die Vorgabe ist wirklich einfach von wegen erst dem class und denn der Bezeichner. Und ein Bezeichner darf natürlich keine [] enthalten!

b) wenn du das geändert hast: Schau Dir einmal an, wie Instanzen mit new erzeugt werden. Was ist da in Bezug auf die Konstruktoren zu beachten? (Wenn Du den punkt a korrigiert hast, dann wird dir der Compiler vermutlich auch weiterhelfen!) https://openbook.rheinwerk-verlag.de/javainsel/03_004.html#u3.4 kann auch helfen.
 
Nein, Person soll ein benutzerdefinierter Typ (Klasse) sein, die eine(!) Person repräsentiert. Das wäre dann class Person- ohne die eckigen Klammern. Später kannst Du Variablen dieses Typs deklarieren, z. B. Person einePerson. Dabei kannst Du auch mehrere Personen in einem Array von Personen verwalten. Ein Array deklarierst Du dann mit den eckigen Klammern: Person[] mehrerePersonen.

Wenn Du die eckigen Klammern weglässt, wäre Person übersetzbar. Und dann hast Du in Person nur einen Konstruktor, der drei Parameter erwartet. Deshalb funktioniert new Person() nicht, weil keine Argumente angegeben wurden. Entweder änderst Du den Code, der die Person erzeugt, beispielsweise zu new Person("", "", 0) oder aber Du fügst Deiner Person-Klasse einen parameterlosen Konstruktor hinzu.
 

Neue Themen


Zurück
Oben