Zum Hauptinhalt springen

Woche 7: Interfaces, Arrays mit Objekten & Überladen von Konstruktoren

Nach dieser Woche können Sie …

  • Interfaces nach vorgegebenen Spezifikationen definieren
  • ein vorgegebenes Interface in einer Klasse implementieren
  • Variablen mit Interface-Typ verwenden
  • Polymorphie benutzen, um redundanten Code zu vermeiden
  • Klassen entwerfen, um Objekte der realen Welt abzubilden
  • überprüfen, ob eine Variable mit Objekt-Typ eine Null-Referenz enthält
  • Konstruktoren überladen.

Interfaces werden in der Java-Welt täglich benutzt, da es sehr oft gar nicht entscheidend ist, wie etwas in einer Klasse implementiert ist, sonder nur, dass bestimme Methoden implementiert sind. In der Vorlesung Programmierung schauen wir uns ein paar Anwendungsfälle von Interfaces an, um uns an die Verwendung zu gewöhnen. Aber quasi täglich und in verschiedenen Situationen werden Sie mit Interfaces im Programmierpraktikum arbeiten – für die sehr Neugiergen von Ihnen haben wir auch ein paar Zusatzvideos in den kommenden Wochen, in denen wir diese weiterführenden (aber in diesem Semester noch nicht klausurrelevanten) Techniken vorstellen. Interfaces sind verwandt mit dem Konzept der Vererbung, das wir uns später anschauen werden.

Literatur

Falls Sie die Themen dieser Woche nochmal in der Literatur nachlesen wollen, können Sie sich die Abschnitte 7.7.1–7.7.4 (Interfaces), 3.7.1 (null), 6.5.4, 6.5.6 (Konstruktoren) in Java ist auch eine Insel ansehen.

Vorlesung

Interfaces & Polymorphie

Freiwillige Zusatzaufgabe

Legen Sie eine Klasse mit einer finalen Objektvariablen private final int[] array an. Können Sie folgenden Code in den Konstruktor schreiben? Wo gibt es Probleme?

array = new int[]{1, 2};
array[0] = 5;
array = new int[]{10, 20};

Arrays von Objekten & null

Freiwillige Zusatzaufgabe

Ergänzen Sie die BouncingObjects um fliegende Dreiecke oder andere Formen.

Berühmte Persönlichkeiten der Informatik

Adele Goldberg, Alan Kay und Dan Ingalls (alle noch lebendig) waren an der Entwicklung von Smalltalk, eine der ersten objektorientierten Programmiersprachen (1972), beteiligt. Smalltalk ist eine reine objektorientierte Sprache, d. h. anders als in Java sind auch Integer, Character usw. Objekte. Kay hat 2003 u. a. für die Arbeit im Feld der objektorientierten Programmierung den Turing Award erhalten.

Foto von Adele Goldberg

Foto von Alan Kay

Foto von Dan Ingalls

Bilder: Terry Hancock, Adele Goldberg (2007), CC BY-SA 2.5 / Marcin Wichary from San Francisco, U.S.A., Alan Kay (3097597186) (cropped), CC BY 2.0 / Friend of Dan Ingalls, copyright transferred to subject, Dan Ingalls, CC BY-SA 3.0