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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette Problem: Hotels in verschiedenen Ländern rechnen mit verschiedenen Währungen, die ineinander umgerechnet werden müssen. Annahme: Abrechnungen erfolgen in US-Dollar. Problem: Umtauschkurs ändert sich jeden Tag! Beispiel: Hotel in Tokio hat eine Safe-Einlage im Wert von $ Über Nacht steigt der Kurs des Yen um 10% neuer Wert der Safe-Einlage: $ Der Wert der Safe-Einlage darf nicht in US-$ gespeichert werden, sondern muss dynamisch berechnet werden. 2/35

3 Schnittstellen Idee: Generalisiere von den konkreten Währungen, und führe eine Schnittstelle Waehrung ein: public interface Waehrung { // // gibt den Wert in in US-$ aus public double dollarbetrag(); Schnittstellen sind Sammlungen von Instanzmethoden. Dabei enthalten Schnittstellen nur Methodendeklarationen ohne Implementierung. 3/35

4 Schnittstellen Eine Klasse kann Schnittstellen implementieren. Dazu muss sie alle in der Schnittstelle deklarierten Methoden definieren. Eine Schnittstelle selbst kann nicht instantiiert werden! Wie eine äußere Klasse wird auch eine Schnittstelle in einer gleichnamigen.java-datei gespeichert Waehrung.java. 4/35

5 Schnittstellen in UML interface Wertgegenstand dollarbetrag: double Merke: Die Namen von Schnittstellen und deren Methoden werden kursiv geschrieben. Vor den Namen der Schnittstelle wird das Schlüsselwort interface gestellt 5/35

6 Schnittstellen - Zweck Wozu sind Schnittstellen gut, wenn sie nicht instantiiert werden können? Implementierende Klassen enthalten garantiert alle in der Schnittstelle deklarierten Instanzmethoden im Beispiel: alle Klassen, die Waehrung implementieren, müssen die Instanzmethode dollarbetrag implementieren. Die Schnittstelle Waehrung garantiert, dass alle Subklassen die Methode dollarbetrag besitzen (Schnittstellenvererbung) 6/35

7 Klasse USDollar einfachste Währung ist US-Dollar, da keine Umrechnung nötig ist: public class USDollar implements Waehrung { // // Instanzvariable: Wert Wert in in US-$ US-$ private double wert; public USDollar(double wert) { this.wert = wert; public double dollarbetrag() { return wert; 7/35

8 Klasse Yen public public class class Yen Yen implements Waehrung Waehrung { private private static static double double kurs; kurs; // // Instanzvariable: Wert Wert in in Yen Yen private private double double wert; wert; public public Yen(double wert) wert) { this.wert = wert; wert; public public double double dollarbetrag() { return return wert wert * kurs; kurs; public public static static void void setkurs(double kurs) kurs) { Yen.kurs Yen.kurs = kurs; kurs; Klassenvariable, da Kurs für alle Yen-Objekte gilt und nur einmal gespeichert werden muss Wert wird in Yen gespeichert Wert in US-$ wird zurückgegeben. Kurs kann klassenweit aktualisiert werden 8/35

9 Verwendung der Klasse Yen Tokioter Hotel hat eine Safe-Einlage von : Yen safeinhalt = new Yen( ); Tauschkurs ändert sich auf 130 pro US-$: Yen.setKurs(1.0 / 130); Aktuellen Wert des Safe-Inhalts in US-$ ausgeben: System.out.println("Wert der Einlage in in US-$: " + safeinhalt.dollarbetrag()); Konsole Wert der Einlage in US-$: /35

10 Waehrung Polymorphismus Aufgabe: Berechnung der Steuer von 8% (veranlagt in den USA) für das gesamte Barvermögen der Hotelkette. Idee: Erstelle eine neue Klasse Steuer und implementiere diese Funktionalität als Klassenmethode: public class Steuer { public static double berechnesteuer(waehrung[] geld){ double summe = 0.0; 0.0; for for ( int int i = 0; 0; i < geld.length; i++ i++ ) { summe += += geld[i].dollarbetrag(); return summe * 0.08; Wie kann es ein Feld von Komponenten vom Typ Waehrung geben, wenn Waehrung nicht instanziiert werden kann? 10/35

11 Waehrung Polymorphismus Antwort: Jede Klasse, die Waehrung implementiert, d.h. USDollar und Yen, kann an die Stelle der Schnittstelle Waehrung treten Polymorphismus! Erklärung: Objekte vom Typ USDollar und Yen besitzen mindestens alle Eigenschaften der Schnittstelle Waehrung. Das gilt auch bei Klassenvererbung, nicht nur bei Schnittstellen 11/35

12 Waehrung Polymorphismus Allgemein: Ein speziellerer Typ kann all das, was ein allgemeinerer Typ kann. Der allgemeinere Typ kann eine Klasse oder eine Schnittstelle sein Der speziellere Typ wird implizit aufwärtskonvertiert in den allgemeineren Typ. 12/35

13 Waehrung Polymorphismus Beispiel: Waehrung[] geld = new Waehrung[3]; geld[0] = new USDollar(2500); geld[1] = new Yen( ); geld[2] = new USDollar(20); double steuer = Steuer.berechneSteuer(geld); Beachte: Ein Objekt vom Typ USDollar kann an eine Variable vom Typ Waehrung zugewiesen werden US-$ ist eine (is-a) Währung 13/35

14 Objekttyp-Konversion Allgemeiner: Die Klasse SpezielleKlasse implementiert die Schnittstelle EineSchnittstelle. Dann sind die folgenden Codezeilen zulässig. EineSchnittstelle a; a; SpezielleKlasse s; s; // // s =...; a = s; s; und auch: EineSchnittstelle a = new SpezielleKlasse(); 14/35

15 Objekttyp-Konversion Beachte: Java führt eine implizite Aufwärtskonversion für Objekttypen durch, ähnlich der für skalare Typen. Diese kann auch explizit angegeben werden: EineSchnittstelle a = (EineSchnittstelle) new SpezielleKlasse(); 15/35

16 Objekttyp-Konversion Auch eine explizite Abwärtstypwandlung ist möglich Vorsicht: kann zu Laufzeitfehler führen! EineSchnittstelle a = new SpezielleKlasse(); SpezielleKlasse s = (SpezielleKlasse) a; a; OK falsch! EineSchnittstelle a = new SpezielleKlasse_2(); SpezielleKlasse s = (SpezielleKlasse) a; a; (die Klasse SpezielleKlasse_2 implementiert EineSchnittstelle) 16/35

17 Objekttyp-Konversion Der Typ eines Objektes kann zur Laufzeit mit dem instanceof-operator geprüft werden: Syntaxregel <objectname> instanceof <TypName>; TypName kann der Name einer Klasse oder einer Schnittstelle sein Die Operation liefert true, wenn das Objekt eine Instanz der angegeben Klasse ist einer Klasse ist, die die angegebene Schnittstelle implementiert einer (direkten oder indirekten) Subklasse ist Ansonsten liefert die Operation false 17/35

18 Objekttyp-Konversion Beispiel (Sichern einer Abwärtstypwandlung): EineSchnittstelle a = new new SpezielleKlasse(); if if (a (a instanceof SpezielleKlasse) { SpezielleKlasse s = (SpezielleKlasse) a; a; // // verwende verwende s else else { System.out.println( "something went went terribly terribly wrong!"); 18/35

19 Waehrung - Polymorphismus Frage: Was passiert beim Aufruf von dollarbetrag() in der Methode berechnesteuer()? public static double berechnesteuer(waehrung[] geld) { double summe = 0.0; 0.0; for for ( int int i = 0; 0; i < geld.length; i++ i++ ) { summe += += geld[i].dollarbetrag(); return summe * 0.08; 19/35

20 Waehrung - Polymorphismus Frage: Was passiert beim Aufruf von dollarbetrag() in der Methode berechnesteuer()? public static double berechnesteuer(waehrung[] geld) { double summe = 0.0; 0.0; for for ( int int i = 0; 0; i < geld.length; i++ i++ ) { summe += += geld[i].dollarbetrag(); return summe * 0.08; Antwort: Für Objekte vom Typ USDollar wird die Methode verwendet, die in der Klasse USDollar definiert wurde, und für Objekte vom Typ Yen die Methode, die in der Klasse Yen definiert wurde späte Bindung (late binding). 20/35

21 Abstrakte Klassen Aufgabe: Hotelkette besitzt neben Barvermögen (Objekte vom Typ Waehrung) auch andere Arten von Vermögen: Grundstücke Aktien Firmenbeteiligungen Wir wollen sicher stellen, dass jeder Wertgegenstand seinen monetären Gegenwert nennen kann. Lösungsmöglichkeit: Definition einer neuen Schnittstelle WertGegenstand mit einer Instanzmethode wert(). Klassen, die WertGegenstand implementieren, müssen eine Instanzmethode Methode wert() implementieren 21/35

22 Abstrakte Klassen alternative Lösung: Abstrakte Klasse: public abstract class Wertgegenstand { public abstract Waehrung wert(); Eine abstrakte Klasse kann neben konkreten Methoden mit Methodenrumpf auch abstrakte Methoden enthalten. Eine abstrakte Methode ist eine Methodendeklaration ohne Implementierung wie bei einer Schnittstelle. Eine Subklasse muss ihre eigene Implementierung bereitstellen. Eine abstrakte Klasse kann nicht instantiiert werden! 22/35

23 Abstrakte Klassen Beispiel: public class Goldbarren extends Wertgegenstand { public static double grammpreisindollar = 60; 60; private double gewicht; public Goldbarren(double gewicht) { this.gewicht = gewicht; public Waehrung wert() { return new new USDollar(gewicht * grammpreisindollar); Beachte: Goldbarren muss die Methode wert() definieren! 23/35

24 Abstrakte Klassen in UML Wertgegenstand wert: Waehrung Goldbarren Merke: Die Namen abstrakter Klassen und Methoden werden kursiv geschrieben. 24/35

25 Abstrakte Klassen Anwendung: public public static static Waehrung Waehrung gesamtwert( Wertgegenstand[] objekte) objekte) { double double summe summe = 0.0; 0.0; for for ( int int i = 0; 0; i < objekte.length; i++ i++ ) { summe summe += += objekte[i].wert().dollarbetrag(); return return new new USDollar(summe); Die Abstrakte Klasse Wertgegenstand wird verwendet wie eine Klasse, siehe beispielsweise "Wertgegenstand[]". Das Feld objekte enthält Objekte, die von der abstrakten Klasse Wertgegenstand abgeleitet sind. Damit ist sichergestellt, dass diese alle die Methode wert() definieren. 25/35

26 Schnittstellen vs. Klassen Eine Klasse kann nur eine Superklasse haben Einfachvererbung, keine Mehrfachvererbung. Eine Klasse kann beliebig viele Schnittstellen implementieren. Eine Schnittstelle kann keine Methodendefinitionen enthalten. Eine abstrakte Klasse kann abstrakte sowie konkrete Methoden enthalten. Eine Schnittstelle kann außer Konstanten keine Variablen enthalten. Eine Schnittstelle kann keine Klassenmethoden deklarieren. 26/35

27 super Analog zu this gibt es auch ein Schlüsselwort super. Zur Erinnerung: this bezeichnet die aktuelle Instanz, für die gerade eine Instanzmethode ausgeführt wird. Mit this.<komponentenname> kann auf eine Instanzvariable oder eine andere Instanzmethode zugegriffen werden. Als Methode this(<parameterliste>) bezeichnet this einen Konstruktor. Damit kann ein (spezieller) Konstruktor auf einen (allgemeinen) Konstruktor zurückgeführt werden. Sehr ähnliches gilt für die super-referenz und den super-konstruktor! 27/35

28 super-konstruktor Ein Konstruktor kann und zwar nur in der 1. Zeile einen Aufruf des Konstruktors der Superklasse enthalten. Wenn das nicht der Fall ist, fügt Java automatisch den parameterlosen Konstruktor der Superklasse ein. public class NonsensDollar extends USDollar { public NonsensDollar(double wert) { super(wert); public double dollarbetrag() { überschreibt return Math.random(); gleich-namige Methode der Klasse USDollar. 28/35

29 super-referenz Die super-referenz bezeichnet das aktuelle Objekt, jedoch als Instanz der Superklasse betrachtet! Damit ermöglicht super Zugriff auf Komponenten (Variablen und Methoden), die anderenfalls überdeckt und damit nicht sichtbar wären: public class NonsensDollar extends USDollar { public double jetztmalimernst() { return super.dollarbetrag(); 29/35

30 Die Klasse Object Jede Klasse, die keine explizite Superklasse hat, ist automatisch Subklasse von java.lang.object. Damit ist letztendlich jede Klasse direkt oder indirekt Subklasse von Object, und hat damit auch alle Eigenschaften der Klasse Object. Object definiert eine Reihe von Methoden. Die für uns interessanteste ist public String tostring(). Außerdem wird die gemeinsame Superklasse Object als Elementtyp von Kollektionen verwendet. 30/35

31 Die Methode tostring Die Methode tostring() wird verwendet, um Objekte in eine menschlich lesbare, textuelle Repräsentation zu bringen. Die Methode System.out.println() wendet auf alle Objektparameter (außer Strings) vor dem Ausdrucken die Methode tostring() an. Der Code Yen betrag = new Yen(200000); System.out.println("Betrag: " + betrag); ist gleichwertig zu: Yen betrag = new Yen(200000); System.out.println( "Betrag: " + betrag.tostring()); 31/35

32 Die Methode tostring Die Standardimplementierung der Klasse Object führt zu einem Ausdruck der Form: Betrag: Konsole Deshalb macht es Sinn, tostring() geeignet zu überschreiben: public public class class Yen Yen implements Waehrung { private private double double wert; wert; public public String String tostring() { return return wert wert + " Yen"; Yen"; Betrag: Yen Konsole 32/35

33 Object für Kollektionen Die Superklasse Object kann verwendet werden, um Objekte beliebigen Typs in Kollektionen (Mengen, Multimengen, Listen) zu verwalten: public class CircularArray { private final static int int SIZE SIZE = 100; 100; private int int index; private Object[] elements; public CircularArray() { elements = new new Object[SIZE]; index = 0; 0; 33/35

34 Object für Kollektionen public void void add(object element) { elements[index] = element; index = (index + 1) 1) % SIZE SIZE ; public Object pop() { index = ( index > 0 )? index-1 : SIZE SIZE -1; -1; return elements[index]; 34/35

35 Object für Kollektionen Verwendung für Student-Objekte CircularArray array = new CircularArray(); Student studi1 = new Student(); studi1.setname("karla Karlson"); studi1.setnummer(12345); Student is-a Object array.add(studi1); Student studi2 = (Student) array.pop(); Typwandlung nötig, da pop-methode Ergebnis vom Typ Object liefert! 35/35

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

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

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

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

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 / 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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 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

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

Ü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

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

Erste Java-Programme (Java Wiederholung & Vererbung)

Erste Java-Programme (Java Wiederholung & Vererbung) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

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

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Übungen zu Vererbung & Polymorphismus

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Übungen zu Vererbung & Polymorphismus Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Übungen zu Vererbung & Polymorphismus Übung 1 Welche Ausgabe liefert das folgende Codestück? Object Object dollar dollar USDollar(1);

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

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

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

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

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

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

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

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

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

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

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

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

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

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

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

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

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. 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

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

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

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

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

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

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben

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

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

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

Info B VL 8: Abstrakte Klassen & Interfaces

Info B VL 8: Abstrakte Klassen & Interfaces Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte

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

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

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

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

Teil 2: Weitere Aspekte der Objektorientierung

Teil 2: Weitere Aspekte der Objektorientierung Teil 2: Weitere Aspekte der Objektorientierung Klassenvariablen So wie es Instanzvariablen gibt, die zu einer gewissen Instanz (Objekt) gehören und deren Attribute speichern, so gibt es aus Klassenvariablen:

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/

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

Klassen und Konstruktoren in Java

Klassen und Konstruktoren in Java Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle

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

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

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

Vererbung, Polymorphismus

Vererbung, Polymorphismus Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign

Mehr

Abstrakte Basisklassen

Abstrakte Basisklassen Abstrakte Basisklassen Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 24.06.2018 15:20 Abstrakte Basisklassen 1/18 Idee (1/2) Gegensätze: Interfaces ausschließlich Methodenköpfe, keine

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

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. 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

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung

Mehr

Programmiertechnik Noch mehr Übung macht den größeren Meister!

Programmiertechnik Noch mehr Übung macht den größeren Meister! Programmiertechnik Noch mehr Übung macht den größeren Meister Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Übung 1 Welche Ausgabe liefert das folgende Codestück? Object dollar = new USDollar(1);

Mehr

Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit

Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit Martin Wirsing Ziele en Begriff der einfachen und mehrfachen Vererbung verstehen Vererbung und Redefinition von Oberklassenmethoden

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

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

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

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

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

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

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

1 Einleitung Generizität Syntax... 2

1 Einleitung Generizität Syntax... 2 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Ersetzbarkeit und Verhalten

Ersetzbarkeit und Verhalten Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void

Mehr

Programmiertechnik Objektorientierung, Teil 2

Programmiertechnik Objektorientierung, Teil 2 Programmiertechnik Objektorientierung, Teil 2 Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Einschub: Pakete Java-Klassen können in Paketen organisiert sein. Ein Paket (package) ist eine Sammlung

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

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

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/

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

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

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

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