Java-Kurs Übung Besprechung der Hausaufgabe Vererbung

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Kritische Betrachtung
Unter- und Oberklassen: Beispiel
der Universität Oldenburg
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Erweiterte Zuweisungskompatibilität
Polymorphie (Vielgestaltigkeit)
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Klassen 02 - Klassen.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Entwurfs- und Implementationsdiagramme
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientiertes Konstruieren
EPROG Tutorium #5 Philipp Effenberger
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Benutzeroberflächen und Graphik
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java-Kurs Übung Benutzeroberflächen und Graphik Besprechung der Hausaufgabe Applets Interaktive Eingabe und Darstellung mehrerer Polygonen.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 11. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Java-Kurs Übung Benutzeroberflächen und Graphik Besprechung der Hausaufgabe Applets Interaktive Eingabe und Darstellung mehrerer Polygonen.
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Objektorientierte Programmierung (OOP)
Abstrakte Klassen und das Interface-Konzept
Java Programme nur ein bisschen objektorientiert.
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Venusspiegel und Marsschild
OOP II.
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
Einführung in die Programmierung mit Java
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Einführung in die Programmierung mit Java
Definition Felder Konstruktor Methoden Beispiel
Implementieren von Klassen
Polymorphie Überschreiben
 Präsentation transkript:

Java-Kurs - 10. Übung Besprechung der Hausaufgabe Vererbung Konstruktoren (Methode super) Polymorphismus Dynamisches Binden Abstrakte Klassen

Methode "super" Problem: Wiederholung der Initialisierung für Person im Konstruktor von Dozent (Unterklasse von Person) Sinnvoll: Nutzung des Konstruktors von Person im Konstruktor von Dozent Methode super dient zum Aufruf des Konstruktors der Oberklasse

Methode super: Beispiel class Dozent extends Person { String institut; //Konstruktor Dozent(String vorname, String nachname, String inst) { super(vorname,nachname); //Konstruktor von Person institut = inst; }

Beispiel zur Klassenhierarchie Geometrische_Figur 1dimensionale_Figur 2dimensionale_Figur Gerade_ Strecke Spline Kreis-bogen Polygon Dreieck Viereck Rechteck Quadrat

Methoden Methode zeichne() Geometrische_Figur 1dimensionale_Figur Gerade_ Strecke Spline Kreis-bogen Polygon Dreieck Viereck Methode zeichne() Rechteck Quadrat

Methoden Methode umfang() Geometrische_Figur 1dimensionale_Figur Gerade_ Strecke Spline Kreis-bogen Polygon Dreieck Viereck Rechteck Methode umfang() Quadrat

Polymorphismus Eine Klassenvariable kann Objekte von Unterklassen aufnehmen Beispiel (Geometrische Figuren): Geometrische_Figur g1, g2; g1 = new Dreieck(); g2 = new Quadrat(); Es können nur die Methoden der Klassenvariablen aufgerufen werden: g1.zeichne(); //aus Geometrische_Fig. g1.umfang(); //geht nicht; nur bei 2D

Polymorphismus Eine Klassenvariable kann keine Objekte von Oberklassen aufnehmen Beispiel: Quadrat q; q = new Geometrische_Figur();//Fehler q.umfang(); //Fehler Für q ist der Aufruf q.umfang() zulässig, umfang() gibt es aber bei Geometrische_Figur nicht.

Dynamisches Binden Bei Polymorphismus wird erst zur Laufzeit entscheiden, welche Methode verwendet wird Beispiel: Geometrische_Figur[] g = new...; g[0] = new Dreieck(); g[1] = new Quadrat(); g[2] = new Rechteck(); ...; for(int i = 0; i < n ; i = i+1) { g[i].zeichne(); }

Abstrakte Klassen Problem I: Geometrische_Figur g; g = new Geometrische_Figur(); Problem II: Wie ist zeichne() in Klasse Geometrische_Figur implementiert? Lösung: Abstrakte Klassen Es dürfen keine Instanzen erzeugt werden Hat mindestens eine abstrakte Methode (Methode ohne Implementierung) Abstrakte Methode muss in Unterklasse implementiert sein

Abstrakte Klassen: Syntax abstract class Geometrische_Figur{ ..... abstract void zeichne(); ... }

Hausaufgabe 9 Implementieren Sie die drei Klassen Polygon, Dreieck und Rechteck aus dem UML-Diagramm. Polygon soll eine Abstrakte Klasse sein. Erweitern Sie jede der drei Klassen um die Methode umfang(). Diese ist bei Polygon abstrakt. Erzeugen Sie ein Array, das Dreiecke und Rechtecke enthält. Berechnen Sie die Summe der Umfänge aller Dreiecke und Rechtecke im Array. Dreieck Rechteck Polygon