Teil 2: OOP und JAVA (Vorlesung 11)

Ähnliche Dokumente
Teil 2-3. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Teil 2-3. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Programmieren in Java

Heute: Java. Collections Framework ENUM Vererbung, Schnittstellen, Polymorphie Ausnahmen Streams & Dateien OR-Mapping. Literatur

Programmieren in Java

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Programmierung Nachklausurtutorium

Einführung in die Programmierung

Javakurs für Anfänger

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Java Vererbung. Inhalt

Klassen und Konstruktoren in Java

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Programmieren in Java

Algorithmen und Datenstrukturen 07

Praxis der Programmierung

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1)

6. Globalübung (zu Übungsblatt 8)

Grundelemente objektorientierter Sprachen (1)

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Vorkurs Informatik WiSe 15/16

Objektorientierte Programmierung

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Vererbung, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Abstrakte Klassen und Interfaces

Informatik II Übung 6

Programmierkurs Java

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Objektorientierte Programmierung Studiengang Medieninformatik

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Programmierkurs C++ Polymorphismus

Programmieren 1 09 Vererbung und Polymorphie

Einstieg in die Informatik mit Java

Vorkurs Informatik WiSe 17/18

Algorithmen und Datenstrukturen

Java für Bauingenieure

PRG2. Teil II: OOP und JAVA Teil III: Datenbanken. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

Prinzipien Objektorientierter Programmierung

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

JAVA 05: Objektorientierte Konzepte

Vorkurs Informatik WiSe 16/17

Tafelübung 07 Algorithmen und Datenstrukturen

Arten von Klassen-Beziehungen

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

Statische Methoden, Vererbung, Benutzereingabe

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Programmieren I. Kapitel 8. Vererbung

Vererbung und Polymorphie

Vererbung, Polymorphismus

Einstieg in die Informatik mit Java

Programmieren. Warum Objektorientierung? Objektorientierung. Beispiele für Busobjekte der realen Welt

Objektorientierte Programmierung Studiengang Medieninformatik

Statische Methoden, Vererbung, Benutzereingabe

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Einführung in die Programmiersprache Java II

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Grundlagen der Objektorientierung

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Polymorphie. 15. Java Objektorientierung II

Javakurs für Anfänger

Semestralklausur Informatik I - Programmierung

3 Objektorientierte Konzepte in Java

Polymorphie. 15. Java Objektorientierung II

Einführung in die Programmiersprache Java II

14. Java Objektorientierung

Java Grundlagen 2 - OOP

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Objektorientierte Programmierung. Kapitel 14: Interfaces

Nachgehakt - String Vergleich

Polymorphie. Überschreiben. Definition Eigene Methoden überschreiben Beispiele. Dr. Beatrice Amrhein

FAKULTÄT FÜR INFORMATIK

Statische Methoden, Vererbung, Benutzereingabe

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Programmierkurs C++ Abstrakte Klassen und Methoden

1 Abstrakte Klassen, finale Klassen und Interfaces

Vererbung. Oberklassen und Unterklassen

Objektorientierte Programmierung Studiengang Medieninformatik

Java Einführung Vererbung und Polymorphie. Kapitel 13

Vorlesung Datenstrukturen

Begriffe 1 (Wiederholung)

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Transkript:

Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1

Teil 8 - Java Vererbung Schnittstellen Polymorphie 2

Erinnerung: Beispiel für Vererbung Kraftfahrzeug Typ, Farbe, kmh beschleunigen() bremsen() Omnibus Stehplätze PKW LKW anhängen() Limousine Cabriolet Verdeck öffnen() Cabriolet und Limousine können zusätzliche Methoden bzw. Attribute haben. Beide erben alle Merkmale von PKW und damit auch von Kraftfahrzeug. 3 Grundlagen der Programmierung II

Mehrfachvererbung (Multiple Inheritance) In manchen objektorientierten Programmiersprachen (C++, Smalltalk usw.) kann eine Klasse mehrere direkte Oberklassen haben (Mehrfachvererbung) gute Modellierung mancher realen Gegebenheiten: 4 Grundlagen der Programmierung II

Schnittstellen (Interfaces) Um Probleme bei der Mehrfachvererbung zu umgehen, gibt es in Java die eingeschränkte Mehrfachvererbung durch Schnittstellen. Interfaces enthalten nur die "Signaturen" von Methoden. Statt der Definition des Methoden-Inhalts zwischen { und enthalten sie nur ein Semikolon: interface InterfaceName { void methode1(parameterliste) ; 5 Grundlagen der Programmierung II

Schnittstellen (Interfaces) Die Subklasse, die dieses Interface implementiert, muss dann alle darin skizzierten Methoden enthalten, mit der richtigen Signatur (Typ, Name und Parameterliste) und mit einem konkreten Block von Statements: class ClassName implements InterfaceName {... void methode1 (parameterliste) {... // Statements; 6 Grundlagen der Programmierung II

Polymorphie Die Fähigkeit eines Objektes zu entscheiden, welche Methode auf sich selbst anzuwenden ist, bezeichnet man als Polymorphie in der Objektorientierung. Das Objekt kann auf eigene Weise auf den Aufruf einer Methode reagieren. 7 Grundlagen der Programmierung II

Polymorphie bei Methoden Beispiel Überladung in Java: GeoObjekt berechneflaeche(kreis k) berechneflaeche(rechteck r) Was ist hier nicht sinnvoll? Klasse von geometrischen Formen GeoObjekt. Es gibt zwei Methoden zur Flächenberechnung berechneflaeche() aber mit unterschiedlichen Parametern nämlich zur Berechnung von Kreisen und Rechtecken. unterschiedliche Berechungsvorschriften aber gleicher Name. 8 Grundlagen der Programmierung II

Late Binding in Java: Beispiel: GeoObjekt Kreis radius berechneflaeche() Rechteck laenge breite berechneflaeche() Unterklassen Rechteck und Kreis, haben jeweils eine eigene Methode zur Flächenberechnung unterschiedliche Berechungsvorschriften aber gleich benannte Methoden 9 Grundlagen der Programmierung II

Überschreiben von Methoden In einer Unterklasse darf eine Methode mit gleichem Namen und gleicher Signatur wie in einer Oberklasse definiert werden. Überschreiben (Overwriting) Wichtig: Unterscheidung zum Überladen: (vgl. Beispiel Geometrische Objekte ) - gemeinsame Oberklasse - unterschiedliche Klassennamen Unterklasse1 methodex() Oberklassenmethode geht in der Unterklasse verloren (In Java durch das Keyword super noch zugreifbar!) Oberklasse methodex()... 10 Grundlagen der Programmierung II

Überschreiben von Methoden in Java Fahrzeug kmh: int sitzplaetze: int fahren() plaetze_anzeigen() Omnibus stehplaetze: int plaetze_anzeigen()... Die Unterklasse Omnibus erbt alle Attribute und Methoden der Oberklasse Fahrzeug. Zusätzlich erhält die Unterklasse Omnibus das Attribut stehplaetze. Die Methode plaetze_anzeigen() der Oberklasse Fahrzeug wird in der Unterklasse Omnibus durch eine neue Version überschrieben. 11 Grundlagen der Programmierung II

Übungs-Aufgabe class A{ public void foo(){ System.out.println("A"); class B extends A { public void foo(){ System.out.println("B"); public static void main(string[] args){ A aobject = new B(); aobject.foo(); AUSGABE: B (VM erkennt das aobject vom typ B ist) 12 Grundlagen der Programmierung II

Übungs-Aufgabe class A{ public int dosomething(int y){return y*2; public class B extends A{ public long dosomething(int y){return y*4; public static void main(string[] args){ B bobject = new B(); long x = bobject.dosomething(5); System.out.println(x); Falsches Überschreiben: Kompilierung schlägt fehl in Zeile: public long dosomething(int y){return y*4; 13 Grundlagen der Programmierung II

Übungs-Aufgabe class A{ public A(){ super(); System.out.println("A erzeugt"); AUSGABE: A erzeugt B erzeugt public class B extends A{ public B(){ System.out.println("B erzeugt"); super() in class A redundant public class Test{ public static void main(string[] args){ A aobject = new B(); 14 Grundlagen der Programmierung II