Java und eindimensionale Arrays
Letztens habe ich mich ein wenig mit Java auseinander gesetzt und dabei mit Arrays und Objekten gearbeitet. Dabei war mir die Deklaration von Arrays eine kleine Hürde. Deklariert man einen Array so public int[2] testArray; oder so public int[] testArray; ? Nun ja, mit diesem Beitrag will ich euch irgendwie behiflich sein oder einfach gute
Lektüre bieten.
Was sind Arrays?
Ergänzungshalber stelle ich diese grundgelegende Frage trotzdem. Ein Array ist eine Art Variable, die mehrere Variablen in sich trägt. Ein Array ist eigentlich nur der Zeiger auf den Speicherbereich der einzelnen Elemente.
Bsp: MeinPersonenArray = {”Hansi”,”Michi”,”Wursti”}
MeinPersonenArray[0] beinhaltet “Hansi”
MeinPersonenArray[1] beinhaltet “Michi”
MeinPersonenArray[2] beinhaltet “Wursti”
Wurde ein Array erstmal erstellt, so kann es im Java nicht mehr vergrössert oder gekürzt werden.
Strings
Strings sind keine Arrays, obwohl sie einzelne Elemente beinhalten und zwar die Buchstaben. String und char sind zwei verschiedene Datentypen.
Strings können aber als String-Arrays definiert werden. Quasi wie eine Garage in der die Autos parkiert werden. Nur ist hier das String-Array die Garage und die Strings im String-Arrays sind die Autos. Klar? Nein? Hier ein kleines Bildchen zur Hilfe.
Der Java-Code für die Deklaration eines String wie im obigen Bild würde folgendermassen aussehen.
public String[] string_array = new String[3];
Der Befehl “String[] string_array” sagt “Hey! Mache ein Array, das string_array heisst und in dem Strings gespeichert werden.”. Und durch “= new String[3];” wird der Speicher für drei Elemente des String-Arrays reserviert.
Anzahl Elemente in Array mit Konstruktoren bestimmen
Hier ein Java-Code, der mittels Konstruktoren die Anzahl Elemente in enem Array bestimmt.
Im Prinzip wird zuerst ein Array bei den Klasseneigenschaften deklariert (ohne Speicher zu reservieren). Anschliessend wird beim Konstruktor ein Parameter übergeben, der die Anzahl der Elemente bestimmen soll. Dann wird für das deklarierte Array der Speicherbereich reserviert. Hoffe man kann den Code verstehen, hab es versucht nicht allzu schwer zu machen.
Hier die Klasse auto…
//Code by www.klajo.com
public class auto {
//Eigenschaften eines Autos
public String marke;
public insasse[] personenInAuto;
public int anzInsassen;
public String[] string_array = new String[2];
//Konstruktor der Klasse auto
auto(String marke, int anzInsassen, String fahrerName) {
this.marke = marke;
this.anzInsassen = anzInsassen;
this.personenInAuto = new insasse[this.anzInsassen]; //Konstruktor der Klasse
//insasse aufrufen und über die Eigenschaft anzInsassen die Anzahl
//Elemente des Arrays insasse setzen
this.personenInAuto[0] = new insasse(fahrerName, true);
for(int i = 1; i < anzInsassen; i++) {
this.personenInAuto[i] = new insasse("BeifahrerNr" + i, false);
}
}
//Der Start des Programmes
public static void main(String[] args) {
auto meinAuto = new auto("BMW",3,"Klaudio"); //Konstruktor der Klasse Auto
//aufrufen
meinAuto.ausgabePersonenInAuto();
}
//Insassen ausgeben
public void ausgabePersonenInAuto() {
System.out.println("Im " + this.marke + " sind folgende Insassen:");
for(int i = 0; i < this.anzInsassen; i++) {
System.out.println(this.personenInAuto[i].name);
}
}
}
Hier die Klasse insasse…
//Code by www.klajo.com
public class insasse {
//Eigenschaften eines Insassen
public String name;
public Boolean fahrer;
//Konstruktor der Klasse insasse
insasse(String name, boolean fahrer) {
this.name = name;
this.fahrer = fahrer;
}
}






