Vorlesung Informatik II

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Informatik II"

Transkript

1 Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 06. Java: Von UML nach Java 1

2 Inhalt Für die meisten Elemente und Konzepte eines Klassendiagramms gibt es Entsprechungen in Java Wir werden jetzt die Syntax dieser Entsprechungen lernen Angenehmerweise bleibt die Semantik erhalten, wir haben bei der UML-Modellierung also schon die halbe Programmierarbeit erledigt Manchmal hat man allerdings Implementierungsalternativen Wir beginnen mit einigen API-Grundlagen. 2

3 Operator instanceof Erlaubt die Überprüfung, ob ein Objekt von einer bestimmten Klasse ist in der folgenden Form <Objekt> instanceof <Klasse> Wert dieses Ausdrucks ist vom Typ boolean 3

4 Klasse Object Jede Klasse erbt (ist eine Spezilisierung) von der Klasse Object: Konsequenzen: Ein Objekt jeder beliebigen Klasse kann an eine Variable der Klasse Object zugewiesen werden Die Methoden, die in der Klasse Object definiert sind, stehen in jeder Klasse zur Verfügung Wichtige Methoden der Klasse Object: public boolean equals(object obj) public String tostring() 4

5 Klasse Object public boolean equals(object obj) Definiert die Gleichheit zweier Objekte Voreinstellung: Identität (Zeiger auf dasselbe Objekt) Die Klasse String überschreibt diese Methode schon, s.d. zwei Zeichenketten tatsächlich auf gleichen Inhalt überprüft werden 5

6 Klasse Object public boolean equals(object obj) Diese Methode kann und sollte von jeder Klasse überschrieben werden was Gleichheit bedeutet, legt der Programmierer der Klasse fest Andere Bibliotheksoperationen benutzen equals (z.b. die Operation contains von Containerklassen) 6

7 Klasse Object public boolean equals(object obj) Beispiel: Zwei Studenten sind gleich, wenn sie dieselbe Matrikelnummer haben class Student { private String matnummer; public boolean equals(object o){ if (o instanceof Student){ Student s = (Student) o; return (matnummer == s.matnummer); return false;... 7

8 Klasse Object public String tostring() Definiert die textuelle Darstellung eines Objekts (als eine Zeichenkette) Jede Klasse sollte diese Methode überschreiben das Ergebnis sollte möglichst informativ und kompakt den wesentlichen Inhalt des Objekts wiedergeben Diese Methode wird implizit aufgerufen, wenn ein Objekt textuell dargestellt werden muss (z.b. bei Aufruf von println()) 8

9 Klasse Object public String tostring() Beispiel: Für Studenten wird Name und Matrikenummer ausgegeben class Student {... public String tostring(){ return Matrikelnummer: + matnummer + \n Name: + name;... 9

10 Containerklassen Grundsätzliche Typen: Listen: für beliebige Objekte in fester Reihenfolge mit wahlfreiem und sequentiellem Zugriff Mengen: für beliebige Objekte, keine Dubletten, Mengenoperationen Abbildungen: Menge von Paaren, eines davon dublettenfreier Schlüssel für den Zugriff auf das zugeordnete Objekt, kann man sich als Tabelle mit zwei Spalten (Schlüssel + Objekt) vorstellen 10

11 Containerklassen Beispielklassen: Vector Liste Dynamisches Feld, schneller Zugriff, langsames Einfügen / Löschen, für Lesen und kleine Listen LinkedList Liste Doppelt verkettete Liste, langsamer Zugriff, schnelles Einfügen / Löschen, bei vielen Änderungen, für große Listen 11

12 Containerklassen Beispielklassen: HashSet Menge Iterationsreihenfolge ist ungeordnet und nicht reproduzierbar Hashtable Abbildung 12

13 Klasse Vector Exemplarisch besprechen wir die Klasse Vector<T>: repräsentiert ein dynamisches Feld von Objekten Elemente von primitiven Datentypen können nicht verwaltet werden (hier helfen die Hüllklassen) Zugriff auf Elemente wie bei Feldern T ist der Datentyp der Elemente (Angabe ist optional). Ohne Angabe von T Verwaltung von beliebigen Objekten 13

14 Klasse Vector Einige Operationen der typisierten Version Vector<T>: void addelement(t obj) hängt obj als letztes Element an void insertelementat(t obj, int index) fügt obj an Position index ein und verschiebt andere Elemente T elementat(int index) liefert das Element an Stelle index Alternative: T get(int index) void setelementat(t obj, int index) ersetzt das Element an Position index durch obj 14

15 Klasse Vector Einige Operationen der typisierten Version Vector<T>: int indexof(t elem) liefert den Index des ersten Elements e mit e.equals(elem) boolean removeelement(t obj) entfernt das erste Auftreten von obj int size() liefert die Anzahl der aktuellen verwalteten Objekte Bei der nicht typisierten Version Vector werden ggf. Objekte vom Typ Object zurückgegeben Typcast notwendig! 15

16 Sichtbarkeiten + entspricht public - entspricht private # entspricht protected ~ entspricht package 16

17 Klassen Angabe von Klassen in folgender Form: <Sichtbarkeit> [abstract] class <Klassenname> { <Attributeliste> <Konstruktorenliste> <Operationsliste> UML-Klassen und strukturierten UML-Datentypen werden als Java-Klassen implementiert Angabe von abstract für abstrakte Klassen 17

18 Attribute Angabe von Attributen in folgender Form: <Sichtbarkeit> [static] <Datentyp> <Name> [=<Wert>] Angabe von static für Klassenattribute Angabe von =<Wert> für Anfangswerte <Datentyp> abhängig von Multiplizität:?..1 <Datentyp> entspricht UML-Datentyp?..m <Datentyp> entspricht UML-Datentyp-Feld (m>1)?..* <Datentyp> entspricht einer Java-Containerklasse 18

19 Attribute Möglichkeiten der Initialisierung von Attributen: Explizit in der Deklaration Explizit im Konstruktor Implizit durch voreingestellten Wert Initialisierung von Klassenattributen Explizit in der Deklaration In separatem Block static {... 19

20 Objekte Auswertung von Objekten: Objekte primitiven Typs werden als Wert der Speicherstelle ausgewertet Objekte eines Referenztyps werden als Zeiger auf die Speicherstelle ausgewertet Ein Ausdruck der Form <objekt>.<attribut> wird als Wert des Attributs ausgewertet (automatische Dereferenzierung) 20

21 Konstruktoren Angabe von Konstruktoren in folgender Form: <Sichtbarkeit> <Klassenname>(<Parameter>){<Rumpf> UML-Konstruktoren werden Java-Konstruktoren Konstruktoren können überladen werden Fehlt ein Konstruktor, so erzeugt der Compiler automatisch einen leeren Konstruktor public <Klassenname>(){ (ohne Parameter, d.h. ohne benutzerdefinierte Initialisierungen) Prototyp wird wie bei normalen Java-Operationen angegeben 21

22 Konstruktoren Das Schlüsselwort this: Mit this(<werte>) kann in einem Konstruktor auf einen anderen Konstruktor zugegriffen werden Mit this.<attribut> kann auf überschriebene Attribute zugegriffen werden this kann in Operationsrümpfen als Referenz auf das aufrufende Objekt benutzt werden (Beispiel später) 22

23 Konstruktoren Aufruf von Konstruktoren Aufruf durch Ausdruck new <Klassenname>(<Werte>) Erzeugung eines Objekts Ausdruck wird als Zeiger auf dieses Objekt ausgewertet Verwendung in beliebigen Ausdrücken und auch als Eingabeparameter von Operationen 23

24 Konstruktoren Implementierung von Konstruktoren class <Klasse>{ private <Typ> <Attribut>;... public <Klasse>(<Typ> <Attribut>) { this.<attribut>=<attribut>; public <Klasse>(<Typ> <Attribut>,...) { this(<attribut>);... 24

25 Operationen Angabe von Operationen in folgender Form: <Sichtbarkeit>[static][abstract]<Rückgabetyp><Name>(<Parameter>) { <Rumpf> UML-Operationen werden Java-Operationen (alle Verwaltungsoperationen für Attribute und Assoziationen usw.) Gibt es keinen UML-Rückgabetypwert, so ist der Java-Rückgabetyp void Angabe von abstract bei abstrakten Operationen Abstrakte Operationen haben keinen Rumpf Angabe von static bei Klassenoperationen 25

26 Operationen Im Operations-Rumpf Werte primitiven Datentyps werden nach dem Call-by-Value-Prinzip übergeben Objekte eines Referenztyps werden nach dem Call-by-Reference-Prinzip übergeben Übergabe des Rückgabewerts (falls Rückgabetyp nicht void) mit return <Wert> Gleiche Verwendung von this wie in Konstruktoren 26

27 Operationen Aufruf von Operationen Aufruf von normalen Objekt-Operationen durch Ausdruck <objekt>.<operation>(<werte>) (vorher muss das Objekt <objekt> deklariert und erzeugt werden) Aufruf von Klassenoperationen durch Ausdruck <klassenname>.<operation>(<werte>) Ausdruck wird als Rückgabewert der Operation ausgewertet Verwendung in beliebigen Ausdrücken und auch als Eingabeparameter von Operationen 27

28 Operationen Implementierung von Gettern und Settern Einfachste Form: class <Klasse>{ private <Typ> <Attribut>;... public <Typ> get<attribut>() { return <Attribut>; public void set<attribut>(<typ> <Attribut>) { this.<attribut>=<attribut>; 28

29 Operationen Implementierung von Gettern und Settern Zusätzliche Fehlerbehandlung: Überprüfung Dateninvarianten bei Settern (ungültige Werte) Beispiel: Namen beginnen mit Großbuchstaben und haben eine Länge zwischen 3 und 20 Buchstaben Kontrolle, ob Wert vorhanden (bei optionalen Attributen) bei Gettern 29

30 Operationen Implementierung von Gettern und Settern Verhalten bei Auftreten eines Fehlers: Aktion nicht ausführen Anzeige über Rückgabewert (Fehlerbehandlung durch den Aufrufer) oder Fehlermeldung public boolean setname(string name){ if ((name.length()>2)&&(name.length()<21)){ return false; this.name = name; return true; Später: Ausnahmebehandlung in Java mit Ausnahmeklassen 30

31 Operationen Implementierung bei mehrwertigen Attribute (einfachste Form): class <Klasse>{ private Vector<T> <Attribut>; public <T> get<attribut>(int pos) { return <Attribut>.elementAt(pos); public void add<attribut>(<t> <Wert>) { <Attribut>.addElement(<Wert>); public void remove<attribut>(<t> <Wert>) { <Attribut>.removeElement(<Wert>); 31

32 Operationen Implementierung der Verwaltung mehrwertiger Attribute: Zusätzliche Fehlerbehandlung: Überprüfung Dateninvarianten bei add- und delete-operation Beispiel: Schon vorhandenes Objekt (contains, equals) hinzufügen Fehlerkontrolle der benutzten Vector-Operationen Klasse Vector: public boolean removeelement(object obj) gibt false zurück, falls Objekt nicht vorhanden, sonst true [Verhalten bei Auftreten eines Fehlers analog zu gettern/settern] 32

33 Operationen Implementierung der Verwaltung von Objektbeziehungen: später 33

34 Spezialisierung Angabe von Spezialisierungen in folgender Form: class <Klasse1> extends <Klasse2>{<Rumpf> <Klasse2> ist dann Oberklasse von <Klasse1> In Unterklasse können geerbte Attribute und Operationen der Oberklasse benutzt werden Ausnahme: Konstruktoren werden nicht vererbt Mit super(<werte>) Aufruf Konstruktor der Oberklasse (nur als erste Anweisung erlaubt) (wird auch implizit durch Compiler mit leerem Konstruktor erledigt) 34

35 Spezialisierung Implementierung: Benutzung von super public class <Klasse2>{ private <Typ2> <Attribut2>; public <Klasse2>(<Typ2> <Attribut2>){... public class <Klasse1> extends <Klasse2>{ private <Typ1> <Attribut1>; public <Klasse1>(<Typ1> <Attribut1>,<Typ2> <Attribut2>){ super(<attribut2>);... 35

36 Spezialisierung Implementierung: Polymorphismus public class <Klasse1> extends <Klasse2>{... class meinprogramm{ public static void main(string args[]){ <Klasse2> o = new <Klasse1>(...);... o stehen genau die <Klasse2>-Methoden zur Verfügung Überschreibt <Klasse1> eine <Klasse2>-Methode, wird aber die <Klasse1>-Version benutzt 36

37 Uni-direktionale Assoziationen Angabe von einwertigen Assoziationen in folgender Form: <Klasse1>?..1 - <rolle> public class <Klasse1>{ private <Klasse2> <rolle>;... <Klasse2> Beziehung über den Rollennamen als Attribut einbinden in Richtung der Navigierbarkeit Zugriff über öffentliche Verwaltungsoperationen wie im Klassendiagramm spezifiziert 37

38 Uni-direktionale Assoziationen Verwaltungeoperationen für einwertige Assoziationen <Klasse1>?..1 - <rolle> <Klasse2> public class <Klasse1>{ private <Klasse2> <rolle>; public void link<rolle>(<klasse2> k){ <rolle> = k; public void unlink<rolle>(){ <rolle> = null; public <Klasse2> getlink<rolle>(){ return <rolle>; 38

39 Uni-direktionale Assoziationen Angabe von mehrwertigen Assoziationen in folgender Form: <Klasse1>?..* - <rolle> public class <Klasse1>{ private Vector<Klasse2> <rolle>;... <Klasse2> Beziehung über den Rollennamen als Feld-Attribut einbinden in Richtung der Navigierbarkeit Zugriff über öffentliche Verwaltungsoperationen wie im Klassendiagramm spezifiziert 39

40 Uni-direktionale Assoziationen Verwaltungsoperationen für mehrwertige Assoziationen <Klasse1>?..* - <rolle> <Klasse2> public class <Klasse1>{ private Vector<Klasse2> <rolle>; public void link<rolle>(<klasse2> k){ <rolle>.addelement(k); public void unlink<rolle>(<klasse2> k){ <rolle>.removeelement(k); public <Klasse2> getlink<rolle>(int pos){ return <rolle>.elementat(pos); 40

41 Uni-direktionale Assoziationen Zusätzlich bei Verwaltungsoperationen zu beachten ist die Fehlerbehandlung: Dateninvarianten sicherstellen in link- und unlink-operationen Bei optionalen Beziehungen muss zusätzlich noch beim Zugriff überprüft werden, ob eine Objektbeziehung besteht Fehlerbehandlung bei Bibliotheksfunktionen [Verhalten bei Auftreten eines Fehlers analog zu Verwaltungsoperationen von Attributen] 41

42 Bi-direktionale Assoziationen Angabe: Beziehung über die Rollennamen als Attribut einbinden für beide Klassen (wie uni-direktional in beide Richtungen) Link- und unlink-operationen beider Klassen stellen aus Symmetriegründen Beziehung in beide Richtungen her <Klasse1> - <rolle1> - <rolle2> <Klasse2> Achtung: Überprüfe, ob beteiligte Objekte nicht schon in anderer Beziehung: in diesem Fall unlink für alte Beziehung notwendig 42

43 Bi-direktionale Assoziationen Verwaltungsoperation link exemplarisch im beiderseits einwertigen Fall: <Klasse1> - <rolle1> - <rolle2> public class <Klasse1>{ private <Klasse2> <rolle2>; public void link<rolle2>(<klasse2> k){ if (rolle2!= null) unlink<rolle2>(); <rolle2> = k; if (k.getlink<rolle1>()!= this){ if (k.getlink<rolle1>()!= null) k.unlink<rolle1>(); k.getlink<rolle1>() = this; <Klasse2> 43

44 Bi-direktionale Assoziationen Verwaltungsoperationen allgemeiner Fall: <Klasse1> - <rolle1> - <rolle2> <Klasse2> Man muss vier Fälle unterscheiden (alle Kombinationen von einwertig & mehrwertig in beide Richtungen der Navigierbarkeit) Beachte wie gehabt zusätzlich Datenstruktur-Invarianten, Besonderheiten bei optionalen Beziehungen und Fehlerbehandlung bei Bibliotheksfunktionen 44

45 Aggregation und Komposition Sind Spezialfälle uni-direktionaler Assoziationen Implementierung wie geschildert über Attribut für Rollennamen Verwaltungsoperationen mit anderen Namen, aber ähnlicher Funktionalität 45

46 Aggregation und Komposition Sonderfall: Anbindung einer Containerklasse im Singletonmuster zur Verwaltung von Objekten einer Klasse <Klasse> public class <Klasse>Container{ private static <Klasse>Container unique = null; private Vector<Klasse> alle<klasse> = new Vector<Klasse>(); private <Klasse>Container(){ public static <Klasse>Container instance(){ if (unique == null){ unique = <Klasse>Container(); return unique; public void add<klasse>(<klasse> k){ alle<klasse>.addelement(k); public void delete<klasse>(<klasse> k){ alle<klasse>.removeelement(k); public <Klasse> get<klasse>(int pos){ return alle<klasse>.elementat(pos); 46

47 Aggregation und Komposition Sonderfall: Anbindung einer Containerklasse im Singletonmuster zur Verwaltung von Objekten einer Klasse <Klasse> public class <Klasse>Container{... public static <Klasse>Container instance(){... public void add<klasse>(<klasse> k){... public void delete<klasse>(<klasse> k){... public <Klasse> get<klasse>(int pos){ <Klasse>Container con = <Klasse>Container.instance(); <Klasse> o = new <Klasse>(); con.add<klasse>(o);... 47

48 Schnittstellen Angabe von Schnittstellen in folgender Form: interface <Schnittstelle>{<Rumpf> 48

49 Schnittstellen Die implements-beziehung: class <Klasse> implements <Schnittstelle> {... Implementierung mehrerer Schnittstellen: Schnittstellen durch Komma getrennt auflisten Klassen können gleichzeitig Unterklasse einer Oberklasse sein und mehrere Schnittstellen implementieren Eine Klasse muss alle Operationen einer implementierten Schnittstelle konkret implementieren! 49

50 Schnittstellen Beispiel: Iterator-Muster (Klassenbibliothek) <<interface>> Iterable<E> iterator():iterator<e> <Klasse>Container Vector public class <Klasse>Container implements Iterable<Klasse> { private Vector<Klasse> alle<klasse> = new Vector<Klasse>();... public Iterator<Klasse> iterator(){ return alle<klasse>.iterator(); 50

51 Schnittstellen Beispiel: Iterator-Muster (Klassenbibliothek) <<interface>> Iterable<E> <Klasse>Container Damit läßt sich der Container unabhängig von seiner Implementierung durchlaufen Iterator<Klasse> it = <Klasse>Container.iterator(); while(it.hasnext()){ <Klasse> o = it.next();... Vector 51

52 Schnittstellen Beispiel: Ereignisbehandlung (nächstes Kapitel) 52

53 Pakete Einbindung von Klassen in Pakete zu Beginn einer Datei: package <meinpaket>; <Klassendefinition> Import und Zugriff auf Klassen anderer Pakete zu Dateibeginn import <paketname>.<klasse>; 53

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

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

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

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

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

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

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

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

Programmieren in Java

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

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 4

Betreutes Programmieren Vorlesung Informatik II, Blatt 4 SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.05.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 4 Programmieraufwand für geübte Programmierer:

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 11: 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

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

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

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

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

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für

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

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1 IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string

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

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

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1 IT I: Heute Klasse Object equals, hashcode, tostring HashSet 13.11.2018 IT I - VO 6 1 Organisatorisches Wissensüberprüfung gleich im Anschluss an die VO UE heute schon früher (ab 11:45) heute beide UE-Gruppen

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

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 05. UML: Klassendiagramm 1 Klassendiagramm

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1 Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

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

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

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

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe. Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe http://www.zitate-online.de/autor/goethe-johann-wolfgang-von/ http://www.weimar-lese.de/files_weimar_lese/johann_wolfgang_von_goethe_bearbeitet_von_andreas_werner.jpg

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe

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

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

Betreutes Programmieren Vorlesung Informatik II, Blatt 4 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 4 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.05.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 4 Musterlösung Programmieraufwand für geübte

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

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

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen

Mehr

JAVA 05: Objektorientierte Konzepte

JAVA 05: Objektorientierte Konzepte Lernkartenkurs JAVA 05: Objektorientierte Konzepte panitz Zusammenfassung Dieser Kurs beschäftigt sich mit Grundkonzepten der objektorientierten Programmierung. Was sind Klassen und Objekte? Wie sehen

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

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

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

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

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr

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

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1 Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object

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

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

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

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

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

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

Informatik II Übung 6

Informatik II Übung 6 Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,

Mehr

Programmiertechnik Klassenvariablen & Instantiierung

Programmiertechnik Klassenvariablen & Instantiierung Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen

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

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

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

Das Interface-Konzept am Beispiel der Sprache Java

Das Interface-Konzept am Beispiel der Sprache Java Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse

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

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Kapitel 5: Iterierbare Container

Kapitel 5: Iterierbare Container Kapitel 5: Iterierbare Container Foreach-Schleife Interface Iterator Interface Iterable Iterator-Schleife und Foreach-Schleife Generische Liste mit Iteratoren Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

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

Java Grundlagen 2 - OOP

Java Grundlagen 2 - OOP Institut für Programmierung und Reaktive Systeme Java Grundlagen 2 - OOP Markus Reschke 20.08.2014 Eine kleine Geschichte 1 Spezifikation Es sollen Formen in einer GUI angezeigt werden: Ein Quadrat, ein

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

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

7. Objektorientierung. Informatik II für Verkehrsingenieure

7. Objektorientierung. Informatik II für Verkehrsingenieure 7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Bis jetzt kennen wir (fast) nur primitive Datentypen. Diese entsprechen weitestgehend der Hardware des Rechners (z.b. besitzt ein Rechner Hardware um zwei floats zu addieren).

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

C++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

Wiederholung. Klassenhierarchie:

Wiederholung. Klassenhierarchie: Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse

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

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

14. Java Objektorientierung. Klassen, Vererbung, Kapselung 427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

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

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

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

Programmiertechnik Vererbung & Polymorphismus für Fortgeschrittene

Programmiertechnik Vererbung & Polymorphismus für Fortgeschrittene Programmiertechnik Vererbung & Polymorphismus für Fortgeschrittene Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette Problem:

Mehr

Listing 1: Cowboy. Listing 2: Woody

Listing 1: Cowboy. Listing 2: Woody Musterlösung Test 3 Aufgabe 1: Cowboy Listing 1: Cowboy class Cowboy { public String rope ( Cowboy that ) { if ( this == that ) { return exclaim (); 5 else { return " Caught "; public String exclaim ()

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

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr

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

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

Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen

Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

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

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli 2001 Stefan Holland Informatik II Hinweise: Klausur Verwenden Sie für Ihre Lösungen ausschließlich den

Mehr

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

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr