public class KontoTest { public static void main(String[] args) { // Wir erzeugen 10 Konten for(int i=0; i<10; i++) new Konto(); System.gc(); // Nicht referenzierte (zugewiesene) Konten wieder löschen // Wir erzeugen 10 Konten, und speichern die // Objektadressen in einem Array Konto[] k = new Konto[10]; for(int i=0; i<10; i++) // Wir verwenden den 2. Kontruktor, der // schon mal Geld aufbucht k[i] = new Konto(50,50); // IBAN von Konto Nr. 9 ausgeben System.out.println(k[9].IBAN); // k[9].IBAN = 0; // Geht nicht, da IBAN read-only (final) Konto k2 = new Konto(); // Erzeugen Konto tmp = k2; // tmp zeigt immer noch auf das Konto k2 = null; // Kein Zugriff über k2 mehr möglich // -> Kann aber wegen tmp NICHT gelöscht werden. System.gc(); // Nächstes Experiment: Kann man den Kontostand "einfach so" // beeinflussen? // Geht zwar (noch), aber schlechter Stil, weil: // - keine Gegenbuchung automatisch möglich // - negativ-Beträge ohne Dispo??? // - Kein Plausibilitätscheck // k[0].betrag_euro = -100; // Geht nicht mehr, da private // System.out.println(k[0].betrag_euro); System.out.println("Kontostand: " + k[0].get_betrag_euro() + "€ ," + k[0].get_betrag_cent() + "¢"); // k[0].betrag_euro += 100; // Nicht erlaubt, da private! // add_betrag_euro(betrag) ist die erlaubte // Veränderungs-Funktion, die die Werte überprüft. boolean ok = k[0].add_betrag_euro(-100); System.out.println("100 Euro abuchen? " + ok); Geschaeftskonto gk = new Geschaeftskonto(1000,0); gk.add_betrag_euro(1000); System.out.println(gk); } }