Wie gebe ich nach Erzeugung eines Objektes ein "int" Array im BlueJ-Methodenaufruf ein?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

du musst dem Array immer eine feste Größe zuweisen

int[] arr = new int[100];

oder

int[] arr = {10,12,55,33};

Wenn du ein bestehendes Array hast, dann kannst du die Größe über .lenght abfragen.

int laenge = arr.lenght;
SweatTechnique 
Fragesteller
 16.06.2018, 12:58

Vielleicht liegt es an der Formulierung. Hier ein Bild wie es aussieht. In dem unteren Feld müsste ich quasi die Größe zuweisen die das Array bekommen soll.

Wenn ich in die geschweiften Klammern aber eine Zahl einfüge, dann erstellt er jedesmal nur ein Array der Größe 1 (also mit 2 Felder) und fügt den Wert den ich eingegeben habe in das Feld mit dem Index 1.

https://picload.org/view/dopaoaii/intarray1.jpg.html

Ich verstehe auch nicht wieso er das tut.

0
SweatTechnique 
Fragesteller
 16.06.2018, 13:04
@user373h383

Der muss in BlueJ doch gar nicht festgelegt werden. Der erhält ja beim Aufruf der Methode seinen Wert für die Größe.

0
SweatTechnique 
Fragesteller
 16.06.2018, 13:17
@user373h383

Oh, lol. Jetzt klappt es. Man muss wirklich für jeden Index den Wert initialisieren. Klar, das er dann nur 1 Feld erzeugt. Übrigens hatte ich mich verguckt. Es war nur ein einziges Feld im Array, was ja auch rückblickend logisch ist. Bei einem Wert den ich eingegeben habe. :-D

Danke sehr!

0
user373h383  16.06.2018, 13:20
@SweatTechnique

Ja, ohne Index-Zuweisung weiß der Compiler nicht, wie groß das Array werden soll. Er kann ja schlecht raten :D

0
user373h383  16.06.2018, 13:40
@SweatTechnique

Dss wäre schwierig, weil das gegen die Definition eines Arrays stehen würde. Ein Array muss bei der Erzeugung genau wissen wie groß es ist, die Größe darf sich zur Laufzeit nicht mehr ändern. Genau dafür gibt es ja Listen usw :D

0