Objektorientierte Programmierung EPROG Tutorium Objektorientierte Programmierung
Wiederholung Klasse Objekt Klassenvariable Objektvariable Methoden besondere Methoden Konstruktur Destruktor (finalize()) Garbage Collector, null Sichtbarkeiten: public, private
Übersicht Objektorientierte Paradigmen Packages Vererbung Polymorphie Neue Sichtbarkeiten
Paradigmen Datenkapselung Vererbung, interfaces Polymorphie schon behandelt Betrachtet Klassen als Black Boxes Vererbung, interfaces Polymorphie
Vererbung Legt Beziehungen zwischen Klassen fest Subklasse Superklasse Subklasse erbt alle Variablen und Methoden von der Superklasse Subklasse kann Methoden der Superklasse überschreiben. Dabei sind überschriebene Methoden der Superklasse nicht mehr zugreifbar (wichtig!). Variablen können nur verstecked (nicht überschrieben) werden. Dabei sind versteckte variablen der Superklasse durch ein cast zugrefibar (wichtig!). Superklasse wird mit extends festgelegt Ableitung einer Klasse kann mit final verhindert werden Keine Mehrfachvererbung unter Java, sondern interfaces.
schöne hässliche Vererbung „schöne“ Vererbung ist unter Anderen, eine „isA“ (ist ein) beziehung zwischen Klassen: Real-world Konzepte vererben Kreis, Quadrat extends Figur (Kreis „isA“ Figur); Quadrate extends Rechteck (oder umgekehrt?); „hässliche“ Vererbung: Code vererben extends EprogIO; Rechteck extends Quadrat;
Polymorphie Eine Variable des Typs einer Superklasse kann auch Objekte sämtlicher Subklassen enthalten Richtige Methoden sind immer aufgerufen Bsp.: Einer Telefongesellschaft ist es egal, wie ein Telefon klingelt, es muss beim Befehl klingeln eine entsprechende Handlung setzen (Bsp.2: Tiere)
Packages Packages sind Gruppen von zusammengehörenden Klassen werden mit package packagename erzeugt werden mit import importiert müssen in entsprechender Verzeichnisstruktur gespeichert werden
Sichtbarkeiten protected Erlaubt vererbung der Methode oder Variable in Subklassen Keine Vererbung von private Methoden und variablen Methoden und Variablen ohne „access modifier“ haben package access, d.h. Sie sind zugreifbar solange der zugriff innerhalb derselben Package gemacht ist.