zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Der Compiler sieht, dass wir versuchen von außerhalb des Objekts auf private Daten zuzugreifen. Er lässt und wissen, was er darüber denkt:

compiling: BankkontoTester.java
BankkontoTester.java:46:
Variable kontostand in class Bankkonto not accessible from class BankkontoTester.
         System.out.println( bobsKonto.kontostand );
                                        ^
BankkontoTester.java:47:
Variable kontostand in class Bankkonto not accessible from class BankkontoTester.
         bobsKonto.kontostand = bobsKonto.kontostand + 200;
                    ^
BankkontoTester.java:47:
Variable kontostand in class Bankkonto not accessible from class BankkontoTester.
         bobsKonto.kontostand = bobsKonto.kontostand + 200;
                                          ^
BankkontoTester.java:48:
Variable kontostand in class Bankkonto not accessible from class BankkontoTester.
         System.out.println( bobsKonto.kontostand );
                                        ^
4 errors

Sorgfältige Zugangskontrolle

Es mag etwas unsinnig erscheinen, dass die Bankkonto-Klasse private verwendet, um die main() Methode davon abzuhalten ihre Variablen zu sehen und dann einige Methoden zur Verfügung stellt, so dass main() sie dann doch bekommt. Aber die Idee dabei ist, dass die Zugriffsmethoden jeden Zugang zu den privaten Daten überprüfen können. Zum Beispiel kann ein Programmierer den Kontostand eines Bankkontos nicht erhöhen, indem er schreibt:

bobsKonto.kontostand = bobsKonto.kontostand + 200;

Um den Kontostand zu erhöhen, muss die verarbeiteEinzahlung() Methode verwendet werden, in der in einem besser ausgearbeiteten Programm überprüft werden könnte, ob das Konto nicht gesperrt ist, ein Kennwort übergeben werden muss, bevor sie irgend etwas ändert und jede Änderung in eine Log-Datei schreiben könnte.

Dadurch, dass die Daten als private deklariert werden und die Verwendung von Zugriffsmethoden erzwungen wird, ist es leichter Objekte konsistent und bugfrei zu halten. Das ist in etwa wie das Hineinstecken der gesamten TV-Elektronik in eine Box, wobei es dem Benutzer nur erlaubt ist Dinge über Kontrolltasten von außerhalb der Box zu ändern. TV-Geräte würden nicht lange halten, wenn Benutzer gewohnheitsmäßig Kanäle ändern, indem sie die Elektronik des Geräts mit einem Schraubenzieher bearbeiten.

FRAGE 5:

(Gedächtnistest: ) Welchen Geldbetrag muss ein Kunde auf seinem Bankkonto haben, damit die Scheckgebühr entfällt?