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.

Slides:



Advertisements
Ähnliche Präsentationen
Objektorientierte Programmierung
Advertisements

der Universität Oldenburg
1 Funktionstemplates Einbinden von Templates: –Eine *.o Datei, die durch Übersetzen einer Datei nur mit Templates erzeugt wurde, enthält keinen Programmcode.
Kritische Betrachtung
der Universität Oldenburg
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Polymorphie (Vielgestaltigkeit)
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, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
Programmieren mit JAVA
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.
Zhaohan Chen SS061 SIMULA-an Algol Based Simulation Language geschrieben von: Zhaohan Chen Betreuer: Prof. Dr. Rainer Manthey.
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Einführung in die Programmierung Vererbung
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Objektorientiertes Programmieren
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 12 WS 2000/2001 Gerhard Gröger Modellierung mit Geodatabases.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
ObjektOrientiertes Programmieren
Klassenhierarchien, Vererbung
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 - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
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 8. Vorlesung WS 2002/2003.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
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. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
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. Thomas H. Kolbe Einführung in die Programmierung mit Java 14. Vorlesung WS 2001/2002.
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. 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. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
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 - 9. Übung Besprechung der Hausaufgabe
Abstrakte Klassen und das Interface-Konzept
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.
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Einführung in die Programmierung mit Java
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Einführung in die Programmierung mit Java
 Präsentation transkript:

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

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/022 Übersicht Klassen und Objekte: Vererbung –Konzeptueller Hintergrund: Spezialisierung –Modellierung mittels UML –Vererben von Variablen –Vererben von Methoden Überlagerung von Methoden Zugriff auf überlagerte Methoden

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/023 Klassenhierarchien konzeptueller Hintergrund: Generalisierung  Spezialisierung Spezifikation in UML (Unified Modeling Language): Abstraktion

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/024 Beispiel zu Klassenhierarchien spezieller StudentDozent Verwaltungs- angestellter Person Ordentlicher Student Gasthörer

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/025 Klassenhierarchien in Java (I) Syntax: class Unterklasse extends Oberklasse {... } Beispiel: Datei Person.java: class Person {... } Datei Student.java: class Student extends Person {... }

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/026 Klassenhierarchien in Java (II) Unterklassen haben genau eine Oberklasse Eine Oberklasse kann beliebig viele Unterklassen besitzen Unterklassen können selber wieder Unterklassen besitzen Die oberste Klasse in Java ist die Klasse Object –alle Klassen sind direkt oder indirekt (wg. Transitivität) Unterklassen von Object –wird bei der Klassendefinition kein extends-Schlüsselwort angegeben, so ist die neue Klasse automatisch direkte Unterklasse von Object

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/027 Vererbung Eine Unterklasse erbt alle Eigenschaften ihrer Oberklasse: –Eine Unterklasse erbt alle Variablen ihrer Oberklasse –Eine Unterklasse erbt alle Methoden ihrer Oberklasse Vererbungsbeziehung ist transitiv –eine Unterklasse erbt die Eigenschaften aller darüberliegenden Oberklassen

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/028 Bsp. für Vererbung von Variablen & Methoden class A { int aVar; aVar void aMethode(){...} aMethode() } class B extends A { int bVar; aVar, bVar void bMethode(){...} aMethode(), bMethode() } class C extends B { int cVar; aVar, bVar, cVar void cMethode(){...} aMethode(), bMethode(), cMethode() } class D extends C { int dVar; aVar, bVar, cVar, dVar void dMethode(){...} aMethode(), bMethode(), } cMethode(), dMethode() Variablen & Methoden der Klasse

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/029 Vorteile der Vererbung Implementation / Funktion einer Oberklasse kann zu einem späteren Zeitpunkt „quasi von außen“ verbessert bzw. korrigiert werden –es wird eine entsprechende Unterklasse definiert, die die zu ändernden Methoden und Variablen durch neue Versionen überlagert Dadurch, dass Klassen durch Unterklassen in eigenen Quelltext- Dateien spezialisiert werden können, bleiben Programme langfristig erweiterbar. Stufenweise Abstraktion der Klassenhierarchie ermöglicht die Wiederverwendbarkeit der generelleren Klassen für andere Projekte. –In einzelnen Projekten werden dann speziellere Unterklassen der eher generellen Klassen definiert.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0210 Übung im GIS-Labor Implementieren Sie die zwei Klassen Person und Student als Ober- bzw. Unterklasse: –Personen haben als Attribute (Instanzvariablen): Vor- und Nachname Straße und Hausnummer PLZ und Ort –Studenten haben zusätzlich: Matrikelnummer Studiengang Datum des Erstsemesters zur Erinnerung: class x extends y {... }

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0211 Überlagerung (engl.: Overriding) Methoden einer Unterklasse können Methoden gleicher Signatur (Name+Parameterliste) aus den Oberklassen überlagern –Zweck: Unterklassen modellieren speziellere Objekte; Methoden der Oberklasse müssen häufig ebenfalls spezialisiert werden Zugriff: –im Normalfall wird die speziellste Methode verwendet –expliziter Aufruf einer überlagerten Methode Name der Oberklasse mittels: super.Name(...);

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0212 Beispiel zur Überlagerung von Methoden class Person { String vorname, nachname; void ausgeben() { System.out.println(vorname + nachname); } } class Student extends Person { long matrikelnr; void ausgeben() { super.ausgeben(); System.out.println(matrikelnr); } } Überlagert die gleichnamige Methode der Oberklasse Ruft die überlagerte Methode der Oberklasse auf (welche bereits für die Ausgabe der darin definierten Variablen sorgt)

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0213 Typkompatibilität Einer Variablen der Klasse K dürfen Objekte der Klasse K sowie aller ihrer Unterklassen zugewiesen werden. Beispiel: Student s = new Student(); Person p = s; Der umgekehrte Weg geht nicht: –Einer Variablen der Unterklasse K kann kein Objekt ihrer Oberklasse zugewiesen werden (dem Objekt fehlen die für die Unterklasse spezifischen Eigenschaften) Beispiel: Student s = new Person(); Über die Referenzvariable p kann nur auf die Methoden & Instanzvariablen des Studenten-Objekts zugegriffen werden, die von Person vererbt worden sind.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0214 Übungsaufgabe Ergänzen Sie die vorgestellten Klassen „Person“ und „Student“ um die Unterklassen „Dozent“ und „Verwaltungsangestellter“. Die Unterklasse „Dozent“ soll dabei noch weiter in „Professor“ und „Assistent“ unterschieden werden. Alle Klassen sollen eine Methode void ausgeben() besitzen, die den Inhalt aller Instanzvariablen ausgibt. (Die Methoden ausgeben() der Unterklasse überlagern dann die gleichnamige Methode der Oberklasse(n)) Erzeugen Sie ein Objekt jeder Klasse, initialisieren Sie sie mit Beispieldaten und geben Sie die Objekte anschliessend mittels der Methode ausgeben() aus.