Objektorientierung in JavaScript/Datenkapselung, Vererbung, Polymorphie/Datenkapselung
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
Datenkapselung bedeutet, dass ein Objekt seine Attribute nach außen hin versteckt (information hiding) und sie so vor ungeregeltem Zugriff schützt. Es hat das alleinige Recht, auf seine Daten zuzugreifen und sie zu lesen oder zu ändern. Möchten andere Objekte Zugriff auf die Daten erhalten, müssen sie dies über definierte Schnittstellen tun.
[[Bild:Flogerlinghoff_Datenkapselung1.JPG]]
In JavaScript kann auf Variablen, die im Konstruktor nicht mit dem Schlüsselwort ''this'' gekennzeichnet wurden, nicht von außen zugegriffen werden.
<code id="54jhin213jn1">
function Person(name) {
var name = name;
this.getPersonsName = function() {
return name;
}
}
</code>
<run id="54jhin213jn2">
var peter = new Person("Peter");
typeof(peter.name);
</run>
<run id="54jhin213jn3">
var Emma = new Person("Emma");
Emma.getPersonsName();
</run>
==Aufgaben==
Bei der Klasse ''Buch'' sollen die Attribute ''autor'' und ''seitenanzahl'' gekapselt werden. Der Zugriff soll über die Methoden ''getAutor'' und ''getSeitenanzahl'' möglich sein.
<code id="54uhiqwu891">
function Buch (titel, autor, verlag, seitenanzahl) {
...
}
</code>
<check>
var cleanCode = new Buch("Clean Code", "Uncle Bob", "mitp-Verlag", 480);
(typeof cleanCode.seitenanzahl == "undefined" && typeof cleanCode.autor == "undefined" && cleanCode.getSeitenanzahl() == 480 && cleanCode.getAutor() == "Uncle Bob");
</check>
<run id="56fac5b8a63d7">
var cleanCode = new Buch("Clean Code", "Uncle Bob", "mitp-Verlag", 480);
</run>