Die Welt in unseren Programmen false -1.4E-12. false. Klassen

Größe: px
Ab Seite anzeigen:

Download "Die Welt in unseren Programmen false -1.4E-12. false. Klassen"

Transkript

1 Algorithmen und Datenstrukturen Die Welt in unseren Programmen Die Welt in unseren Programmen Wintersemester 2012/13 9. Vorlesung Sortieren von Objekten true "HalloWelt!" false false -1.4E-12 Jan-Henrik Haunert Lehrstuhl für Informatik I bisher mit Objektorientierung Übersicht in Java (Wiederholung Vorkurs) Vererbung Sortieren geometrischer Formen abstrakte und Methoden Mehrfachvererbung Eine Klasse definiert gemeinsame Eigenschaften einer Menge von Objekten. Jedes Objekt ist Instanz einer Klasse (oder ein Feld). Klasse Eine Klasse definiert gemeinsame Eigenschaften einer Menge von Objekten. Jedes Objekt ist Instanz einer Klasse (oder ein Feld). Attribute sind Datenelemente, die in jedem Objekt einer Klasse gleichermaßen enthalten sind und von jedem Objekt mit individuellen Werten repräsentiert werden können. Objekt Beispiel: //der Strassenname //die Postleitzahl //der Ortsname

2 Beispiel: Bezeichner der Klasse (Konvention: Beginn mit Großbuchstabe) Beispiel: Datentyp Attribute Bezeichner Beispiel: muss in Datei Adresse.java gespeichert werden! public class Adressbuch { public class Adressbuch { //Instantiierung: public class Adressbuch { //Instantiierung: //Setze Attributwerte: System.out.print(a.str + ", " + a.plz + " " + a.ort); System.out.print(a.str + ", " + a.plz + " " + a.ort); System.out.print(a.str + ", " + a.plz + " " + a.ort);

3 public class Adressbuch { //Instantiierung: //Setze Attributwerte: //Ausgabe System.out.print(a.str + ", " + a.plz + " " + a.ort); public class Adressbuch { Adresse b = a; b.ort = "Nuernberg"; System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); Adresse b = a; b.ort = "Nuernberg"; a schablone legt neue Karteikarte an: str plz ort System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); Karteikarte wird ausgefüllt: b zeigt auf dieselbe Instanz wie a: aktualisiere b.ort und damit auch a.ort Adresse b = a; b.ort = "Nuernberg"; a str plz ort Am Hubland Wuerzburg Adresse b = a; b.ort = "Nuernberg"; b a str plz ort Am Hubland Wuerzburg Adresse b = a; b.ort = "Nuernberg"; b a str plz ort Am Hubland Nuernberg System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort);

4 Adresse b = a; b.ort = "Nuernberg"; System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); Ausgabe: b a str plz ort Am Hubland Nuernberg Am Hubland, Nuernberg Am Hubland, Nuernberg sind Referenzdatentypen! (genau wie Felder) methoden (static) //testet, ob a und b dieselbe Postleitzahl haben public static boolean habenselbeplz(adresse a, Adresse b) { return (a.plz == b.plz); Beispiel: Adresse b = new Adresse(); b.ort = "Wuerzburg"; name b.plz = 97074; b.str = "Zeppelinstrasse"; if (Adresse.habenSelbePlz(a, b)) System.out.println("a und b haben dieselbe PLZ"); Instanzmethoden (nicht static) //testet, ob this dieselbe Postleitzahl wie a hat public boolean hatselbeplz(adresse a) { return (this.plz == a.plz); Beispiel: Adresse b = new Adresse(); Bezeichner b.ort = "Wuerzburg"; b.plz = 97074; einer Instanz b.str = "Zeppelinstrasse"; if (a.hatselbeplz(b)) System.out.println("a und b haben dieselbe PLZ"); public static void insertionsort(int[] a) { int key = a[j]; while (i >= 0 && a[i] > key) { i--; Java-Code: y p 1 public class Punkt { public double x; public double y; Voraussetzung fürs Definition einer Ordnung p 2 p 4 p 3 x UML-Diagramm: +x:double +y:double p i < p j genau dann, wenn p i.x < p j.x oder Punkt ( p i.x = p j.x und p i.y < p j.y) = lexikographische Ordnung

5 Umsetzung in Java: public class Punkt { public double x; public double y; /* gibt Wert < 0 fuer (this < p), Wert > 0 fuer (this > p) und 0 fuer (this = p) zurueck */ public int compareto(punkt p) { if (this.x < p.x) return -1; if (this.x == p.x) { if (this.y < p.y) return -1; if (this.y == p.y) return 0; return 1; UML-Diagramm: +x:double +y:double Punkt +compareto(punkt):int Achtung! Eine Ordnung ist immer transitiv: a > b und b > c a > c Entsprechend in Java: a.compareto(b) > 0 und b.compareto(c) > 0 a.compareto(c) > 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! Achtung! Eine Ordnung ist immer transitiv: a > b und b > c a > c Entsprechend in Java: a.compareto(b) < 0 und b.compareto(c) < 0 a.compareto(c) < 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! Achtung! Eine Ordnung ist immer transitiv: a > b und b > c a > c Entsprechend in Java: a.compareto(b) == 0 und b.compareto(c) == 0 a.compareto(c) == 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! Achtung! Bedingung 2: a > b a = b b < a b = a Entsprechend in Java: a.compareto(b) > 0 b.compareto(a) < 0 a.compareto(b) == 0 b.compareto(a) == 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! Achtung! Bedingung 3: a = b a = b und c > b c > a und c < b c < a Entsprechend in Java: a.compareto(b) == 0 und c.compareto(b) > 0 c.compareto(a) > 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers!

6 Achtung! Bedingung 3: a = b a = b und c > b c > a und c < b c < a Entsprechend in Java: a.compareto(b) == 0 und c.compareto(b) < 0 c.compareto(a) < 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! public static void insertionsort(int[] a) { int key = a[j]; while (i >= 0 && a[i] > key) { i--; public static void insertionsort(punkt[] a) { Punkt key = a[j]; while (i >= 0 && a[i].compareto(key) > 0) { i--; Ein Konstruktor für die Klasse Punkt: public class Punkt { public double x; public double y; public Punkt(double myx, double myy) { x = myx; y = myy; /* gibt Wert < 0 fuer (this < p), Wert > 0 fuer (this > p) und 0 fuer (this = p) zurueck */ public int compareto(punkt p) { if (this.x < p.x) return -1; if (this.x == p.x) { if (this.y < p.y) return -1; if (this.y == p.y) return 0; return 1; UML-Diagramm: +x:double +y:double Punkt +Punkt(double, double) +compareto(punkt):int Punkt[] a = new Punkt[4]; a[0] = new Punkt(1, 2); a[1] = new Punkt(1, 1); a[2] = new Punkt(3, 1); a[3] = new Punkt(4, 3); insertionsort(a); for (int i = 0; i < a.length; i++) System.out.println(a[i].x + " " + a[i].y); public static void insertionsort(punkt[] a) { Punkt[] a = new Punkt[4]; a[0] = new Punkt(1, 2); a[1] = new Punkt(1, 1); a[2] = new Punkt(3, 1); Ausgabe: a[3] = new Punkt(4, 3); insertionsort(a); for (int i = 0; i < a.length; i++) System.out.println(a[i].x.x + " " + a[i].y); public static void insertionsort(punkt[] a) {

7 Braucht man für jede Klasse eine neue Sortiermethode? Nein, dafür gibt es Vererbung, Generics... public static void insertionsort(punkt[] a) { Punkt key = a[j]; while (i >= 0 && a[i].compareto(key) > 0) { i--; public class { //ein achsparalleles //der Mittelpunkt public double a; //die Seitenlaenge a = mya; Problem: Punkt p = new Punkt(0.2, 0.4); q = new (p, -1.2); oder q.a = -1.2; erzeugt mit negativer Seitenlaenge. +a:double +(Punkt, double) public class { //ein achsparalleles //der Mittelpunkt private double a; //die Seitenlaenge +(Punkt, double) Lösung: Direkter Zugriff auf a (von Außen) wird verboten. q = new (new Punkt(0.0,0.0),1.0); q.a = 2.0; "The field.a is not visible" public class { //ein achsparalleles //der Mittelpunkt private double a; //die Seitenlaenge +(Punkt, double) Lösung: Direkter Zugriff auf a (von Außen) wird verboten. Zugriff wird über get- und set-methode kontrolliert. public class { //ein //der Mittelpunkt private double r; //der Radius public (Punkt mym, double myr) { setr(myr); return Math.PI * r * r; public void setr(double myr) { if (myr > 0) r = myr; public double getr() { return r; +(Punkt, double)

8 public class { //ein //der Mittelpunkt private double r; //der Radius public (Punkt mym, double myr) { setr(myr); return Math.PI * r * r; public void setr(double myr) { if (myr > 0) r = myr; public double getr() { return r; +(Punkt, double) Gemeinsamkeiten? Jeder und jedes ist eine geometrische Figur +(Punkt, double) +(Punkt, double) Gemeinsamkeiten? Jede hat einen Mittelpunkt. +(Punkt, double) Die Klasse / erbt die Definition des Attributs m von. +(Punkt, double) Gemeinsamkeiten? Für jede kann man den Flächeninhalt berechnen. Gemeinsamkeiten? Die Klasse kann einen eigenen Konstruktor haben. +(Punkt) Gemeinsamkeiten? Eine kann mit einer anderen verglichen werden (zwecks Sortieren). +(Punkt) +compareto():int +(Punkt, double) +(Punkt, double) +(Punkt, double) +(Punkt, double) +(Punkt, double) +(Punkt, double) Aber: Für e und e gelten verschiedene Formeln. Die Methode getflaeche muss überschrieben werden.

9 Klasse in Java: public class { public (Punkt mym) { return 0.0; public int compareto( key) { if (this.getflaeche() > key.getflaeche()) return 1; if (this.getflaeche() < key.getflaeche()) return -1; return 0; Anpassung der Klasse : public class { private double a; Anpassung der Klasse : public class extends { private double a; kennzeichnet Vererbung Anpassung der Klasse : public class extends { private double a; ist bereits in definiert Anpassung der Klasse : public class extends { private double a; ist bereits in definiert Anpassung der Klasse : public class extends { private double a; super(mym); im Konstruktor muss als erstes der Konstruktor der Superklasse aufgerufen werden.

10 Anpassung der Klasse : public class extends { private double a; super(mym); Anpassung der Klasse : public class { private double r; public (Punkt mym, double myr) { setr(myr); return Math.PI * r * r; public void setr(double myr) { if (myr > 0) r = myr; public double getr() { return r; Anpassung der Klasse : public class extends { private double r; public (Punkt mym, double myr) { super(mym); setr(myr); return Math.PI * r * r; public void setr(double myr) { if (myr > 0) r = myr; public double getr() { return r; [] a = new [4]; a[0] = new (new Punkt(0.0, 0.0), 2.0); a[1] = new (new Punkt(1.0, 2.0), 4.0); a[2] = new (new Punkt(2.0, 0.0), 2.0); a[3] = new (new Punkt(0.0, 1.0), 4.0); insertionsort(a); [] a = new [4]; a[0] = new (new Punkt(0.0, 0.0), 2.0); a[1] = new (new Punkt(1.0, 2.0), 4.0); a[2] = new (new Punkt(2.0, 0.0), 2.0); a[3] = new (new Punkt(0.0, 1.0), 4.0); insertionsort(a); Ein ist halt auch eine. [] a = new [4]; a[0] = new (new Punkt(0.0, 0.0), 2.0); a[1] = new (new Punkt(1.0, 2.0), 4.0); a[2] = new (new Punkt(2.0, 0.0), 2.0); a[3] = new (new Punkt(0.0, 1.0), 4.0); insertionsort(a); for (int i = 0; i < a.length; i++) System.out.println(a[i].getClass().toString() + " " + a[i].getflaeche()); public static void insertionsort([] a) { for (int i = 0; i < a.length; i++) System.out.println(a[i].getClass().toString() + " " + a[i].getflaeche()); public static void insertionsort([] a) { for (int i = 0; i < a.length; i++) System.out.println(a[i].getClass().toString() + " " + a[i].getflaeche()); public static void insertionsort([] a) {

11 public static void insertionsort([] a) { key = a[j]; while (i >= 0 && a[i].compareto(key) > 0) { i--; public static void insertionsort([] a) { key = a[j]; while (i >= 0 && a[i].compareto(key) > 0) { i--; compareto ruft die richtige Flächenmethode auf (d.h., die Implementierungen für e und e). public static void insertionsort([] a) { key = a[j]; Ausgabe: while (i >= 0 && a[i].compareto(key) > 0) { class i--; 4.0 class 16.0 class class Vorteil der objektorientierten Programmierung: Entwickler A möchte e nach Flächeninhalt sortieren. A braucht nur noch Klasse zu implementieren und dabei als Unterklasse von zu definieren. Dann kann er insertionsort aus Sortierverfahren zum Sortieren verwenden. Achtung: Methode getflaeche muss in Klasse getflaeche():double implementiert sein! Entwicklerin B hat bereits Klasse Sortierverfahren und programmiert. Sortierverfahren +(Punkt) +insertionsort([]) +compareto():int Vorteil der objektorientierten Programmierung: Achtung: Methode getflaeche muss in Klasse getflaeche():double implementiert sein! Das sollte Entwicklerin B anderen Entwicklern mitteilen! Dazu kann B Klasse und Methode getflaeche als abstract definieren. Sortierverfahren +(Punkt) +insertionsort([]) +compareto():int Eine abstrakte Methode einer Klasse muss in jeder Unterklasse von implementiert werden. Eine abstrakte Klasse ist eine Klasse, die eine abstrakte Methode enthält. Namen von abstrakten und Methoden werden in UML kursiv geschrieben. Sortierverfahren +insertionsort([]) getflaeche():double +(Punkt) +compareto():int

12 Eine abstrakte Methode einer Klasse muss in jeder Unterklasse von implementiert werden. Eine abstrakte Klasse ist eine Klasse, die eine abstrakte Methode enthält. Abstrakte und Methoden werden in Java durch das Schlüsselwort abstract gekennzeichnet. Methodenrumpf entfällt! public abstract class { public (Punkt mym) { public abstract double getflaeche(); public int compareto( key) {... abstrakte und Methoden Klasse als abstrakte Klasse: public abstract class { public (Punkt mym) { Auf öffentliche Konstruktoren sollte verzichtet werden! public abstract double getflaeche(); public int compareto( key) { if (this.getflaeche() > key.getflaeche()) return 1; if (this.getflaeche() < key.getflaeche()) return -1; return 0; Von einer abstrakten Klasse können keine Instanzen erzeugt werden: Punkt p = new Punkt(0.0, 0.0); g = new (p); "Cannot instantiate the type " abstrakte und Methoden Klasse als abstrakte Klasse: public abstract class { Kann nur noch von protected (Punkt mym) { Unterklassen aufgerufen werden! public abstract double getflaeche(); public int compareto( key) { if (this.getflaeche() > key.getflaeche()) return 1; if (this.getflaeche() < key.getflaeche()) return -1; return 0; Von einer abstrakten Klasse können keine Instanzen erzeugt werden: Punkt p = new Punkt(0.0, 0.0); g = new (p); "Cannot instantiate the type " [] a = new [4]; a[0] = new (new Punkt(0.0, 0.0), 2.0); a[1] = new (new Punkt(1.0, 2.0), 4.0); a[2] = new (new Punkt(2.0, 0.0), 2.0); a[3] = new (new Punkt(0.0, 1.0), 4.0); insertionsort(a); Hier kein Kostruktoraufruf! Feld zum Speichern von Objekten der Klasse wird erstellt. Das ist erlaubt! for (int i = 0; i < a.length; i++) System.out.println(a[i].getClass().toString() + " " + a[i].getflaeche()); public static void insertionsort([] a) { Landtier public double getgewichtskraft() { return masse * 9.81; Mehrfachvererbung Tier +masse:double +volumen:double Wassertier masse in kg, volumen in m 3 public double getgewichtskraft() { double auftrieb = volumen * ; return masse * auftrieb; Landtier Mehrfachvererbung Tier +masse:double +volumen:double Frosch Frosch f = new Frosch(); f.masse = 0.2; f.volumen = 0.005; System.out.println(f.getGewichtskraft()); Wassertier masse in kg, volumen in m 3?

13 Mehrfachvererbung Tier +masse:double +volumen:double masse in kg, volumen in m 3 Dafür gibt es Interfaces... Interfaces Landtier Wassertier Frosch In Java ist Mehrfachvererbung verboten!?

Sortieren von Objekten

Sortieren von Objekten Algorithmen und Datenstrukturen Wintersemester 2013/14 18. Vorlesung Sortieren von Objekten Krzysztof Fleszar Lehrstuhl für Informatik I 1 Die Welt in unseren Programmen 1.357374356-4.526426 25236748458

Mehr

Interfaces und Generics

Interfaces und Generics Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Interfaces und Generics Jan-Henrik Haunert Lehrstuhl für Informatik I Übersicht Liste und InsertionSort für Punkte für Objekte beliebiger

Mehr

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Übersicht Liste und InsertionSort für e für Objekte beliebiger Klassen für Objekte von Klassen, die ein(e) Nutzer(in) festlegen kann

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 3 29.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klassen ableiten

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

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

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

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

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

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

Übersicht. Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe SS 2010! Berechnung der Cosinus-Funktion Klausuraufgabe WS 2010/2011!

Übersicht. Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe SS 2010! Berechnung der Cosinus-Funktion Klausuraufgabe WS 2010/2011! Algorithmen und Datenstrukturen Wintersemester 2012/13 8. Vorlesung Algorithmen in Java Jan-Henrik Haunert Lehrstuhl für Informatik I Übersicht Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe

Mehr

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,

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

Abstrakte Klassen und Interfaces

Abstrakte Klassen und Interfaces Abstrakte Klassen und Interfaces Thomas Schwotzer 1 Einführung Wir haben uns mit Vererbung und Polymorphie beschäftigt. Klassen sind so in der Lage, ableitenden Klassen Zugriff auf Member und Methoden

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

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

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

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

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

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12. Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis

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

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

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

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

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

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

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 8 F. Forster, T.

Mehr

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

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

Mehr

1. Abstrakte Klassen

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

Mehr

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

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

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

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

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

Mehr

II.4.2 Abstrakte Klassen und Interfaces - 1 -

II.4.2 Abstrakte Klassen und Interfaces - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1

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

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen();

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen(); Typecast class Pilz void suchen() void sammeln() class EßbarerPilz extends Pilz Suppe kochen() Suppe einesuppe = new Suppe(); return einesuppe; class GiftPilz extends Pilz void entsorgen() class Suppe

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

Kapitel 4: Klassen und Unterklassen

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

Mehr

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

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 - ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

Teil 2-3. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Teil 2-3. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II Teil 2-3. Vorlesung Modul: Programmierung B-PRG Professur für Datenbanken und Informationssysteme Dr. Karsten Tolle tolle@dbis.cs.uni-frankfurt.de 1 Wrapper-Klassen Alle primitive Datentypen haben eine

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

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

II.4.1 Unterklassen und Vererbung - 1 -

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

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

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

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

Javakurs für Anfänger

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

Mehr

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

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

Programmierkurs C++ Abstrakte Klassen und Methoden

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

Mehr

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

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 3 Lösungsvorschlag Objektorientierte Programmierung 08. 05. 2006 Lösung 8 (Java und UML-Klassendiagramm

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

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

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

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

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

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

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

Mehr

Abstrakte Klassen, Interfaces

Abstrakte Klassen, Interfaces Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces 10 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Interfaces Aber: Mehrfachvererbung von Klassen ist in Java nicht erlaubt. Ausweg Definition eines Interfaces, z.b.:

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

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

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

00-Wiederholung WIEDERHOLUNG. Programmierkonzepte und Java. Peter Vischer Schule Nürnberg. KW Donnerstag, 22.

00-Wiederholung WIEDERHOLUNG. Programmierkonzepte und Java. Peter Vischer Schule Nürnberg. KW Donnerstag, 22. WIEDERHOLUNG Programmierkonzepte und Java 1 OBJEKT ORIENTIERTE PROGRAMMIERUNG Was heißt Programmierung? Nicht doch eher Modellierung? Modellierung ist Voraussetzung für guten Code! 2 MODELLIERUNG Realität

Mehr

Tag 7 Repetitorium Informatik (Java)

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

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

Programmiervorkurs WS 2013/2014. Instanzmethoden. Termin 6

Programmiervorkurs WS 2013/2014. Instanzmethoden. Termin 6 Programmiervorkurs WS 2013/2014 Instanzmethoden Termin 6 double f = flaeche(p); public static double flaeche(polygon p) { Punkt[] pkt = p.punkte; double f = Polygon.flaeche(p); Besser: Methode in der Klasse

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

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

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

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten Fakultät IV Elektrotechnik/Informatik Klausur Einführung in die Informatik II für Elektrotechniker Name:... Matr.-Nr.... Bearbeitungszeit: 10 Minuten Bewertung (bitte offenlassen : ) Aufgabe Punkte Erreichte

Mehr

Objektorientierung III

Objektorientierung III Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 10 9.1.2017 Objektorientierung III Aufgabe 10.1. Wir sind doch alle gleich In der Vorlesung

Mehr

Informatik II Übung, Woche 17

Informatik II Übung, Woche 17 Giuseppe Accaputo 28. April, 2016 1. Vererbung 2. Vorbesprechung Übung 8 Plan für heute 3. Erweiterung des Vorlesungsverzeichnis (VVZ) (Live-Programmierung) Informatik II (D-BAUG) Giuseppe Accaputo 2 Vererbung

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

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Vererbung. Oberklassen und Unterklassen

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

Mehr

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

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus

Mehr

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuß, Henning Timm Übungsblatt 11

Mehr

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

Objektorientierung (OO)

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

Mehr

Programmieren in Java

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

Mehr

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

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

Objektorientierung. Marc Satkowski 20. November C# Kurs

Objektorientierung. Marc Satkowski 20. November C# Kurs Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung

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