EMZETT.
Login

Modifiers

Kurz: Schlüsselwörter vor einer Klasse, Methode oder Variable, die deren Sichtbarkeit und Verhalten festlegen — z. B. public, private, static, final.

Genauer: Die Zugriffsmodifier regeln, von wo aus etwas erreichbar ist: public (überall), protected (Paket + Unterklassen), ohne Modifier/“package-private” (nur im selben Paket) und private (nur in derselben Klasse). static bindet ein Element an die Klasse statt an einzelne Objekte, final macht eine Variable unveränderlich bzw. eine Klasse/Methode nicht mehr erweiterbar/überschreibbar.

Im Detail

public class Konto {
    private double saldo;              // nur innerhalb dieser Klasse sichtbar
    protected String kontoTyp;          // Klasse + Paket + Unterklassen
    String beschreibung;                // "package-private" (kein Modifier) - nur im selben Paket
    public String inhaber;              // von überall sichtbar
 
    private static int anzahlKonten = 0; // gehört der KLASSE, geteilt über alle Instanzen
    public static final double MIN_SALDO = 0.0; // Konstante: static + final kombiniert
 
    public final void gesperrteMethode() { // final = kann NICHT überschrieben werden
        System.out.println("Diese Implementierung ist fix");
    }
}
 
public final class UnveraenderlicheKlasse { } // final auf Klassenebene = keine Unterklassen erlaubt

Die vier Sichtbarkeitsstufen bilden eine klare Hierarchie von “am wenigsten offen” bis “am meisten offen”: private (nur dieselbe Klasse) < package-private/kein Modifier (nur dasselbe Paket) < protected (Paket + Unterklassen, auch außerhalb des Pakets) < public (überall). Faustregel bei der eigenen Klassengestaltung: so restriktiv wie möglich starten (private) und nur bei tatsächlichem Bedarf öffnen — das ist Kapselung in der Praxis. static final in Kombination (wie MIN_SALDO oben) ist das gängige Muster für echte Konstanten: static, weil der Wert unabhängig von einzelnen Objekten gilt, final, weil er sich nach der Initialisierung nie mehr ändert.

Siehe auch: Encapsulation, Classes, Constants (final)