Ja. Die Idee der Kapselung ist es, Details eines Objekts vor anderen Bereichen der Software zu verbergen. Einige der Details können Methoden sein.
class KontoChecker
{
// Daten-Deklaration
private String kontoNummer;
private String kontoInhaber;
private int kontoStand;
private int zaehler = 0; //zaehlt wie oft das Konto verwendet wird
private void inkrementZaehler()
{
___________________
}
void verarbeiteEinzahlung( int betrag )
{
inkrementZaehler();
kontoStand = kontoStand + betrag ;
}
void verarbeiteAuszahlung( int betrag )
{
int gebuehr;
inkrementZaehler();
if ( kontoStand < 100000 )
gebuehr = 15;
else
gebuehr = 0;
kontoStand = kontoStand - betrag - gebuehr ;
}
}
Eine private Methode ist eine Methode, die nur von anderen Methoden des Objekts verwendet werden kann. Teile eines Programms außerhalb des Objekts können private Methoden des Objekts nicht direkt aufrufen (verwenden).
Angenommen die Bank möchte aufzeichnen wie oft ein
Bankkonto verwendet wird.
(Das könnte als Sicherheitsmaßnahme geschehen.)
Die "Verwendung" eines Bankkontos ist
die Verarbeitung eines Guthabens oder eines Schecks.
Um das zu erreichen wird den Daten der KontoChecker-Klasse ein "Zähler" hinzugefügt.
(Teile der Klasse wurden vorübergehend ausgelassen.)
Die Methoden verarbeiteEinzahlung() und
verarbeiteAuszahlung() rufen
inkrementZaehler() auf, um die Variable zaehler
jedes Mal dann zu erhöhen, wenn sie verwendet wurde.
Wir wollen die Variable zaehler nur aus diesen zwei Gründen
ändern, also wird die Methode inkrementZaehler() private deklariert
(und die Variable zaehler wird ebenfalls private deklariert.)