12.01.2014 Aufrufe

2-up - ETH Zürich

2-up - ETH Zürich

2-up - ETH Zürich

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Information Hiding („Geheimnisprinzip“)<br />

• Kapselung aller relevanten Daten und Methoden<br />

• Kein direktes Lesen oder Schreiben (interner, d.h.<br />

„privater“) Daten, sondern nur über Zugriffsmethoden<br />

• Interne Repräsentation nach aussen unsichtbar machen<br />

• Verhindert inkompetenten Missbrauch garantiert Integrität<br />

• Klasse „Datum“ kann z.B. selbst prüfen, ob es mit einem illegalen<br />

Wert gesetzt werden soll (statt dass jeder Aufrufer immer prüft)<br />

• Dabei geht es nicht um „Datenschutz“, sondern um Abstraktion<br />

(von der Implementierung und Datenrepräsentation)<br />

• Konsequente Realisierung von sogenannten „abstrakten Datentypen“<br />

• Klare Schnittstelle (nämlich Zugriffsmethoden)<br />

• Änderungsfreundliche Software (da seiteneffektfrei)<br />

131<br />

Dynamische Klassen und Referenzen<br />

class Person {<br />

String name;<br />

int geburtsjahr;<br />

int groesse;<br />

Person vater, mutter;<br />

}<br />

Kein "static"!<br />

Das sind Platzhalter für<br />

Referenzen auf andere<br />

Personen (genauer: auf<br />

Instanzen bzw. Objekte<br />

des Typs „Person“)<br />

p1 ist eine „Referenzvariable“<br />

class Geburt {<br />

public static void main (String[] args) {<br />

Person p1;<br />

// p1.name = "Hugo"; geht nicht!<br />

p1 = new Person(); // erst erzeugen!<br />

p1.name = "Hugo";<br />

System.out.println(p1.name);<br />

}<br />

}<br />

132<br />

56

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!