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.