16.09.2017 Aufrufe

Vorkurs Informatik

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

154 8 Objektorientierte Programmierung<br />

In dem vorliegenden Beispiel ist die Methode gibStudname der Klasse Studierende zugehörig,<br />

wie auch die Variable A[0].<br />

Wie wir wissen, kann es nun aber sein, dass eine Objektvariable auf ein Objekt einer Unterklasse<br />

verweist, wie in dem Beispiel<br />

A[0] = new Master(”Thorsten Meier”, 88188, 1980,<br />

”<strong>Informatik</strong>”, ”<strong>Informatik</strong>”);<br />

Es stellt sich nun die Frage, ob es möglich ist, auch die Methoden, über die ein Master-Objekt<br />

zusätzlich zu einem Studierende-Objekt verfügt, aufrufen zu können. Hierfür steht in Java<br />

das Konzept der expliziten Typkonvertierung, auch Type Casting genannt, zur Verfügung.<br />

Die Notation der expliziten Typkonvertierung ist analog zur Vorgehensweise bei den primitiven<br />

Datentypen, siehe Begriffserklärung 4.11, Seite 64. In dem Beispiel<br />

String erstfach = ((Master) A[0]).gibErststudienfach();<br />

findet eine explizite Typkonvertierung der Variablen A[0] statt. Durch den sogenannten Casting-<br />

Operator „(Master)“ wird die Variable A[0] vom Typ Studierende in den Typ Master konvertiert.<br />

Damit ist es möglich, die Methode gibErststudienfach der Klasse Master zu nutzen.<br />

Die Verwendung der Methode ist jedoch nur dann zulässig, wenn sicher ist, dass das Objekt,<br />

auf das die Variable verweist, auch tatsächlich einer Klasse angehört, die über diese Methode<br />

verfügt. Mittels instanceof kann vor einem entsprechenden Aufruf herausgefunden werden,<br />

ob dies tatsächlich der Fall ist.<br />

Zusammenfassung 8.7 (Zuweisungskompatibilität):<br />

• Ein Objekt und eine Objektvariable (Referenzvariable) sind zuweisungskompatibel,<br />

wenn die Klasse der Objektvariablen mit der Klasse des Objektes übereinstimmt<br />

oder einer Oberklasse der Klasse des Objektes ist.<br />

• Im Falle einer gegebenen Zuweisungskompatibilität kann ein Objekt der zuweisungskompatiblen<br />

Objektvariablen zugewiesen werden. Dabei findet eine implizite<br />

Typkonvertierung statt. Beim Zugriff über die Objektvariable auf das Objekt<br />

sieht das Objekt wie ein Objekt der Klasse der Objektvariablen aus.<br />

• Die Zuweisungskompatibilität kann mittels der Operation instanceof herausgefunden<br />

werden. Der Ausdruck „Objekt instanceof Klassenname“ liefert genau<br />

dann true, wenn das Objekt der Klasse oder einer Unterklasse davon angehört.<br />

instanceof<br />

Objekt<br />

instanceof<br />

Klassenname

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!