Kapselung: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== 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.
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.


Zeile 6: Zeile 4:
* Getter/Setter ermöglichen z. B. Validierung, Zugriffsbeschränkung oder Logging.
* Getter/Setter ermöglichen z. B. Validierung, Zugriffsbeschränkung oder Logging.


=== Beispiel ohne Kapselung (nicht empfohlen) ===
== Beispiel ohne Kapselung (nicht empfohlen) ==


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
Zeile 16: Zeile 14:
k.name = "Anna";  // Kein Schutz! </syntaxhighlight>
k.name = "Anna";  // Kein Schutz! </syntaxhighlight>


=== Beispiel mit Kapselung durch Getter/Setter (empfohlen) ===
== Beispiel mit Kapselung durch Getter/Setter (empfohlen) ==


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
Zeile 34: Zeile 32:
} </syntaxhighlight>
} </syntaxhighlight>


=== Verwendung ===
== Verwendung ==


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">

Version vom 12. Januar 2026, 13:58 Uhr

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());