Klassen (Lehrplan: Verbund)
Klassen sind selbstdefinierte Datentypen, die es erlauben, mehrere Komponenten zu einem neuen Objekt zusammenzufassen.
Beispiel:
Ein Datum (12. Dezember 2005) besteht aus den Komponenten Tag, Monat
und Jahr.
Eine Klasse Datum wird in Java wie folgt vereinbart:
class Datum {
int tag;
String monat;
int jahr;
}
Eine Klasse ist ein Typ, ihre Werte bezeichnet man als Objekte, wobei die
Klasse die Struktur der Objekte vorgibt.
Die Deklaration einer Klasse beginnt mit dem Wort class. Darauf folgt der
Name der Klasse. Innerhalb der folgenden geschweiften Klammern schließen sich die
Variablendeklarationen und die Methoden der Klasse an.
Die Variablen einer Klasse nennt man Felder oder Attribute.
Deklaration zweier Variablen vom Typ Klasse am Beispiel des Datums:
Datum x,y;
x = new Datum();
y = new Datum();
oder
Datum x,y = new Datum();
Zugriff auf die Attribute einer Klasse am Beispiel des Objektes x von Typ Datum:
x.tag=4;
System.out.println(x.monat);
if (x.jahr < 2000)
Vergleich Klassen - Reihungen
Reihungen (Arrays) | Klassen |
---|---|
bestehen aus mehreren gleichartigen Elementen, z.B. lauter int-Werten | können aus mehreren verschiedenartigen Attributen bestehen |
Die Elemente eines Arrays werden über ihren Index angesprochen, z.B. a[5]. | Die Attribute einer Klasse haben einen Namen und werden über diesen angesprochen, z.B. x.tag. |
Die Anzahl der Elemente wird bei der Erzeugung des Arrayobjektes festgelegt. | Die Anzahl der Attribute wird bei der Deklaration (Vereinbarung) der Klasse festgelegt. |
Die Anweisung y=x führt dazu, dass beide Variablen auf dasselbe Objekt zeigen. Es werden also nicht nur die Werte der Attribute von x in die entsprechenden von y kopiert.
"call by reference"
Die Adresse wird übergeben. Somit wird stets mit dem Original gearbeitet. Veränderungen
wirken sich also auch auf das Original aus. In Java wird "call by reference" nur bei Objekten
angewandt. Solche Parameter nannte man in Pascal und Oberon Referenzparameter oder auch
Variablenparameter.