Skip to main content

So kannst du Instanzen in Java Klassen zählen

Wie kannst du die Instanzen der Java Klassen zählen?
Ganz einfach.

Am besten ist es, wir bleiben beim Einführungsbeispiel zu den Java Klassen.

Und ich wähle die Klasse „Monster“.
Um es einfach zu halten, soll auch der Programmstart durch die Klasse erfolgen.

Die Klasse bietet somit eine main-Methode an.


public class Monster {

	public static void main(String[] args) {

	}
}

Also dann mal los. 🙂

Um Instanzen von Java Klassen zählen zu können, musst du diese speichern.

Ganz klar – Du musst die Anzahl speichern.
Um speichern zu können, brauchst du eine Variable.

Doch in welcher?
Ich sage es dir: In einer Klassenvariablen.

Wieso?
Schau dir das Bild dazu an.

Java Klassen Instanzen zählen Instanzvariablen

In der Klasse Monster legst du die Instanzvariablen für ein Monster an.
Das könnten sein:

  • Die Größe
  • Die Farbe
  • Die Stärke

Da es sich um Instanzvariablen handelt, bekommt jedes Monster einen individuellen Wert.
Und zwar für jede Instanzvariable.
Denn Instanzvariablen gehören zum Objekt.

Java Klassen Instanzen zählen Eigenschaften

Du kannst auch sagen, dass Instanzvariablen die Eigenschaften der Monster darstellen.

Und Klassenvariablen gehören zu allen Objekten.
In diesen Variablen würdest du Werte speichern, welche für alle Monster gelten.

Damit meine ich nicht, dass alle Monster blau sind.
Dies ist wieder eine Monstereigenschaft.

Aber ein Wert wäre die Gesamtstärke aller Monster oder eben die Anzahl.
Diese Werte wären keine individuellen Monsterwerte.
Oder willst du Monster haben, welche als Eigenschaft eine Anzahl haben? 🙂

Welchen Datentypen sollte die statische Variable haben?
Die Anzahl wird ganzzahlig sein – Also Integer.

Und so sieht es bisher aus:


public class Monster {
	static int anzahlMonster;//Klassenvariable zum Zählen der Instanzen
	
	public static void main(String[] args) {

	}
}

Die Variable, welche die Instanzen der Java Klassen zählt, muss im Konstruktor verändert werden.

Um Java Objekte anzulegen benötigst du einen Konstruktor.
Bei jedem Aufruf des Konstruktor soll dann die Klassenvariable „anzahlMonster“ um eins erhöht werden.

Also – Was brauchst du?

  • Einen Konstruktor.
    Im Rumpf des Konstruktors wird die Variable erhöht.
  • Du brauchst Monster.
    In der main-Methode werden zwei Monster angelegt.
    Somit wird der Konstruktor zweimal aufgerufen.

Und so geht’s.


public class Monster {
	static int anzahlMonster;

	/*
	 * Im Konstruktor soll jetzt die Variable erhöht werden
	 */
	Monster() {
		anzahlMonster++;// Bei jedem Konstruktoraufruf um eins erhöhen
	}

	public static void main(String[] args) {
		Monster monster1 = new Monster();// Monsterobjekt - Konstruktor wird einmal aufgerufen
		Monster monster2 = new Monster();// neues Monsterobjekt- zweiter Aufruf des Konstruktors
	}
}

Und so kannst du dir die gezählte Anzahl der Instanzen zurückgeben lassen.

Jetzt hast du die Anzahl der Objekte gespeichert.

Du möchtest aber die Information erhalten, wie viele Monster-Objekte im Programm vorhanden sind.
Die gezählten Objekte kannst du dir direkt im Konstruktor zurückgeben lassen.
Somit bekommst du gleich eine Info direkt bei der Erstellung der Instanz.


public class Monster {
	static int anzahlMonster;

	/*
	 * Im Konstruktor soll jetzt die Variable erhöht werden
	 * Bildschirmausgabe gibt Anzahl zurück
	 */
	Monster() {
		anzahlMonster++;
		System.out.println(anzahlMonster + ". Monster angelegt");//Info
	}

	public static void main(String[] args) {
		Monster monster1 = new Monster();
		Monster monster2 = new Monster();
	}
}

Oder du erstellst eine Methode, welche dir die Information liefert.
Im Falle einer Bildschirmausgabe, erstellst du eine void-Methode.


public class Monster {
	static int anzahlMonster;

	Monster() {
		anzahlMonster++;
		System.out.println(anzahlMonster + ". Monster angelegt");//Info
	}
	
	static void gibInfo(){
		System.out.println("Anzahl Monster: "+ anzahlMonster);
	}

	public static void main(String[] args) {
		Monster monster1 = new Monster();
		Monster monster2 = new Monster();
		
		gibInfo();//Aufruf der Methode
	}
}

Wichtig ist, dass du diese Methode statisch machst- also als Klassenmethode.
Dadurch musst du kein unnötiges Objekt anlegen, um diese Methode aufzurufen.

Zusammenfassung:

  • Wenn du Instanzen der Java Klassen zählen möchtest, musst du eine Variable anlegen.
  • Bei jedem Anlegen eines neuen Objektes wird die Variable im Konstruktor hochgezählt.
  • Da diese Variable für alle Instanzen zuständig ist, muss diese statisch sein.

Ähnliche Beiträge

So verwendest du Inkrement und Dekrement Operatoren in deinen Java Programmen

Java Operatoren

In diesem Beitrag geht es um Java Operatoren. Ich möchte dir gern zwei neue Operatoren vorstellen. Diese nennen sich Inkrement und Dekrement. Ja was heißt das? Inkrementieren bedeutet eine schrittweise Erhöhung einer Zahl. Und dementsprechend bedeutet Dekrementieren: Die schrittweise Verminderung einer Zahl. Wozu brauchst du das? Stell dir vor. Du bekommst eine Liste mit Namen […]

Overriding und Vererbung – So lassen sich Java Methoden überschreiben

Java Methoden überschreiben

In Deutschland entstehen jeden Tag tolle Geschichten. So wie diese hier…. Die größte Turmuhr der Welt, die Makkah Clock, steht in Saudi – Arabien. Und zwar direkt in Mekka. Hier ein paar Eckdaten zur Uhr: Höhe des Turmes 601 m. Das Ziffernblatt der Turmuhr hat einen Durchmesser von 43 Meter Die Länge des Minutenzeigers beträgt […]

So kannst du Java installieren

Java installieren

Bevor du loslegst und deine ersten Java Programme schreibst, benötigst du die entsprechende Arbeitsumgebung. Du solltest also Java installieren. Und diese Arbeitsumgebung beinhaltet dann Bibliotheken für die einzelnen Java-Standard-Klassen, Dateien um deine Programme auszuführen. Dateien um deine Programme zu packen, Logische Verzeichnisstrukturen

So verwendest du den Java Oder Operator

Java Oder Operator

Kennst du das auch aus deiner Schulzeit? Du schreibst eine Klassenarbeit in irgendeinem Fach. Nehmen wir einfach mal an – Mathe. Jetzt bist gerade fertig mit deiner Arbeit. Und zu Hause wirst du gefragt: „Und wie lief es?“ Du antwortet:“ Ganz gut. Es wird bestimmt eine Eins oder eine Zwei.“ Drei oder vier Tage später […]

Java For Each Schleife – Aufbau und Funktionsweise

Java for each Schleife

In einer anderen Lektion habe ich dir bereits gezeigt, wie du ein Java Array mit einer for-Schleife füllen und dir später die Werte zurückgeben lassen kannst. Es gibt allerdings einen weiteren Schleifentyp, welche geradezu prädestiniert ist für Java Arrays. Dieser Schleifentyp nennt sich for each Schleife. In diesem Beitrag möchte ich dir zeigen, wie du […]

Über das kurze Leben einer lokalen Variablen

Java Variable lokal

Lass uns über die Lebensdauer einer lokalen Variablen sprechen. Warum ausgerechnet die Lebensdauer? Alle Java Variablen, unterscheiden sich in folgenden Punkten: wo diese deklariert werden können, wie du diese aufrufen kannst, welchen Bereich diese abdecken, und Ihre Lebensdauer Und eine lokale Java Variable hat eine relativ kurze Lebensdauer. Schauen wir uns zuerst Klassen- und Instanzvariablen […]

Zwei smarte Möglichkeiten eine Java Zufallszahl zu erzeugen

Java Zufallszahl

Java Zufallszahl – Wieso? In der Java Programmierung benötigst du immer wieder einmal Zufallszahlen. Du möchtest deine Software mit Daten testen und dir keine Zahlen ausdenken. Du benötigst Stichproben, welche ein reales Verhalten simulieren. Du hast ein Spiel entworfen und die Akteure sollen mit zufälligen aber unterschiedlichen Größen, Rüstungsleveln usw. auftreten. Die Einsatzmöglichkeiten für Zufallszahlen […]

So lassen sich Java Arrays kopieren

Java Arrays kopieren

Java Arrays kopieren oder klonen…. Was heißt das eigentlich? Eine Kopie ist eine Reproduktion bzw. die Nachbildung eines Originals. Somit ist jede Fotographie – die Abbildung einer bestimmten optischen Wirklichkeit, zu einem festen Zeitpunkt. Die Kopie einer Buchseite ist das optische Abbild dieser spezifischen Buchseite – auch zu einem festen Zeitpunkt. Wichtig in diesem Zusammenhang […]

So kannst du Eclipse installieren

Eclipse installieren

Das Schöne an Eclipse ist, es läuft auf sämtlichen Betriebssystemen. Eclipse wird einfach auf der Webseite des Herstellers herunter geladen und kann dann installiert werden. Dabei stehen dir verschiedene Versionen zur Verfügung.