Kapselung: Unterschied zwischen den Versionen

Aus FI-Wiki
Die Seite wurde neu angelegt: „== Kapselung == Die '''Kapselung''' (engl. Encapsulation) ist ein Grundprinzip der objektorientierten Programmierung. Dabei werden Daten (Attribute) einer Klasse '''versteckt''' und nur kontrolliert über Methoden (Getter/Setter) zugänglich gemacht. * Direkter Zugriff auf Attribute ist schlecht wartbar und unsicher. * Getter/Setter ermöglichen z. B. Validierung, Zugriffsbeschränkung oder Logging. === Beispiel ohne Kapselung (nicht empfohlen) === <s…“
 
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 22: Zeile 22:
     private String name;
     private String name;


```
    public String getName() {
public String getName() {
        return name;
    return name;
    }
}


public void setName(String name) {
    public void setName(String name) {
    if (name != null && !name.isEmpty()) {
        if (name != null && !name.isEmpty()) {
        this.name = name;
            this.name = name;
        }
     }
     }
}
```


} </syntaxhighlight>
} </syntaxhighlight>

Aktuelle Version vom 27. Oktober 2025, 14:40 Uhr

Kapselung

Die Kapselung (engl. Encapsulation) ist ein Grundprinzip der objektorientierten Programmierung. Dabei werden Daten (Attribute) einer Klasse versteckt und nur kontrolliert über Methoden (Getter/Setter) zugänglich gemacht.

  • Direkter Zugriff auf Attribute ist schlecht wartbar und unsicher.
  • Getter/Setter ermöglichen z. B. Validierung, Zugriffsbeschränkung oder Logging.

Beispiel ohne Kapselung (nicht empfohlen)

public class Kunde {
    public String name;
}

Kunde k = new Kunde();
k.name = "Anna";  // Kein Schutz!

Beispiel mit Kapselung durch Getter/Setter (empfohlen)

public class Kunde {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        if (name != null && !name.isEmpty()) {
            this.name = name;
        }
    }

}

Verwendung

Kunde k = new Kunde();
k.setName("Anna");
System.out.println(k.getName());