Größe eines Arrays in Konstruktor übergeben (Java)

4 Antworten

Hallo,

ein paar Grundlegende Dinge. Membervariablen sollte man in der Regel nicht gleich definieren sondern nur deklarieren. Die definition (Zuweisung eines Wertes an die Member Variable) sollte in der Regel frühestens im Konstruktor erfolgen.

Weiterhin kann die Zeile

Studenten Daten[] = new Studenten[Anzahl];

nicht funktionieren, da zu dem Zeitpunkt dem Compiler nocht nicht bekannt ist welchen Wert 'Anzahl' hat.

Bei der Deklaration der Member Variablen schreibst Du erstmal nur hin

Studenten Daten[];

und erst im Konstruktor schreibst Du dann

this.Daten = new Studenten[Anzahl];

Auch wenn in der Aufgabenstellung von Arrays gesprochen wird, ist es in der Praxis eher unüblich Arrays zu verwenden, ausser in Spezialfällen in dennen Du bereit im vorherein weißt wie viele Elemente das Array haben wird und wenn Du speziell möglichst schnell auf bestimmte bekannte Index Positionen zugreifen willst, wass bei einer Menge an Studenten eher unwarscheinlich ist. In der Praxis verwendet man viel häufiger Collection Klassen (Listen, Verkettete Listen, Hash Maps, ...). Aber das nur am Rande. Da Du noch relativ am Anfang bist was das lernern angeht, wirst Du eh noch früher oder später darauf stoßen.

Noch viel Spaß beim lernen.

Statt

this.Anzahl=A;

schreibst du

Daten[] = new Studenten[A];
mellielli222 
Fragesteller
 27.10.2014, 21:28

Dankeschön :]

0
Gryphius  27.10.2014, 21:35
@mellielli222

Und Variablen fangen IMMER mit einem kleinen Buchstaben an, Klassen immer mit einem großen, änder das bitte :)

Ansonsten kein Problem, noch weitere Fragen? :D

0
dass ich nicht weiß, wie man die Größe eines Arrays im Konstruktor übergeben soll...

Woher soll man die auch wissen? Das wissen weder die Fraganten noch deine StudienkollegInnen.

Wenn du ein Schachbrett als Array darstellst, weißt du, dass es ein 2D-Array aus 8 x 8 Feldern ist. Bei vielen anderen Arrays kennt man deren Größe nie.

Also nimmt man ein mutable Array und muß den Code ergänzen, der es wachsen bzw. schrumpfen lässt. Das ist dann so …

Ich versteh's nicht ganz. Die Größe (Länge) eines Arrays gibt dir

meinArray.length

Arrays initialisieren tust du mit

meinArray = new MeineKlasse[laenge];