So kannst du Instanzen in Java Klassen zählen
Schlagwörter: Java Instanzen, Java Klasse


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.

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.

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
Schlagwörter: Java Instanzen, Java Klasse, Java Vererbung
Im letzten Beitrag habe ich dir das Java Vererbung Konzept an einem Beispiel vorgestellt. In dem Beispiel-Rollenspiel gab es Klassen zu Helden und Superhelden. Ich habe dir die Vererbungshierarchien theoretisch erläutert. Jetzt geht es ans Praktische. In diesen Beitrag lernst du: Wie du bestehende Java Klassen erweiterst Wie du Objekte […]
Schlagwörter: Java Klasse, Java Methoden, Java Strings
In einen der letzten Beiträge haben wir darüber gesprochen, dass Java Strings – Objekte sind. Dass Strings in allen Programmen äußerst häufig vorkommen Und dass sich deshalb Referenzvariablen String-Objekte im String Pool teilen. Das Konzept hinter dem String-Pool ist die Teilung der Ressourcen. Und das bedeutet: Weniger Objekte – mehr […]
Schlagwörter: Java Instanzen, Java Methoden, Java Programmierung
Du ahnst es. Im letzten Artikel hast du von mir erfahren, wie du ein Java Objekt erstellst und wie du dann auf die Instanzvariablen des Objektes zugreifen kannst. So kannst Instanzmethoden für deine Java Objekte nutzen Bei den Instanzmethoden funktioniert es auch so. Du erschaffst beliebig viele Java Objekte und […]
Schlagwörter: Java Instanzen, Java Übungen
In dieser Java Übung geht es um Objekte und es geht um Referenzvariablen. Es geht um den Zugriff auf Java Objekte durch mehr als eine Referenzvariable. Erstelle dazu eine Java Klasse, namens „ReferenzTest“. Dieser Klasse führt drei Instanzvariablen a, b und c, vom Datentyp Integer.
Schlagwörter: Java Instanzen, Java Klasse, Java Methoden, Java Programmierung
In einen der letzten Beiträge habe ich dir gezeigt, wie du eine Klasse anlegen kannst. Ich habe die Klasse „Mensch“ oder „Human“ angelegt und wir haben die erste Instanzvariable implementiert. Dein Code sollte jetzt so aussehen: public class Human { int size=156;//size in centimeter } In diesem Beitrag werde ich […]
Schlagwörter: Java Klasse
Die Java Klassen Initialisierung durchläuft zwei Phasen. Diese beiden Phasen sind im Grunde genommen, wie die Phasen 2 und 3 bei der Instanz-Initialisierung.
Schlagwörter: Java Klasse, Java Programmierung
Java ist eine objektorientierte Programmiersprache und dieses Konzept setzt auf Java Klassen. Diese Aussage nimm bitte jetzt erst einmal so hin. Ich werde im Laufe des Artikels den Zusammenhang herstellen.
Schlagwörter: Java Klasse, Java Programmierung
Datum und Uhrzeit mit Java. – Wie geht das? Es gibt verschiedene Möglichkeiten das Datum und auch die Uhrzeit in Java darzustellen. Eine Möglichkeit bietet die Java Klasse Calendar. Lass uns einmal einen Blick hinein werfen.
Schlagwörter: Java Instanzen, Java Klasse, Java Programmierung, Java Variablen
Ja, ich fange sämtliche Artikel so an. Und du weißt es mittlerweile. Aber die Java Klassen stellen Baupläne für die Objekte dar, welche du erschaffen willst. Und in so einem Bauplan oder einer Gebrauchsanweisung brauchst du zwingend bestimmte Eigenschaften. Ich habe dir ja im letzten Artikel gezeigt, wie du eine […]
Schlagwörter: Java Instanzen, Java Methoden, Java Übungen
In dieser Java Übung möchte ich dir zeigen, dass du auch in Klassenmethoden auf Objekte und deren Instanzvariablen zugreifen kannst. Schau dir dazu einmal diesen Java Code an. public class Umwandlung { private int x; public int getX() { // getter Methode return x; } public void setX(int x) { […]
Schlagwörter: Java Instanzen, Java Programmierung
Wie werden aus deinen Java Klassen richtig nützliche Java Objekte? Das ganze läuft in vier Phasen ab. Und diese Phasen möchte ich dir in diesem Beitrag vorstellen. Ob das nützlich ist? Schau dir das Bild an. Am Ende dieses Beitrages wirst du wissen, warum Eclipse dir hier eine Fehlermeldung gibt […]
Schlagwörter: Java Instanzen, Java Übungen
In dieser Java Übung geht es um Mahnungen. Ja, Mahnungen zu Rechnungen.
Schlagwörter: Eclipse Programmierung, Java Keyword, Java Klasse, Java Programmierung
Es macht durchaus Sinn deine Java Klassen in verschiedenen Paketen zu organisieren. Wieso? Es sprechen mehrere Gründe dafür: Du kannst doppelte Klassennamen verwenden Du kannst deinen Code oder deine Klassen inhaltlich trennen Du kannst Hierarchien abbilden. Und genau um diese Dinge geht es in diesem Beitrag
Schlagwörter: Java Instanzen, Java Klasse, Java Übungen
In dieser Java Übung, wirst du ein Objekt erstellen.
Schlagwörter: Java Klasse
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 […]
Schlagwörter: Java Instanzen, Java Konstruktor, Java Programmierung
Du kannst deinen Java Konstruktoren auch Objekte übergeben. Bisher haben wir in der Parameterliste lediglich primitive Datentypen übergeben.
Schlagwörter: Java Instanzen, Java Klasse, Java Vererbung
Java Vererbung hat nichts mit Biologie zu tun. Die Genetik besagt, dass bestimmte Merkmalsausprägungen von den Eltern auf die Kinder übergehen. Solche Merkmalsausprägungen sind: die Hautfarbe die Haarfarbe die spezifische Größe und weitere körperliche Merkmale. Und in Java – was ist da Vererbung? Lass es uns herausfinden. Was erwartet dich […]
Schlagwörter: Java Klasse, Java Vererbung
Man kann die ganze Java Vererbung für bestimmte Klassen ausschließen bzw. verhindern oder verbieten. Was soll das? Für bestimmte Java Klassen soll die Vererbung ausgeschlossen werden. Es soll also verhindert werden, dass Elternklassen – Kindklassen bekommen können. Klingt ein bisschen wie Verhütung, oder? Denn wie auch im echten Leben, können […]
Schlagwörter: Java Instanzen, Java Programmierung
Auf Java Objekte greifst du mit einer Art Fernsteuerung zu. Diese bezeichnet man als Referenz oder als Verweis. Und diese Referenzvariablen möchte ich dir jetzt einmal vorstellen. Doch bevor wir loslegen, lass mich noch ein paar Dinge loswerden. Ich habe es ja schon einmal in einem früheren Beitrag erwähnt. Java […]
Schlagwörter: Java Instanzen, Java Speicherverwaltung
Java hat eine interne Speicherverwaltung. Eigentlich ist es nicht nur eine. Es sind mehrere. Uns interessieren nur zwei. Methoden und lokale Variablen werden auf dem Stack verwaltet. Und die Speicherverwaltung für Java Objekte und den Instanzvariablen findet auf dem Heap statt. Ja wieso braucht Java eigentlich zwei Speichersysteme? […]
Schlagwörter: Java Klasse, Java Vererbung
Vererbungsbaum in Java – klingt erstmal komisch. Dennoch wird dies so bezeichnet. Gemeint sind damit – die einzelnen Hierarchiestufen oder Vererbungsebenen – von der Superklasse bis runter zu den Kindklassen. Wie sieht das nun konkret aus? Vererbung bedeutet: Du definierst einen allgemeinen Typen – zB. Möbel Und dann implementierst du […]
Schlagwörter: Java Klasse, Java Vererbung
Bei der Java Vererbung gibt es zwei Klassenarten bzw. -stufen. Die Superklassen, welche einen allgemeinen Typen darstellen Und die spezielleren Unterklassen, welche die Superklasse um bestimmte Funktionen erweitern. Jetzt ist dieses ganze „Der-erbt-von-dem-Konzept“ mitunter sehr schwierig darzustellen. Zum Beispiel in einem Werkzeugkoffer. In einem Werkzeugkoffer befinden sich sämtliche Werkzeuge, von […]
Schlagwörter: Java Instanzen, Java Klasse, Java Programmierung
Lass uns jetzt ein paar Java Objekte erstellen. Im letzten Beitrag habe ich dir gezeigt, was nötig ist um ein Java Programm überhaupt zu starten. Ich habe dir gezeigt, wie du eine zweite Klasse anlegst und die main Methode implementierst. Du hast gesehen, dass die Anweisung, welche wir in die […]
Schlagwörter: Eclipse Programmierung, Java Klasse, Java Programmierung
Java Klassen sind Baupläne für Java Objekte. Und da Java eine objektorientierte Programmiersprache ist, sind Java Klassen somit ein elementarer Bestandteil. In diesem Beitrag möchte ich dir zeigen, wie du eine Java Klasse in Eclipse erstellen kannst. Ich möchte dir außerdem zeigen, was physikalisch in deinem Projekt passiert. Ganz zum […]
Schlagwörter: Java Instanzen, Java Klasse
Die Instanzierung von Java Klassen verhindern. Was heißt das? Instanzen sind die Objekte einer Java Klasse. Und Instanzieren oder Instanzierung heißt nichts anderes, als Objekterstellung. Aber was soll das? Oder mal anders gefragt: Wieso sollte man verhindern, dass eine Java Klasse – Objekte erstellen kann? Schließlich sind doch Objekte der […]
Schlagwörter: Java Klasse, Java Programmierung
Utility Java Klassen – was ist das? Man nennt diese auch Hilfsklassen von Java. Diese Utility Klassen sind Java Klassen, welche lediglich Methoden und Konstanten anbieten. Am Beispiel: Die Klasse Math ist so eine klassische Utility Klasse. Wozu braucht man solche Klassen? Diese Klassen sind so etwas wie ein Werkzeugkoffer […]
Schlagwörter: Java Klasse, Java Programmierung
Java ist eine objektorientierte Programmiersprache. Was heißt das? Ja… Anscheinend hat es etwas mit Objekten zu tun. Also was ist ein Objekt? Ein Objekt ist ein bestimmtes Konstrukt im Programm. Bauen wir ein Spiel. Ein Grafik-Adventure. Du kennst das. Ein Held wird in eine bestimmte Spielwelt hinein gesteckt. Der Held […]
Schlagwörter: Java Instanzen, Java Speicherverwaltung
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.
Schlagwörter: Java Instanzen, Java Klasse, Java Programmierung, Java Variablen
Bei der Java Programmierung unterscheidet man drei Arten von Variablen. Als erste Gruppe sind die lokalen Variablen zu nennen. Auf diese gehe ich in einem separaten Artikel ein. Mich interessieren die zwei anderen Variablentypen. Zum einen existieren Klassenvariablen. Und dann sind da noch die Instanzvariablen. Wo liegt der Unterschied zwischen […]