Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
JavaBasiscs Verständnisproblem: Aufgabe zu Klassen
Habe Probleme eine Aufgabe zu bearbeiten. Kann mir jemand auf die Sprünge helfen? Was ist mit "bis dato instanziiert" gemeint?
Implementieren Sie eine Klasse Count, die eine statische Methode print() besitzt, welche ausgibt, wie
viele Objekte der Klasse Count bis dato instanziiert worden sind.
Es soll gezählt werden wie viele Objekte vom Typ der Klasse erzeugt worden sind. Also wie oft der Konstrutor (zum Beispiel "KlasseX objectXyz = new KlasseX(); )" aufgerufen worden und damit neue Objekte erzeugt worden sind.
Klassen sind der "Bauplan" für Objekte. Objekte sind Instanzen einer Klasse, die du z.B. mit "new" erzeugst. Die Methode print () soll ausgeben, wie viele Objekte einer Klasse bereits erstellt wurden.
in der main ..
Klasse.print() --> gibt 0 zurück weil es noch kein Objekt "Klasse" gibt
Klasse k1 = new Klasse();
Klasse.print() --> gibt 1 zurück weil es eben jetzt ein Objekt vom Typ Klasse gibt
Klasse k2 = new Klasse();
Klasse.print() -> gibt 2 zurück ...usw
Ich will jetzt gar nicht behaupten, dass das korrekter Java-Code ist aber genau das soll es ja auch nicht sein
Ich denke mal, dass die Aufgabe helfen soll, den Unterschied zwischen static und non static Methoden und Variablen zu verdeutlichen. Ich würde die Anzahl daher in einer statischen Variable speichern, auf die vom Konstruktor und print zugegriffen werden kann.
eine klasse ist wie ein backrezept, je nach dem wieviele kuchen du backst mit diesem rezept, so viele instanzen hast du.
MeineKlasse klasse(backform)=new MeineKlasse();(teig)
In der Praxis wird so etwas eher nicht vorkommen. Über den Sinn und Unsinn solcher Aufgabenstellungen lässt sich trefflich sinnieren. Aber die Aufgabe ist klar formuliert und soll dazu dienen, sich mit dem Unterschied zwischen Instanz und statischem Raum von Klassen zu befassen.