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 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.

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 […]

Java Methoden mit variabler Argumentenanzahl – VarArgs

Java Methoden mit variabler Argumentenanzahl VarArgs

Du kennst das noch. Kopfrechnen und zwar auf Zeit. So etwas ist das Standardprogramm in den Schulklassen 1 bis 5. Irgendwann, in Klasse 6 oder 7, kommt der Taschenrechner ins Spiel und Kopfrechnen ist aus dem Schulalltag gestrichen. Schade eigentlich. Dabei kann man diese Disziplin auch wunderbar in kleinen Spielen unterbringen. Ich erinnere mich noch: […]

Java Übung 18: Berechne die Fakultät

Java Übung Fakultät

In dieser Java Übung geht es um die Fakultät aufeinander folgender Zahlen. Für alle, bei denen der Mathe-Unterricht genauso lange her ist, wie bei mir: 🙂 Die Fakultät ist das Produkt aufeinander folgender natürlicher Zahlen. Zum Beispiel: Die Fakultät von 2 ist: 1*2=2 Die Fakultät von 5 ist: 1*2*3*4*5=120 So – ich hoffe, dass ich […]

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

10 ganz nützlichen Feature der Klasse Java Math

In diesem Beitrag geht es um eine spezielle Java Klasse. Die Klasse nennt sich Java Math. Diese ist in der Standardbibliothek von Java enthalten. Warum solltest du diese Klasse kennen? Die Math Klasse bietet dir einen Menge Methoden an, welche zur Berechnung von mathematischen Gleichungen ganz hilfreich sind. Aber auch für Nichtmathematiker ist etwas dabei. […]

So lassen sich Java Strings in char zerlegen

Java Strings zerlegen char

Java Strings sind Zeichenketten. Und diese Zeichenketten lassen sich aufsplitten und in ihre Einzelteile zerlegen. Ich möchte dir in diesem Beitrag Möglichkeiten vorstellen, wie du Strings in Character-Datentypen zerlegen, extrahieren und die Einzelteile in Arrays speichern kannst.

Nutze das Java Switch Case Statement für komplexe Verzweigungen

Java Switch case

Java switch case statement – was ist das? Wozu brauchst du das? Lass mich anders beginnen… 🙂 In einen meiner früheren Beiträge habe ich schon einmal über bedingte Anweisungen oder Zuweisungen geschrieben. Diese if und else Konstrukte funktionieren eigentlich ganz gut. Aber was ist, wenn du mehrere Parameter abfangen möchtest. Okay ein Beispiel…

Drei Möglichkeiten um Java Objekte zu zerstören

Java Objekte zerstören

Java Objekte leben genau solange, wie eine Referenzvariable auf sie zeigt. Wenn dieser Zeiger nicht mehr existiert, wird dieses Objekt aufgeben. Und wenn dieses Objekt erst einmal aufgegeben wurde, dann kommt der Garbage Collector und entsorgt dieses. Aber wie kannst du nun am Sinnvollsten Objekte aufgeben? Lass es uns herausfinden.

Das Java Leben ist einfacher mit For-Schleife

Java For Schleife Aufbau

In einem anderen Artikeln habe ich bereits über Schleifen in Java gesprochen. In diesem Artikel möchte ich dir eine ganz besondere Schleife vorstellen. Warum ist diese so toll? Sie hat einen integrierten Schleifenzähler. Die Schleife zählt also bei jedem Durchlauf automatisch mit. Aber dazu gleich mehr…. Lass uns einmal so eine For Schleife anlegen.