Deklaration, Initialisierung von Arrays

Hallo www,

in meinem Versuch Java zu lernen, bin ich immer wieder auf verschieden Arten gestossen, wie Arrays deklariert und initialisiert werden.

Typ A
char [] liste = new char [2];
liste [0] = a;
liste [1] = b;

Typ B
liste = new char [] {a,b};

Typ C
char [] liste = {a,b};

Frage
Mit dem bisschen Javawissen, das ich habe, habe ich mir Folgendes zusammengereimt: Typ A und Typ B sind gleichwertig.
In Typ C wird keine Instanz angelegt, es handelt sich darum um ein „statisches Array“.

Ist dies so richtig?

Vielen Dank für eure Antworten.

Liebe Grüsse
Andrea

Hallo Andrea,

ein Array ist ein Array, egal wie es angelegt wird.

Statisch ist eine ganz andere Baustelle. Wenn du statische Variabeln oder Methoden innerhalb deiner Klasse angelegt hast, musst du kein Objekt dieser Klasse erzeugen, sondern kannst direkt darauf zugreifen. Stichwort: static.

Typ A und B kannst du immer verwenden, wenn du ein Array erstellen willst. Typ C kann nur beim Erzeugen der Variabel benutzt werden.

char[] liste = {'a', 'b'};
**liste = {'c', 'd'};**

funktioniert nicht, obwohl sich die Größe des Arrays nicht verändert.

**liste = new char[] {'c', 'd'};**

funktioniert, da ein neues Array erstellt wird und nur das Ziel der Variabel geändert wird.

Mit freundlichen Grüßen
clobberstone

Hallo clobberstone,

vielen Dank zum Zweiten! Jetzt ist es klarer, Schritt um Schritt komme ich Java etwas näher.

Liebe Grüsse
Andrea