logo

Programmieren oder so ähnlich


Java und eindimensionale Arrays

Posted in Java, Programmieren allgemein von admin am 18. Aug. 2007

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.klajo.com - Java und eindimensionale Arrays

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;
	}

}

Kommentar hinterlassen:


Blogverzeichnis - Blog Verzeichnis bloggerei.de blog-o-rama.deSuchmaschinenoptimierung mit Ranking-Hits supported by www.rankingcloud.de Blog Top Liste - by TopBlogs.de Free Games

Add to Technorati Favorites Sofortkredit ohne Schufa