Klasse
aus www.iwiki.de, der freien Wissensdatenbank
Eine Klasse stellt in der objektorientierten Entwicklung die Zusammenfassung von Objekten mit gleichen Eigenschaften und gleichem Verhalten dar.
In einer Klasse werden alle möglichen Attribute und Operationen beschrieben, die die Objekte zur Laufzeit der Software besitzen können. Die Klasse ist somit eine Abstraktion von Objekten und kann auch als eine Art abstrakter Datentyp angesehen werden.
Die einfachste Sichtweise ist, eine Klasse als Bauplan oder Schablone für Objekte anzusehen. In der Klasse steht, welche Eigenschaften und welches Verhalten die einzelnen Objekte aufweisen können. Die genauen Ausprägungen der Eigenschaften und Methoden werden erst nach "Zusammenbau" von Objekten nach dem Bauplan festgelegt.
Die Menge aller von einer Klasse erzeugten Objekte bezeichnet man als Klassenextension.
Beispiel:
Es existiert eine Klasse Auto, in dieser Klasse ist beschrieben, dass Autos eine Farbe haben, eine gewisse Anzahl von PS und man das Auto starten und auch wieder abstellen kann. Wichtig hierbei ist, dass die genaue Ausprägung der Attribute in der Klasse noch nicht beschrieben ist. Die Klasse enthält keinerlei Information darüber, welche Farbe oder wie viel PS das Auto nun hat, da die Klasse nur der Überbegriff, also die Abstrakte Form ist.
Nun geht man mit diesem Bauplan im Kopf zu seinem Vertragshändler und bestellt das Fahrzeug. Man lässt sich also ein Objekt anfertigen. Die Werte der Attribute trägt man in diesem Fall in das Bestellformular des Autohändlers ein. Das Auto soll rot sein und 150 PS haben. Wenn das konkrete Objekt nun ausgeliefert wird, besitzt es die Ausprägungen der Attribute. Im Objekt MeinAuto wird das Attribut "Farbe" den Wert rot haben und das Attribut "PS" den Wert 150, auch das Verhalten starten und abstellen ist für das Objekt MeinAuto definiert. In den meisten fällen wird z.B.: "starten" durch umdrehen des Zündschlüssels realisiert sein, in seltenen Fällen durch betätigen einer Kurbel an der Front des Fahrzeugs.
Deklaration in Java
Grundsätzlich ist jede Klasse eine Subklasse von der Klasse Object und erbt somit all deren Eigenschaften.
[<modifiziererfolge>] class <klassenname>
[extends <klassentyp>]
[implements <interfacetyp-liste>]
{
...
}
class test
private int var; //(Objekt-) bzw. Instanzvariable
{
public test (int var)
{
this.var= var; // Der Instanzvariable wird der Wert der Methodenvariblen var übergeben
}
}
In dem obigen Beispiel wird eine Instanzvariable durch eine Methodenvariable überdeckt. Um dennoch auf die Instanzvariable zuzugreifen, behilft man sich anhand des Schlüsselwortes this.
