/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* TH Koeln, Fakultaet IME */ /* http://www.nt.th-koeln.de/vogt */ /* */ /* Das Programm zeigt am Beispiel von Bankkonten die Benutzung */ /* des Klassenkonzepts, insbesondere */ /* - Definition von Klassen mit klassen- und objektbezogenen */ /* Attributen / Methoden sowie oeffentlichen und privaten */ /* Attributen, */ /* - Erzeugung und Loeschung von Objekten */ /* (siehe hierzu Datei KontoTestGraf.java) und */ /* - Vererbung mit Nutzung und Ueberschreiben von Methoden der */ /* Superklasse */ /* (siehe hierzu Datei GeschuetztesKonto.java). */ /* Eine fensterorientierte Testumgebung befindet sich in der */ /* Datei KontoTestGraf.java. */ /***************************************************************/ /**************************************************************** Die Klasse 'Konto' ist die Basisklasse fuer Konten. Sie enthaelt als Attribute - die Anzahl existierender Konten (klassenbezogen) und - den Kontostand (objektbezogen). Sie ermöglicht mit ihren Methoden - das Erzeugen eines Kontos mit Ersteinzahlung, - die Abfrage der Anzahl der existierenden Konten, - die Abfrage des Kontostands, - das Einzahlen und - das Abheben (sofern ausreichend Deckung vorhanden). *****************************************************************/ class Konto { /* 'anzahlKonten' (klassenbezogenes Attribut) gibt die Anzahl existierender Konten an */ static private int anzahlKonten = 0; /* 'stand' gibt den aktuellen Kontostand an */ private double stand; /* Konstruktor 'Konto()': setzt Anfangsstand auf 'initBetrag' und erhoeht 'anzahlKonten' um 1 */ Konto(double stand) { this.stand = stand; anzahlKonten++; } /* Destruktor 'finalize()': senkt 'anzahlKonten' um 1 */ protected void finalize() throws Throwable { anzahlKonten--; System.out.println("Konto geloescht"); } /* 'getAnzahlkonten()' liefert Anzahl der Konten (klassenbezogene Methode) */ static public int getAnzahlKonten() { return anzahlKonten; } /* 'abfragen()' liefert aktuellen Kontostand */ public double abfragen() { return stand; } /* 'einzahlen()' erhoeht Kontostand um Einzahlungsbetrag 'betrag' */ public void einzahlen(double betrag) { stand += betrag; } /* 'abheben()' senkt Kontostand um Abhebebetrag 'betrag', wenn Kontostand dafuer ausreicht. liefert ausgezahlten Betrag oder -1, wenn Abheben nicht erfolgreich. */ public double abheben(double betrag) { if (betrag<=stand) { stand -= betrag; return betrag; } else return -1; } }