Vorlesung 07.11.2005

Werbung
Das Geheimnisprinzip
private – public
Konstanten,
Klassenattribute, und
Klassenmethoden
final, static
IT2 – WS 2005/2006
Nov 07, 2005
1
1.0
Das Geheimnisprinzip (Information hiding)
 Man soll wissen was ein Objekt tun kann, nicht wie
das Objekt das tut.
 Daten gehören zu einem Objekt und sind für andere
Objekte verborgen.
 Der Zugriff erfolgt nur mittels definierter
Schnittstellen, d.h. public Methoden.
 Information hiding unterstützt lose Kopplung, d.h.
Klassen sind möglichst unabhängig von einander.
 Solange die Schnittstellen (public Methoden)
unverändert bleiben, kann die Implementierung
einer Klasse verändert werden, ohne dass andere
Klassen geändert werden müssen.
 Das ist wichtig für große Systeme und die Wartung.
IT2 – WS 2005/2006
Nov 07, 2005
2
public vs. private
 Public Datenfelder, Konstruktoren und
Methoden sind zugreifbar auch von
anderen Klassen.
 Datenfelder sind vorzugsweise (d.h. fast
immer) nicht public.
 Private Datenfelder und Methoden sind
zugreifbar nur innerhalb der zu
definierenden Klasse.
 Nur Methoden, bestimmt für die
Benutzung durch anderen Klassen, sollten
public sein.
IT2 – WS 2005/2006
Nov 07, 2005
3
Klassenattribute
 Klassenattribute sind Attribute, die einer
Klasse zugeordnet sind.
 Objektattribute sind immer Objekten
zugeordnet.
 Der Wert eines Objektattributs kann für
jedes Objekt unterschiedlich sein.
 Klassenattribute haben für alle Objekte einer
Klassen denselben Wert.
 Klassenattribute haben auch ohne Objekte
ihren Wert.
 Konstanten in Java sind Klassenattribute,
deren Wert nicht verändert werden kann.
IT2 – WS 2005/2006
Nov 07, 2005
4
Klassenvariablen
IT2 – WS 2005/2006
Nov 07, 2005
5
Klassenmethoden
 Klassenmethoden können auch unabhängig
von einem Objekt aufgerufen werden.
• Objektmethoden werden immer für ein
bestimmtes Objekt aufgerufen.
 Da eine Klassenmethode keinem Objekt
zugeordnet ist, kann sie keine
Objektattribute verwenden und keine
Objektmethoden aufrufen.
• Außer für Objekte, die von der Klassenmethode
explizit angesprochen werden.
IT2 – WS 2005/2006
Nov 07, 2005
6
Java-Syntax
 Visibility ::= [ („public“ | „private“) ]
 ClassDeclaration ::=
Visibility „class“ Identifier
„{“
{ AttributeDeclaration }
{ ConstructorDeclaration }
{ MethodDeclaration }
„}“
 AttributeDeclaration ::=
Visibility [„static“ ] [„final“ ] VariableDeclaration
IT2 – WS 2005/2006
Nov 07, 2005
7
Herunterladen