public class Konto { // IBAN einmal vergebbar, nachträglich NICHT ÄNDERBAR! public final long IBAN; // Diese kritischen Daten sind zu schützen: Sollen // nicht beliebig verändert werden können, // z.B. immer >= 0 bleiben (Kein Dispo) // mit private kann nur noch von Funktionen INNERHALB // der Klasse Konto auf diese Variablen zugegriffen werden! /* public */ private int betrag_euro; /* public */ private int betrag_cent; // Wie benötigen nun Funktionen, um den Kontostand lesen // und ändern zu können. S. weiter unten. // Konstruktor public Konto() { System.out.print("Neues Konto wird erzeugt: " + this); IBAN = (long)(Math.random() * 1000000000000000L); System.out.println(", IBAN: " + IBAN); betrag_euro = betrag_cent = 0; } // Konstruktor mit Parameter! public Konto(int euro, int cent) { //super() ruft den Default-Konstruktor des // ÜBERGEORDNETEN Objekts auf // this() ruft den eigenen Konstruktor ohne // Parameter auf. this(); // s.o. Konto(), hier wird IBAN gesetzt betrag_euro = euro; betrag_cent = cent; System.out.println("Konto aufgeladen mit " + betrag_euro + "," + betrag_cent); } // Destruktor, wird automatisch aufgerufen, wenn ein // Objekt gelöscht wird. protected void finalize() { System.out.println("Das Konto mit der IBAN " + IBAN + " wurde gelöscht."); } public int get_betrag_euro() { return betrag_euro; // Innerhalb Konto erlaubt! } public int get_betrag_cent() { return betrag_cent; // Innerhalb Konto erlaubt! } public boolean add_betrag_euro(int betrag) { // Sicherheitsabfrage: Genug Geld auf dem Konto? if(betrag_euro + betrag < 0) { System.out.println("Auftrag verweigert!"); return false; } betrag_euro += betrag; return true; } }