Eine gute Antwort könnte sein:

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

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

Sorgfältige Zugangskontrolle

Es mag ein bisschen töricht erscheinen, dass die KontoChecker-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, in dem 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 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?