Programmieren 2 Java Überblick

Größe: px
Ab Seite anzeigen:

Download "Programmieren 2 Java Überblick"

Transkript

1 Programmieren 2 Java Überblick 1 Klassen und Objekte 3 Schnittstellen 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10 Applets 11 Internet-Anwendungen Prof. Dr. Björn Dreher Programmieren 2 - Java 75 Programmieren 2 Java Überblick: 2. Vererbung 2.1 Einleitung 2. in Java 2.4 Methoden überschreiben 2.6 Polymorphismus Prof. Dr. Björn Dreher Programmieren 2 - Java 76

2 2.1 Einleitung Vererbung: Englisch Inheritance Mechanismus, bei dem Klassen mit ähnlichen Eigenschaften in eine hierarchische Beziehung miteinander gesetzt werden Die untergeordnete, speziellere Klasse (Subklasse) erbt die Eigenschaften (Attribute und Methoden) der übergeordneten, allgemeineren Klasse (Superklasse) Baum Superklasse, allgemeiner Nadelbaum Laubbaum Subklasse, abgeleitete Klasse, spezieller Gemeinsame Eigenschaften ordnet man der Superklasse zu, so dass diese in den Subklassen wiederverwendet werden können Man erhält eine Vererbungshierarchie: Spezialisierung/Generalisierung. Prof. Dr. Björn Dreher Programmieren 2 - Java Einleitung Was wird vererbt? Wie die Eigenschaften, die man von seinen Eltern ererbt: Einige sind dieselben, einige sind verändert, einige sind neu Dies gilt sowohl für Attribute als auch für Methoden Alle Attribute der Elternklasse werden geerbt Einige können noch hinzukommen Es können jedoch keine weggelassen werden Es können welche geändert werden (unter demselben Namen) Alle Methoden der Elternklasse können auch von den Nachkommen benutzt werden Es können Methoden hinzukommen Es können keine weggelassen werden. Es können jedoch Methoden redefiniert werden (unter demselben Namen): Anderes Verhalten! Zugriffsprivilege können bei der Vererbung verändert werden Prof. Dr. Björn Dreher Programmieren 2 - Java 78

3 2.1 Einleitung Code-Wiederverwendung Wichtige Basisattribute und Basismethoden können in einer hierarchisch höher stehenden Klasse platziert werden und stehen allen Nachkommen, die spezialisierte Objekte darstellen, zur Verfügung. Vereinfachte Wartung, Wiederverwendbarkeit von Code! Nur die zentrale Funktion der Basisklasse Basisklasse muss geändert werden. Durch die Vererbung greifen alle untergeordnete Klassen zwangsläufig auf die richtige, geänderte Methode zu. Subklasse Man kann auf diese Weise die Struktur der Eigenschaften (Attribute und Methoden) aller Nachfolgeklassen erzwingen. Subklasse Jede Klasse hat einen Vorgänger, kann aber selbstverständlich mehrere Nachkommen haben. Prof. Dr. Björn Dreher Programmieren 2 - Java 79 Änderung 2.1 Einleitung Polymorphismus Methoden bei Java sind normalerweise virtuelle Methoden Solche Methoden sind in der Basisklasse definiert und werden in den abgeleiteten Klassen redefiniert (überschrieben) Damit zeigen die abgeleiteten Klassen ein anderes Verhalten Mit einer Klassenhierarchie wird eine Menge von Datentypen (Klassen) derart definiert, dass eine Referenz auf die Basisklasse auch auf Objekte aller abgeleiteten Klassen zeigen kann. Ruft man mit einer solchen Referenz eine virtuelle Methode auf, so wird zur Laufzeit entschieden, welches die richtige redefinierte Methode ist Jedes Objekt weiß, welche Methodenimplementierung für es die richtige ist Prof. Dr. Björn Dreher Programmieren 2 - Java 80

4 Programmieren 2 Java Überblick: 2. Vererbung 2.1 Einleitung 2. in Java 2.4 Methoden überschreiben 2.6 Polymorphismus Prof. Dr. Björn Dreher Programmieren 2 - Java in Java Beispiel: Online Shop für Bücher und CDs Buch Artikelnummer Verfasser Titel Verlag Erscheinungsjahr Preis CD Artikelnummer Interpret Liste von Musikstücken Preis Warenkorb sollte beide Arten von Artikel aufnehmen können Gemeinsame Attribute und Methoden Prof. Dr. Björn Dreher Programmieren 2 - Java 82

5 2. in Java Klassendefinitionen Artikel, Buch, CD public class Article { private int code; // Artikelnummer private String label; // Kurzbeschreibung private int price; public void showinfo() {... public String getarticleline() {... public Article(int code, String label, int price) {... public class Book extends Article { private String author, title, publisher; private int year; public void showinfo() {... public class CD extends Article { private String artist; private String[] song; public void showinfo() {... Eine Zeile Kurzinfo über Artikel: code, label, price Informationen zu dem Artikel aufbereitet zur Darstellung in einem separaten Fenster: Verschieden für Bücher und CDs Prof. Dr. Björn Dreher Programmieren 2 - Java in Java Klassendefinitionen in UML-Notation Article - code: int - label: String - price: int + showinfo(): void + getarticleline(): String Book - author: String - title: String - publisher: String - year: int + showinfo(): void CD - artist: String - song: String [ ] + showinfo(): void Prof. Dr. Björn Dreher Programmieren 2 - Java 84

6 2. in Java Alle Klassen erben von der Urvorfahrenklasse Object Vererbungsbeziehungen Jede Klasse hat genau eine Vorfahrenklasse (außer Object) In Java gibt es keine Mehrfachvererbung Jede Klasse kann 0 oder mehrere Nachfahrenklassen haben Syntax class UnterKlasse extends OberKlasse {... Bedeutung bei richtiger Anwendung von Vererbungsbeziehungen Ein Objekt der Unterklasse ist sinngemäß auch immer ein Mitglied der Oberklasse (eine is-a Beziehung) Ein Buch ist ein Artikel Sehr wichtig! Eine CD ist ein Artikel Prof. Dr. Björn Dreher Programmieren 2 - Java in Java Ein etwas einfacheres Beispiel: Kleidungsstücke Kleidung # farbe: String + setfarbe(string f): void + getfarbe(): String Socke Hose + kennung(): String + kennung(): String class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; class Socke extends Kleidung { return "Ich bin eine Socke " + "der Farbe " + farbe; class Hose extends Kleidung { return "Ich bin eine Hose " + "der Farbe " + farbe; Prof. Dr. Björn Dreher Programmieren 2 - Java 86

7 2. in Java Hauptprogramm dazu public class SchrankVoll { public static void main(string args[]) { Socke s = new Socke(); s.setfarbe("rot"); Hose h = new Hose(); h.setfarbe("grau"); System.out.println( s.kennung() ); System.out.println( h.kennung() ); Von Kleidung geerbte Methode Eigene Methode Prof. Dr. Björn Dreher Programmieren 2 - Java in Java Sichtbarkeit Nachfahrenklassen haben zu privaten Eigenschaften der Vorfahrenklasse keinen Zugriff Spezielle Sichtbarkeit: protected Sichtbar für Nachfahrenklassen und alle Klassen desselben Packages Will man eine Klasse auf mögliche Nachfahrenklassen vorbereiten, sollte man private in den meisten Fällen durch protected ersetzen Prof. Dr. Björn Dreher Programmieren 2 - Java 88

8 Programmieren 2 Java Überblick: 2. Vererbung 2.1 Einleitung 2. in Java 2.4 Methoden überschreiben 2.6 Polymorphismus Prof. Dr. Björn Dreher Programmieren 2 - Java 89 Zuweisungskompatibilität innerhalb einer Vererbungshierarchie Referenz auf Vorfahrenklasse kann Referenz auf Nachfahrenklasse aufnehmen Kleidung kann Socke oder Hose zugewiesen werden Beide sind Kleidung Wichtiges Konzept der Objektorientierung Überall, wo Oberklasse gefordert ist, kann auch ein Objekt der Unterklasse verwendet werden Unterklasse hat alles, was Oberklasse erwartet, ist nur spezieller Socke + kennung(): String Kleidung # farbe: String + setfarbe(string f): void + getfarbe(): String Hose + kennung(): String Oberklasse kann speziellere Eigenschaften der Unterklasse (ohne besondere Vorkehrungen) nicht nutzen Prof. Dr. Björn Dreher Programmieren 2 - Java 90

9 Häufige Anwendung in der Java-Klassenbibliothek Behälterklassen (Liste, Stack) Erwarten Objekte der Klasse Object Können daher alle Java Objekte aufnehmen Unser Beispiel: Überall, wo Kleidung erwartet wird, können auch Socken der Hosen benutzt werden Prof. Dr. Björn Dreher Programmieren 2 - Java 91 Beispiel public class WasIstAllesKleidung { public static void main(string args[]) { Kleidung [] kl = new Kleidung[2]; Socke s = new Socke(); s.setfarbe("rot"); Hose h = new Hose(); h.setfarbe("grau"); kl[0] = s; kl[1] = h; System.out.println( kl[0].getfarbe() ); System.out.println( kl[1].getfarbe() ); for (int i = 0; i < 2; i++) System.out.println( kl[i].kennung() ); // Geht nicht! Prof. Dr. Björn Dreher Programmieren 2 - Java 92

10 Unser Beispiel Kleidungsstücke modifiziert Kleidung # farbe: String + setfarbe(string f): void + getfarbe(): String + kennung(): String Socke Hose + kennung(): String + kennung(): String class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; return "Ich bin eine Kleidung"; class Socke extends Kleidung { return "Ich bin eine Socke " + "der Farbe " + farbe; class Hose extends Kleidung { return "Ich bin eine Hose " + "der Farbe " + farbe; Prof. Dr. Björn Dreher Programmieren 2 - Java 93 Beispiel public class WasIstAllesKleidung { public static void main(string args[]) { Kleidung [] kl = new Kleidung[2]; Socke s = new Socke(); s.setfarbe("rot"); Hose h = new Hose(); h.setfarbe("grau"); for (int i = 0; i < 2; i++) System.out.println( kl[i].kennung() ); // Geht jetzt! Socke s1 = kl[0]; // Geht nicht! Socke s1 = (Socke) kl[0]; // So geht's Typumwandlung Richtigkeit wird zur Laufzeit geprüft Prof. Dr. Björn Dreher Programmieren 2 - Java 94

11 Finale Klassen Soll eine Klasse nicht vererbbar sein, d.h. also keine Unterklassen bilden können, so muss sie mit dem Modifizierer final versehen werden Unterklassen können Eigenschaften der Klasse nicht mehr verändern Einsatz z.b. unter Sicherheitsaspekten Klasse String ist final Strings bleiben immer unveränderlich Prof. Dr. Björn Dreher Programmieren 2 - Java 95 Klassenzugehörigkeit überprüfen Operator instanceof boolean b; String str = "Mein String"; b = ( str instanceof String ); // true b = ( str instanceof Object ); // true b = ( str instanceof Date ); // false... Ergibt auch wahr bei Vergleich mit einer Vorfahrenklasse! Falls true Linker Operand kann sicher einem Objekt der Klasse des rechten Operanden zugewiesen oder in diese Klasse typgewandelt werden: if (myobject instanceof Point) Point p = (Point) myobject; Prof. Dr. Björn Dreher Programmieren 2 - Java 96

12 Programmieren 2 Java Überblick: 2. Vererbung 2.1 Einleitung 2. in Java 2.4 Methoden überschreiben 2.6 Polymorphismus Prof. Dr. Björn Dreher Programmieren 2 - Java Methoden überschreiben Vererbungsregeln Unterklasse erbt alle sichtbaren Eigenschaften public und protected package, wenn sie im selben Package liegt Methoden können hinzugefügt werden Anderer Name: Neue Methode kommt hinzu Derselbe Name, aber andere Signatur: Methode wird überladen (Overloading) Neue Methode mit veränderter Signatur kommt hinzu Derselbe Name, dieselbe Signatur und derselbe Rückgabetyp: Methode wird überschrieben (Overriding) Unterklasse implementiert die Methode der Oberklasse neu Neue Methode verändert das bisherige Verhalten Spezialisierung Basis für Polymorphismus Prof. Dr. Björn Dreher Programmieren 2 - Java 98

13 2.4 Methoden überschreiben Aufrufen einer Methode der Oberklasse Überschreiben einer Methode: Völlig neue Implementierung Könnte man nicht die überschriebene Methode aufrufen, diese bestimmte Basisarbeit verrichten lassen... und dann zusätzliche Anweisungen anhängen (Code- Wiederverwendung)? Abhilfe: Schlüsselwort super class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; return "Ich habe die Farbe " + farbe + " und "; class Socke extends Kleidung { return super.kennung() + " ich bin eine Socke!"; class Hose extends Kleidung { return super.kennung() + " ich bin eine Hose!"; Prof. Dr. Björn Dreher Programmieren 2 - Java Methoden überschreiben Regeln zu super Entspricht der this-referenz super bezeichnet dasselbe Objekt wie this, nur als Typ der Oberklasse Damit stehen verdeckte Methoden (und verdeckte Attribute) der Oberklasse zur Verfügung class Oben { int i = 1; void m() { System.out.println("Ich bin Oben"); class Unten extends Oben { int i = 2; void m() { super.m(); System.out.println("Ich bin Unten"); System.out.println(super.i); System.out.println(i); super ist nicht schachtelbar, um sich entlang der Vererbungshierarchie nach oben zu hangeln! Prof. Dr. Björn Dreher Programmieren 2 - Java 100

14 2.4 Methoden überschreiben Nicht überschreibbare Methoden Will man unterbinden, dass ein Entwickler eine Methode in einer Unterklasse überschreibt und somit neu definiert Schlüsselwort final vor die Methodendefinition class Ober { final void sicher() { class Unter extends Ober { void sicher() { Compilerfehler! Prof. Dr. Björn Dreher Programmieren 2 - Java 101 Programmieren 2 Java Überblick: 2. Vererbung 2.1 Einleitung 2. in Java 2.4 Methoden überschreiben 2.6 Polymorphismus Prof. Dr. Björn Dreher Programmieren 2 - Java 102

15 Wurzel aller Java-Klassen Alle Methoden werden geerbt oder können überschrieben werden Object + getclass(): Class + hashcode(): int + equals(obj: Object): boolean + tostring(): String + notify(): void + notifyall(): void + wait(timeout: long): void + wait(timeout: long, nanos: int): void + wait(): void # clone(): Object # finalize(): void Prof. Dr. Björn Dreher Programmieren 2 - Java 103 public final Class getclass() Gibt das zugehörige Klassenobjekt zurück Klassenobjekte repräsentieren jeweils eine Klasse Meta-Informationen über Objekte, u.a. Verfügbare Attribute und Methoden Name der Klasse Hose meinehose = new Hose(); System.out.println( meinehose.getclass().getname() ); public int hashcode() Möglichst eindeutige Integerzahl für ein Objekt Inhaltlich gleiche Objekte (gemäß equals()) müssen denselben Hash Code liefern Anwendung: Speichern von Objekten in Hash-Tabellen Prof. Dr. Björn Dreher Programmieren 2 - Java 104

16 public String tostring() Identifikation eines jeden Objektes durch eine Zeichenkette Z.B. Werte der Attribute in lesbarer Form Neue Klassen sollten diese Methode überschreiben Wird automatisch aufgerufen, wenn print() oder println() eine Objektreferenz übergeben bekommen Sichtbarkeit sollte public bleiben Standard-Implementation in Object public String tostring() { return getclass().getname() + + Integer.toHexString(hashCode()); Prof. Dr. Björn Dreher Programmieren 2 - Java 105 public boolean equals(object obj) Vergleichsoperator zwischen zwei Objektreferenzen if (ob1 == obj2)... liefert true, wenn beide Referenzen auf dasselbe Objekt zeigen Prüft nicht inhaltliche Gleichheit: if (meinname == "Ulli")... kann false liefern, auch wenn meinname denselben Stringwert enthält Stattdessen: String meinname = "Ulli"; if (meinname.equals("ulli"))... // liefert true Vorsicht: Nicht jede Klasse implementiert ihre eigene equals()-methode String tut das Prof. Dr. Björn Dreher Programmieren 2 - Java 106

17 equals(), null und hashcode() Vergleich mit null liefert immer false if (meinname.equals(null))... // liefert false Bei Gleichheit via equals() muss auch hashcode() identische Werte liefern Bei Point Objekten wird der Hash Code auf der Basis der beiden Koordinaten berechnet Folge: Wird equals() überschrieben, muss meistens auch hashcode() überschrieben werden Prof. Dr. Björn Dreher Programmieren 2 - Java 107 Eigene Methode clone() Objekt kann sich selbst klonen Exakte Kopie von sich selbst Von Object geerbtes clone(): Flache Kopie Eigenes clone(): Tiefe Kopie ist möglich Aufräumen mit finalize() Aufgerufen, wenn Garbage Collector Objekt entfernen möchte Freigeben erworbener Ressourcen Datei schließen Dynamische Objekte freigeben (nicht unbedingt nötig) Keine Garantie, dass überhaupt irgendwann aufgerufen wird! Wenn überschrieben, dann auch immer finalize() der Oberklasse aufrufen: super.finalize(); Prof. Dr. Björn Dreher Programmieren 2 - Java 108

18 Programmieren 2 Java Überblick: 2. Vererbung 2.1 Einleitung 2. in Java 2.4 Methoden überschreiben 2.6 Polymorphismus Prof. Dr. Björn Dreher Programmieren 2 - Java Polymorphismus Überschreiben einer Methode (Overriding) Oberklasse kann einfache Implementierung vorgeben Unterklasse kann diese durch Überschreiben spezialisieren Laufzeitumgebung sucht in Klassenhierarchie von unten nach oben nach passender Methode Hätte Hose keine kennung(), würde die von Kleidung aufgerufen class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; return "Ich habe die Farbe " + farbe + " und "; class Socke extends Kleidung { return super.kennung() + " ich bin eine Socke!"; class Hose extends Kleidung { return super.kennung() + " ich bin eine Hose!"; Prof. Dr. Björn Dreher Programmieren 2 - Java 110

19 2.6 Polymorphismus Polymorphismus durch dynamische Bindung public class WasIstAllesKleidung { public static void main(string args[]) { Kleidung [] kl = new Kleidung[2]; Socke s = new Socke(); s.setfarbe("rot"); Hose h = new Hose(); h.setfarbe("grau"); Wird hier kennung() von Kleidung oder von Socke bzw. Hose aufgerufen? for (int i = 0; i < 2; i++) System.out.println( kl[i].kennung() ); Als Voreinstellung werden Methoden in Java dynamisch gebunden Zur Laufzeit wird festgestellt, zu welcher Klasse das Objekt gehört Dann wird die zugehörige Methode aufgerufen In C++: Virtuelle Methoden Prof. Dr. Björn Dreher Programmieren 2 - Java Polymorphismus Keine dynamische Bindung: Bei nicht überschreibbaren Methoden private static final class NoPolymorphismWithPrivate { public static void main( String args[] ) { Unter unsicht = new Unter(); System.out.println( unsicht.bar() ); // --- class Ober { private int furcht() { return 2; int bar() { return furcht(); Hier wird in bar() furcht() von Ober aufgerufen! furcht() wird statisch gebunden! class Unter extends Ober { int furcht() { return 1; Kein Compilerfehler: Unterklasse weiß nichts von privater Methode der Oberklasse Prof. Dr. Björn Dreher Programmieren 2 - Java 112

20 2.6 Polymorphismus Konstruktoren in der Vererbung Konstruktoren werden nicht vererbt Zu Beginn eines Konstruktors wird immer automatisch der Standard- Konstruktor der Oberklasse aufgerufen: super(); Initialisiert den geerbten Teil des Objektes Möglichkeit, einen parametrisierten Konstruktor der Oberklasse aufzurufen: public GraphObject(double x, double y, String farbe) { this.x = x; this.y = y; this.farbe = new String(farbe); public Kreis(double x, double y, String farbe, double radius){ super(x, y, farbe); this.radius = radius; Kreis ist Nachfahre von GraphObject Prof. Dr. Björn Dreher Programmieren 2 - Java 113 Programmieren 2 Java Überblick: 2. Vererbung 2.1 Einleitung 2. in Java 2.4 Methoden überschreiben 2.6 Polymorphismus Prof. Dr. Björn Dreher Programmieren 2 - Java 114

21 Klassen, von der keine Instanzen gebildet werden sollen Wurzelklasse einer Klassenhierarchie Kann/soll vielleicht noch nicht voll ausprogrammiert werden Hält gemeinsame Attribute vor Realisiert schon voll implementierbare Methoden Gibt für abstrakte Methoden die Signatur vor Implementierung liegt bei den Unterklassen Eine konkrete Unterklasse muss diese Methode implementieren Wenn nicht, ist auch sie abstrakt Gegenteil: Konkrete Klasse: Es können davon Instanzen gebildet werden Prof. Dr. Björn Dreher Programmieren 2 - Java 115 Abstrakte Klasse Basisklasse für Container, der alle Nachfahren enthalten können soll Wurzel einer is-a Beziehungshierarchie Gibt Signaturen für Unterklassen vor Bereits fertige Methoden können hier voll implementiert werden und werden so geerbt Andere Methoden werden in Unterklasse überschrieben, wenn sich dort das Verhalten ändert abstract class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; return "Ich habe die Farbe " + farbe + " und "; Prof. Dr. Björn Dreher Programmieren 2 - Java 116

22 Abstrakte Methoden Methode, die in der (abstrakten) Klasse noch nicht implementiert werden kann Besitzt keinen Methodenrumpf Gibt jedoch bereits Signatur vor public abstract double flaeche(); Nachfahrenklassen müssen diese Methode implementieren, damit von ihnen Instanzen erzeugt werden können Eine Klasse mit mindestens einer abstrakten Methode muss selbst auch als abstrakt definiert sein Prof. Dr. Björn Dreher Programmieren 2 - Java 117 Beispiel Delphin ausgabe(): void Saeugetier alter: int istsaeuger(): boolean Tier setalter(a: int): void istsaeuger(): boolean ausgabe(): void Mensch ausgabe(): void abstract class Tier { int alter = -1; void altersetzen( int a ) { alter = a; abstract boolean istsaeuger(); abstract void ausgabe(); abstract class Saeugetier extends Tier { boolean istsaeuger() { return true; class Mensch extends Saeugetier { void ausgabe() { System.out.println( "Ich bin ein Mensch" ); class Delphin extends Saeugetier { void ausgabe() { System.out.println( "Ich bin ein Delphin" ); Prof. Dr. Björn Dreher Programmieren 2 - Java 118

23 Unser Beispiel Tier m = new Mensch(); Tier d = new Delphin(); Aufgrund des Substitutionsprinzips möglich Standard-Konstruktor wird aufgerufen Auch der der Superklasse Auch wenn sie abstrakt ist Kann jedoch nicht direkt aufgerufen werden Tier s = new Saeugetier(); // geht nicht! Auch Attribute werden initialisiert (alter = -1)! Aufruf von m.ausgabe(); d.ausgabe(); liefert Ich bin ein Mensch Ich bin ein Delphin Prof. Dr. Björn Dreher Programmieren 2 - Java 119 abstract und final? abstract: Keine Instanz final: Keine Vererbung Widerspruch Compiler lässt das nicht zu! Prof. Dr. Björn Dreher Programmieren 2 - Java 120

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads

Mehr

Java Einführung Vererbung und Polymorphie. Kapitel 13

Java Einführung Vererbung und Polymorphie. Kapitel 13 Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article 2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

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

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

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

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in die

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Interfaces und Vererbung

Interfaces und Vererbung Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

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

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

Mehr

Programmierkurs C++ Abstrakte Klassen und Methoden

Programmierkurs C++ Abstrakte Klassen und Methoden Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

Einführung in C# Teil 3. Matthias Nübling

Einführung in C# Teil 3. Matthias Nübling Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3 Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

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

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 4: Klassen und Unterklassen Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor: 4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende

Mehr

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

2. Vererbung und Polymorphie. Vererbung (1/2) Beispiel (1/2) Vererbung (2/2) Eine Unterklasse wird folgendermaßen definiert 2. Vererbung und Polymorphie Vererbung (1/2) Vererbung mit extends Konstruktoren bei der Vererbung Überladen von Methoden - statische Polymorphie Casten Dynamische Polymorphie Klasse Object Eine Unterklasse

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

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

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

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

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

SWE1 / Übung 9 (11.01.2012)

SWE1 / Übung 9 (11.01.2012) SWE1 / Übung 9 (11.01.2012) Vererbung Zugriffskontrolle Motivation für Vererbung (1) Objekte in der realen Welt kommen oft in ähnlichen Varianten (Attribute, Verhalten) vor Gliederung durch hierarchische

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

Mehr

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

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

Zusatzmaterial DIE KLASSE OBJECT. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Zusatzmaterial DIE KLASSE OBJECT. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Zusatzmaterial DIE KLASSE OBJECT Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Object wich7ge Eigenscha

Mehr

Einführung in die Programmierung für NF. Vererbung

Einführung in die Programmierung für NF. Vererbung Einführung in die Programmierung für NF Vererbung Ziele Vererbungsprinzip der objektorien=erten Programmierung verstehen und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Java I Vorlesung Vererbung und Sichtbarkeit

Java I Vorlesung Vererbung und Sichtbarkeit Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.

Mehr

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

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 3 Schnittstellen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

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

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

1. Abstrakte Klassen

1. Abstrakte Klassen 1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Java für Bauingenieure

Java für Bauingenieure 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen

Mehr

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Programmieren I. Kapitel 8. Vererbung

Programmieren I. Kapitel 8. Vererbung Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte

Mehr

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

Objektorientierte Programmierung. Kapitel 14: Interfaces

Objektorientierte Programmierung. Kapitel 14: Interfaces 14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/

Mehr

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete 2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Vererbung. Was versteht man unter dem Begriff Vererbung?

Vererbung. Was versteht man unter dem Begriff Vererbung? Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &

Mehr

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

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Vererbung. Oberklassen und Unterklassen

Vererbung. Oberklassen und Unterklassen Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Objektorientierte Programmierung und Klassen

Objektorientierte Programmierung und Klassen Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP

Mehr

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

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

Mehr

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

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

Spezifikation, Klassen, Schnittstellen in Java. 2.4 Datenabstraktion, Objektorientierung, Java

Spezifikation, Klassen, Schnittstellen in Java. 2.4 Datenabstraktion, Objektorientierung, Java Spezifikation, Klassen, Schnittstellen in Java 2.4 Datenabstraktion, Objektorientierung, Java 2.4.1 Grundlegende Begriffe der Objektorientierung (s. auch Alp2) Klassen sind wie Module eine Einheit der

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie

Mehr

Grundlagen der Objektorientierung

Grundlagen der Objektorientierung Grundlagen der Objektorientierung Klassen, Attribute, Methoden Kapselung und Konstruktoren Vererbung Packages Interfaces und Adapterklassen 04.06.2008 Marcel Wieczorek 14 Klassen, Attribute, Methoden package

Mehr

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

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

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

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Programmiertechnik Objektorientierung

Programmiertechnik Objektorientierung Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche

Mehr

Institut für Informatik. Endterm Klausur zu Informatik I 20. Februar 2010

Institut für Informatik. Endterm Klausur zu Informatik I 20. Februar 2010 Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung Prof. R. Westermann Endterm Klausur zu Informatik I 20. Februar 2010 ˆ Die Arbeitszeit beträgt 120

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung

Mehr

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21. Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,

Mehr

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

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

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

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr