Das Geheimnisprinzip private public Konstanten Klassenattribute und Klassenmethoden
Das Geheimnisprinzip private – public Konstanten, Klassenattribute, und Klassenmethoden final, static IT 2 – 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. IT 2 – 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. IT 2 – 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. IT 2 – WS 2005/2006 Nov 07, 2005 4
Klassenvariablen IT 2 – 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. IT 2 – WS 2005/2006 Nov 07, 2005 6
Java-Syntax § Visibility : : = [ („public“ | „private“) ] § Class. Declaration : : = Visibility „class“ Identifier „{“ { Attribute. Declaration } { Constructor. Declaration } { Method. Declaration } „}“ § Attribute. Declaration : : = Visibility [„static“ ] [„final“ ] Variable. Declaration IT 2 – WS 2005/2006 Nov 07, 2005 7
- Slides: 7