14. Java Objektorientierung

Ähnliche Dokumente
Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

Kapitel 6. Vererbung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs für Anfänger

Kapitel 6. Vererbung

Kapitel 6. Vererbung

Theorie zu Übung 8 Implementierung in Java

Programmieren I. Kapitel 8. Vererbung

Javakurs für Anfänger

Programmierkurs C++ Abstrakte Klassen und Methoden

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

Probeklausur: Programmierung WS04/05

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

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

SWE1 / Übung 9 ( )

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

3 Objektorientierte Konzepte in Java

Probeklausur: Programmierung WS04/05

3 Objektorientierte Konzepte in Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

Java für Computerlinguisten

2. Vererbung und Polymorphie. Vererbung (1/2) Beispiel (1/2) Vererbung (2/2) Eine Unterklasse wird folgendermaßen definiert

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

Objektorientierte Programmierung

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Java Vererbung. Inhalt

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Einführung in die Programmierung

Wiederholung zur Vorlesung Programmieren

Vererbung & Schnittstellen in C#

Grundlagen der Objektorientierung

Java I Vorlesung Vererbung und Sichtbarkeit

Algorithmen und Datenstrukturen 07

Teil 2: OOP und JAVA (Vorlesung 11)

Java Einführung Abstrakte Klassen und Interfaces

Faustregeln zu Zusicherungen

Informatik II Übung 6 Gruppe 7

Präsentation Interfaces

Interfaces und Vererbung

Vererbung und Polymorphie

1 Polymorphie (Vielgestaltigkeit)

Java, OO und UML Fortsetzung

Informatik II Prüfungsvorbereitungskurs

Java Schulung (Java 2 Java Development Kit 5 / 6)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Übersicht. Vorstellung des OO-Paradigmas

GetName(), GetName(), GetGeschlecht() und AelterWerden().

Überschreiben von Methoden

Client-Server-Beziehungen

Programmieren in Java

Vererbung. Was versteht man unter dem Begriff Vererbung?

Programmieren in Java

Inhalt. Informatik B Objektorientierte Programmierung in Java. Vorlesung 04: Objektorientierte Programmierung (Teil 4) Inhalt.

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

5.6 Vererbung. Vererbung

Einstieg in die Informatik mit Java

Methoden (fortgeschritten) in C# - 1

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

Praktische Softwaretechnologie Vorlesung 3

Welche Informatik-Kenntnisse bringen Sie mit?

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: Organisation des Quellcodes 4. Werte- und Referenzsemantik

Objektorientierte Programmierung

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

JAVA 5 Generics. Proseminar Programmiersprachen Thema Java 5 Generics 1

3. Konzepte der objektorientierten Programmierung

Vererbung. Martin Wirsing. Ziele. Vererbung

Tutorium zur Vorlesung Programmieren

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

AuD-Tafelübung T-B5b

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Beispiel für überladene Methode

Datenbankanwendungsprogrammierung Crashkurs Java

Ersetzbarkeit und Verhalten

Übungsblatt 7. Was ist die Ausgabe de facto? Entspricht die Ausgabe Ihren Erwartungen?

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Gebundene Typparameter

13. Tutorium zu Programmieren

Algorithmen und Programmierung II

Abstrakte Klassen und Schnittstellen. Abstrakte Klassen und Schnittstellen. Abstrakte Klassen und Schnittstellen. Vererbung von abstrakten Methoden

Java Kurs für Anfänger Einheit 5 Methoden

Java Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */)

Einführung in C++ Vererbung und Polymorphismus

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Java Einführung Methoden. Kapitel 6

Algorithmen und Datenstrukturen

Einstieg in die Informatik mit Java

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

5. Abstrakte Klassen

Fundamentale Ideen der Informatik PH Weingarten Sommersemester 2014 Paul Libbrecht CC-BY. Vorlesung 3: Methoden, Scope

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

Klassen in Java. Klassen

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Einführung in die Informatik

Transkript:

Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen zuweisen Objektorientierung Polymorphismus Kapselung Interfaces Abstrakte Datentypen 427 428 Bereits besprochen: Objekte Bereits besprochen: Komposition von Objekten Fokus auf Objekte eines gegebenen Datentyps, welche Daten (Felder) und Datentyp field1 field2 LocalDateTime date_time Coordinate position float magnitude java.time.localdatetime Code (Methoden) enthalten method1 method2 Coordinate float latitude float longitude float distance(coordinate other) 429 430

Vererbung Datentypen sind in einer Typhierarchie eingegliedert. OberKlasse Vererbung Komposition Komposition: Ein Objekt enthält Felder welche Objekte von andere Typen referenzieren Unterklassen (Subtypen) erben Daten und Code ihrer Oberklassen (Supertypen). UnterKlasse1 fieldsub1 UnterKlasse2 fieldsub2 Vererbung: Ein Objekt von einem Typ enthält zusätzliche Felder und Methoden, welche von einem Supertyp geerbt wurden methodsub1 methodsub2 431 432 Korrekter Einsatz von Vererbung Korrekter Einsatz von Komposition Wichtige Frage bei der Überlegung, ob DatenTyp1 von DatenTyp2 erben soll: Ist DatenTyp1 ein DatenTyp2? Wichtige Frage bei der Überlegung, ob DatenTyp1 DatenTyp2 als Komposition enthalten soll: Hat DatenTyp1 einen DatenTyp2? Beispiel Ist ein Student eine Person Ist ein Apfel eine Frucht Beispiel Hat ein Student eine Address Hat ein Apfel eine Farbe 433 434

Vererbung: extends Schlüsselwort Datenkapselung (Repetition) LocalDateTime datetime; Koordinate position; { double temperature; double speed; double direction ; LocalDateTime datetime Koordinate position Temperature LocalDateTime datetime Koordinate position double temperature Steuern, welche Daten und welcher Code woher zugänglich ist. Zugriffsmodifikatoren: private: Sichtbar aus Code derselben Klasse protected: Sichtbar aus Code derselben Klasse oder Unterklasse (später) public: Von überall sichtbar Name private field1 protected field2 private method1 public method2 435 436 Beispiel für protected Sichtbarkeit Abstrakte Klassen private LocalDateTime datetime; protected Koordinate position; public { private LocalDateTime datetime protected Koordinate position public public { private double temperature; private double speed; private double direction ; Temperature (not accessible: datetime) protected Koordinate position private double temperature Klasse bietet eine Methode alarm() an Die Methode soll true zurückgeben, genau dann wenn die Messung alarmierend ist aber die implementation der Methode hängt von der implementierung der diversen Subtypen ab?! 437 438

Abstrakte Klassen Es macht keinen Sinn, Objekte vom Typ zu erstellen. Der Datentyp sollte abstrakt sein. Abstrakte Klassen: Keyword abstract double temperature; // Implement the abstract method from the supertype { return temperature > 35; 439 440 Abstrakte Klassen: Keyword abstract double speed; // Implement the abstract method from the supertype { return speed > 80; Abstrakte Klassen: Eigenschaften Falls mindestens eine Methode abstract ist, d.h. nicht implementiert, muss die ganze Klasse abstract deklariert sein. Abstrakte Klassen können nicht instanziert werden (new ) Abstrakte Klassen enhalten Daten und Code, welche von allen Subklassen geerbt wird. Von den Unterschieden wird abstrahiert. 441 442

Abstrakte Klassen: Benutzung Abstrakte Klassen: Dynamische Methodenbindung Temperature t = new Temperature(40); boolean b = t.alarm(); In diesem Beispiel wir die Variable b auf true gesetzt. Was wenn wir alarm() aus einer Methode definiert in Klasse aufrufen? String alarmoutput(){ if ( this.alarm()){ Out.println("Alarm!"); else { Out.println("Nominal"); 443 444 Abstrakte Klassen: Dynamische Methodenbindung Temperature t = new Temperature(40); t.alarmoutput(); Ausgabe: "Alarm!" Das Objekt t vom Typ Temperature erbt Methode alarmoutput. In diesem Objekt ist die Implementierung der Methode alarm() aus Klasse Temperatur an die abstrakte Methode alarm() gebunden. Deshalb wird alarmoutput() die Implementierung von alarm() aus Klasse Temperature aufrufen. 445