02 Datenkapselung

Datenkapselung #

Zugriffsmodifikatoren in Java: das Wichtigste #

Attribute und Methoden von Objekten können versteckt werden (private), oder bewusst öffentlich (public) gemacht werden:

class Spardose {
    private double erspartes;

    public void zahleEin(double betrag) {
        this.erspartes += betrag;
    }

    public double zahleAus(double betrag) {
        if (this.erspartes >= betrag) {
            this.erspartes -= betrag;
            return betrag;
        }
        return 0.;
    }
}

Grund dafür: die Attribute sollen nicht von außen auf unmögliche oder unsinnige Werte gesetzt werden. (Die Daten des Objekts sollen konsistent bleiben.)

Zugriffsmodifikatoren in Java: nicht ganz so wichtig, aber gut zu wissen… #

Daneben gibt es noch den Modifizierer protected. Von außen kann nicht mehr zugegriffen werden, aber aus dem gleichen Package (grob: aus dem gleichen Verzeichnis) schon. Außerdem können Klassen, die eine solche Klasse erweitern (von ihr erben), auf protected-Attribute und Methoden zugreifen.
Wenn kein Modifizierer angegeben ist, ist die Sichtbarkeit Package-private.
Übrigens können auch Klassen mit Modifizierer vorkommen! (Nur in Ausnahmefällen sind die aber private.) Meist werden Klassen als public deklariert.
Methoden, die private gesetzt werden, sind oft Hilfsmethoden, deren Implementierung sich gelegentlich ändern kann.
Sollen doch einmal Attributwerte mehr oder weniger direkt verändert oder ausgelesen werden, geschieht das über sogenannte Getter- und *Setter-*Methoden.