# Kapselung nich vollständig umgesetzt in Java?



## thaag (10. Mrz 2009)

Hallo,
ich bin grad bei der Abivorbereitung und dabei ist mir folgendes aufgefallen.
Kapselung erfolgt ja generell auf Klassenebene.

Ich habe ein Objekt a1 der Klasse A und ein Objekt a2 der Klasse B und B ist eine Unterklasse von A.

Wenn in A jetzt Attribute mit der Sichtbarkeit protected versehen sind müssen diese doch definitionsgemäß in allen Klassen und Unterklassen von A sichtbar sein. Das heißt folgendes müsste funktionieren:


```
// In Klasse kapselung.package2.B:

kapselung.package1.A a1 = new kapselung.package1.A();
System.out.println(a1.protectedVariable);
```

Tja das fuunktioniert aber nicht, man kann in B natürlich mit this.protectedVariable auf die Variable im eigene Objekt zugreifen aber das wäre ja dann wieder auf Objektebene und die Kapselung sollte ja theoretisch auf Klassenebene stattfinden.

Nun meine Frage: Bin ich da irgendwie grad auf dem Holzweg oder ist die Kapselung da einfach schlecht umgesetzt in Java?

Gruß Tobi


----------



## Ebenius (10. Mrz 2009)

Die Sichtbarkeit bei  _protected_ beschränkt sich auf die _this_- und auf die _super_-Referenz.

Ebenius


----------



## thaag (10. Mrz 2009)

Ist das definitionsgemäß so für protected oder ist das Java-spezifisch?


----------



## maki (10. Mrz 2009)

thaag hat gesagt.:


> Ist das definitionsgemäß so für protected oder ist das Java-spezifisch?


"protected" ist keine allgemeiner Standard, genausowenig wie OO an sich, deswegen sind hier die meisten Antworten Java Spezifisch


----------



## musiKk (10. Mrz 2009)

Hier ist eine Tabelle für die verschiedenen Sichtbarkeiten.


----------

