Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern
|
|
- Heinrich Blau
- vor 8 Jahren
- Abrufe
Transkript
1 Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind
2 Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben allgemeine Eigenschaften und Methoden eines Objekts. Spezielle Objekte erben die allgemeinen Eigenschaften und Methoden. Eltern-Kind-Beziehung. Polymorphie (Vielgestaltig): Geerbte Methoden werden an die speziellen Eigenschaften eines Objektes angepasst. Methoden sind in Abhängigkeit des Datentyps unterschiedlich implementiert. Objektorientierte Programmierung, Seite 2
3 Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches Modell ab. Das Modell sollte maximal drei Ebenen besitzen. Objektorientierte Programmierung, Seite 3
4 Beispiel Konto GiroKonto - dispo : float - kontonummer : string - pinnummer : string +abheben(float betrag) +einzahlen(float betrag) +eroeffnen +schliessen FestgeldKonto - laufzeit : int - zins : float Objektorientierte Programmierung, Seite 4
5 Darstellung der Vererbung Die Vererbung von Klassen kann mit Hilfe einer Baumstruktur abgebildet werden. Die Wurzel ist die Mutter aller Klassen. In Python wird die Klasse «object» genutzt. Darunter verzweigen sich die Klassen. Um so tiefer man eindringt, um so spezieller werden die Klassen. Um so näher man an der Wurzel ist, um so allgemeiner sind die Klassen. In der Vererbung werden gerichtete Beziehungen beschrieben. Ein Girokonto ist ein Konto. Ein Ballon ist ein Luftfahrzeug. Objektorientierte Programmierung, Seite 5
6 Regeln Es werden alle Attribute und Methoden von der Basisklasse geerbt. Neue Attribute und Methoden können hinzufügt werden. Methoden aus der Basisklasse können überschrieben werden. Die Methoden aus der Basisklasse werden mit einer neuen Funktionalität versehen. Objektorientierte Programmierung, Seite 6
7 Basis- und Subklassen Basisklasse Fahrzeuge Subklasse Land Wasser Luft Schiene Motorisiert Unmotorisiert Unmoterisiert Motorisiert Flugzeug Zeppelin Heißluftballon Objektorientierte Programmierung, Seite 7
8 Subklasse (Unterklasse, abgeleitete Klasse)... erbt von der Basisklasse alle Attribute und Methoden. beschreibt die speziellen Elemente einer Klasse. ist von einer anderen Klasse abgeleitet. befindet sich in der Hierarchie unterhalb einer anderen Klasse. Objektorientierte Programmierung, Seite 8
9 Basisklasse (Oberklasse, parent class)... ist der Ausgangspunkt für die Bildung von weiteren Klassen. implementiert Kategorien für Klassen. fasst Gemeinsamkeiten von verschiedenen Klassen zusammen. sortiert verschiedene Klassen in Schubladen ein. kann selber Subklasse einer anderen Basisklasse sein. Objektorientierte Programmierung, Seite 9
10 Generalisierung und Spezialisierung Spezialisierung Fahrzeuge Generalisierung Land Wasser Luft Schiene Motorisiert Unmotorisiert Unmoterisiert Motorisiert Flugzeug Zeppelin Heißluftballon Objektorientierte Programmierung, Seite 10
11 Generalisierung... sucht Gemeinsamkeiten aller Klassen in einer Projektbeschreibung. kategorisiert Klassen. nutzt die Bottom-Up-Methode. Die Klassen werden zuerst allgemein beschrieben und anschließend in Abhängigkeit der Aufgabe spezialisiert. Objektorientierte Programmierung, Seite 11
12 Spezialisierung... beschreibt die Aktion erbt von. stellt eine ist eine -Beziehung dar. beschreibt exakt ein Objekt in einer Schublade. nutzt die Top-Down-Methode. Es werden zuerst alle benötigten Klassen in der Projektbeschreibung gesucht und implementiert. Anschließend werden Gemeinsamkeiten gesucht und diese in übergeordneten Klassen implementiert. Objektorientierte Programmierung, Seite 12
13 Basisklasse in Python «class Grafik(object): ANZAHL = 0 def init (self, x = 0, y = 0): pass def set_pos(self, xpos, ypos): pass» def get_pos(self): pass Objektorientierte Programmierung, Seite 13
14 Klassenkopf einer Basisklasse... «class Klassenname(object)». beginnt mit dem Schlüsselwort «class». Dem Schlüsselwort folgt der Klassenname. Der Klassenname... ist frei wählbar. identifiziert eindeutig eine Klasse. Am Ende des Kopfes folgt die Parameterliste, begrenzt durch die runden Klammern. Objektorientierte Programmierung, Seite 14
15 Parameterliste «class Klassenname(object)». beginnt und endet mit den runden Klammern. enthält Namen von definierten Klassen. Die Elemente in der Liste werden durch Kommata getrennt. der Basisklasse ist leer oder sollte von «object» erben. Objektorientierte Programmierung, Seite 15
16 Subklasse in Python «class Rechteck(Grafik): def init (self, breite = 10, hoehe = 20): Grafik. init (self, 0, 0) self. height = hoehe self. width = breite def set_groesse(self, breite, hoehe): pass» def get_groesse(self): pass Objektorientierte Programmierung, Seite 16
17 Klassenkopf einer Subklasse... «class Klassenname(basisklasse, basisklasse)». beginnt mit dem Schlüsselwort «class». Dem Schlüsselwort folgt der Klassenname. Der Klassenname... ist frei wählbar. identifiziert eindeutig eine Klasse. Am Ende des Kopfes folgt die Parameterliste, begrenzt durch die runden Klammern. Objektorientierte Programmierung, Seite 17
18 Parameterliste «class Klassenname(basisklasse, basisklasse)». beginnt und endet mit den runden Klammern. enthält Namen von definierten Klassen. Die Elemente in der Liste werden durch Kommata getrennt. Eine Mehrfachvererbung ist durch die Nennung von mehreren Klassen für eine Subklasse realisierbar. Die Subklasse basiert auf mehr als eine Klasse. Objektorientierte Programmierung, Seite 18
19 Methoden aufrufen Methoden in der Subklasse: «[subklasse].[methode](arg01, arg02)» Methoden aus der Basisklasse: «[subklasse].[methode](arg01, arg02)» Die Methode wird der Klasse durch ein Punkt verbunden. Jeder Methode können mit Hilfe der Parameterliste verschiedenen Werte übergeben werden. Die Elemente in der Liste werden durch Kommata getrennt. Die angegebene Methode wird zuerst in der Subklasse gesucht. Falls sie dort nicht vorhanden ist, werden die Basisklassen in der, in der in der Parameterliste angegebenen Reihenfolge durchsucht. Objektorientierte Programmierung, Seite 19
20 Beispiel «# Basisklasse class Grafik(object): def set_pos(self, xpos, ypos): pass def get_xpos(self): return self. xpos def write_pos(self): pass «# Subklasse class Grafik(object): def set_groesse(self, breite, hoehe): pass def get_groesse(self): pass def write_groesse(self): pass» mygrafik = modul.grafik(20,20) mygrafik.write_pos()()» myrechteckstandard = modul.rechteck() myrechteckstandard.write_pos() myrechteckstandard.write_groesse() Objektorientierte Programmierung, Seite 20
21 Benutzerdefinierte Fehlerklasse «class clsmyerror(exception): fehlermeldung = {5000 : "Negative Zahl", 6000 : "Wert = 0"} def init (self, fehlernr): self.fehlernr = fehlernr» def getmeldung(self): return clsmyerror.fehlermeldung[self.fehlernr] Objektorientierte Programmierung, Seite 21
22 Hinweise Benutzerdefinierte Fehlerklassen sollten immer von der vordefinierten Klasse «exception» erben. Der Programmierer kann die Fehlerklassen aber selber gestalten. Fehlerklassen sollten möglichst einfach sein. Objektorientierte Programmierung, Seite 22
23 Nutzung von benutzerdefinierten Fehlerklasse «import fehler_class try: divident = float(strdivident) if (divident < 0): raise fehler_class.clsmyerror(5000) except fehler_class.clsmyerror as e: print(e.getmeldung())» Objektorientierte Programmierung, Seite 23
24 Polymorphie (Vielgestaltigkeit, Ähnlichkeit) innerhalb einer Klasse: Nachbildung von mathematischen Operationen, Vergleichsoperationen etc, um die Funktionalität der Klasse an vordefinierte Klassen anzupassen. Überladung von Klassen. bei der Vererbung von Klassen: Die Subklasse überschreibt eine Methode der Basisklasse. Die Subklasse nutzt virtuelle Methoden. Objekte einer Subklasse, die alle die gleiche Basisklasse nutzen, reagieren auf ein und dieselbe Nachricht unterschiedlich. Objektorientierte Programmierung, Seite 24
25 Methoden überschreiben Methoden aus der Basisklasse werden überdeckt. Geerbte Methoden werden mit einer neuen Funktionalität versehen. Die Methode aus der Basisklasse wird in der Subklasse neu definiert. Konstruktoren der Basisklassen werden häufig überschrieben. Objektorientierte Programmierung, Seite 25
26 Konstruktor überschreiben «class Grafik(object): def init (self, x = 0, y = 0): self. xpos = x self. ypos = y» class Rechteck(Grafik): def init (self, breite = 10, hoehe = 20): Grafik. init (self, 0, 0) self. height = hoehe self. width = breite self. xposro = breite self. yposro = hoehe Objektorientierte Programmierung, Seite 26
27 Konstruktor einer Subklasse «def init (self, breite = 10, hoehe = 20)». beginnt mit dem Schlüsselwort «def». hat immer den Namen «init» hat eine Parameterliste, die durch runde Klammern begrenzt wird. In dieser Parameterliste werden alle zu übergebenen Parameter aufgelistet. Die Listenelemente werden durch ein Kommata getrennt. ruft zuerst den Konstruktor der Basisklasse auf «Grafik. init (self, 0, 0)» und setzt anschließend die Objektattribute der Subklasse. Objektorientierte Programmierung, Seite 27
28 Methode in der Basisklasse class Grafik(object): def set_pos(self, xpos, ypos): self. xpos = xpos self. ypos = ypos Objektorientierte Programmierung, Seite 28
29 überschreiben «class Rechteck(Grafik): def set_pos(self, x_lo, y_lo, x_ro = 0, y_ro = 0): abstandx = self.get_xpos() - x_lo abstandy = self.get_ypos() - y_lo super().set_pos(x_lo, y_lo)» if (x_ro > 0): self. width = self. width + abstandx else: self. xposro = self.get_xpos() + self. width Objektorientierte Programmierung, Seite 29
30 Zugriff auf Methoden der Basisklasse... mit Hilfe der Methode «super()»: Beispiel: «super().set_pos(x_lo, y_lo)». Arbeitet nur mit Basisklassen zusammen, die von «object» erben. Seit Python 2.2 ist die Methode implementiert. mit Hilfe des Namens: Beispiel: «Grafik. init (self, 0, 0)». Die Angabe des Objekts «self» wird immer benötigt. Objektorientierte Programmierung, Seite 30
31 Operatoren überladen, um... Rechenoperatoren oder Vergleichsoperatoren für benutzerdefinierte Datentypen zu implementieren. Klassen mit einer Funktionalität ähnlich wie Standard- Datentypen auszustatten. Objektorientierte Programmierung, Seite 31
32 Beispiel Das Pluszeichen kann eine Ganzzahl oder Dezimalzahl addieren. Das Pluszeichen wurde für Strings überladen. Das Pluszeichen verkettet zwei Strings. Objektorientierte Programmierung, Seite 32
33 Operatoren in Python Umgangssprachliche Schreibweise: summe = a + b Der Operator definiert eine Verknüpfungsvorschrift. Formale Schreibweise: summe = add (a, b) Die Operatoren sind als Methoden implementiert. Der Methode «add» werden zwei Objekte übergeben. Das Ergebnis der Berechnung wird zurückgegeben. Objektorientierte Programmierung, Seite 33
34 Addition neu definieren «class Rechteck(Grafik): def add (self, other): breite = self. width + other. width hoehe = self. height + other. height newrechteck = Rechteck(breite, hoehe)» return newrechteck Objektorientierte Programmierung, Seite 34
35 Ist gleich neu definieren «class Rechteck(Grafik): def eq (self, other): proofx = self.get_xpos() == other.get_xpos() proofy = self.get_ypos() == other.get_ypos()» return (proofx and proofy) Objektorientierte Programmierung, Seite 35
36 String definieren class Rechteck(Grafik): def str (self): ausgabe = "X-Position, oben links: " + str(self.get_xpos()) ausgabe = ausgabe + "\ny-position, oben links "+ str(self.get_ypos()) ausgabe = ausgabe + "\nx-position, unten rechts: "+ str(self. xposro) ausgabe = ausgabe + "\ny-position, unten rechts "+ str(self. yposro) return ausgabe Objektorientierte Programmierung, Seite 36
37 Aufruf der überladenen Operatoren «RechteckGross = myrechteckstandard + Rechteck_Basisklasse.Rechteck(100, 100) print("position gleich? ", RechteckGross == RechteckPos)» print(rechteckgross) Objektorientierte Programmierung, Seite 37
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrKlassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla
BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung
MehrObjektorientierte Programmierung mit Python Objekt und Klassen
Objektorientierte Programmierung mit Python Objekt und Klassen hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Eine Aufgabe wird
Mehr5. 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:
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
Mehr5. 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,
MehrKompetent objektorientiert programmieren
Kompetent objektorientiert programmieren Aegidius Plüss, Bern, www.aplu.ch Eine objektorientierte Programmiersprache steht auf drei fundamentalen Säulen: Klassenkapselung (encapsulation) Vererbung (inheritance)
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern
MehrProgrammieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen
Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrInformatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrGetName(), GetName(), GetGeschlecht() und AelterWerden().
11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
Mehr7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure
7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG
MehrInformatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse
rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 25. Mai 2009 1/10 Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse Prof. G. Kemnitz Institut
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
Mehr3 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
MehrProgrammierkurs Python I
Programmierkurs Python I Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Übersicht mehr zu OOP: - Hintergründe - Vererbung Methoden zur Operatoren-Überladung
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Mehr5.6 Vererbung. Vererbung
5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrExcel Funktionen durch eigene Funktionen erweitern.
Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrInformatik für Schüler, Foliensatz 21 Objektorientierte Programmierung
rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 23. April 2009 1/14 Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung Prof. G. Kemnitz Institut für Informatik,
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
MehrOO Softwareentwicklung
OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
Mehr11 Objektorientierte Programmierung, Teil 2
11 Objektorientierte Programmierung, Teil 2 Ein wesentliches Konzept der objektorientierten Programmierung fehlt uns noch: die Vererbung 203 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben
MehrDiana Lange. Generative Gestaltung Operatoren
Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.
MehrBEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
MehrPIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrFormale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009
Formale Spezialisierungstechniken am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009 Spezialisierungsarten (Typbeziehungen erster Art) X stellt Methoden und Eigenschaften
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrEinführung in die Programmierung mit Java. Hörsaalübung
Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung
Mehr10 Objektorientierte Programmierung, Teil 1
10 Objektorientierte Programmierung, Teil 1 Wir lernen nun eine andere Technik (vor allem: eine andere Sichtweise) kennen, um unsere Programm zu organisieren, nämlich mittels Klassen und Objekten 184 Objekte,
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrObjektorientierte Programmierung
Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
Mehr4 Vererbung, Polymorphie
4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Mehr368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
MehrC++ - 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
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrObjektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ
Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die
MehrObjektorientiertes JavaScript
Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische
MehrProgrammieren Tutorium
Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,
MehrSEQUENZDIAGRAMM. Christoph Süsens
SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von
MehrEinführung in die Programmierung für NF
Einführung in die Programmierung für NF UML Valerie Holmeyer Michael Kirsch Direct Feedback Eure Mitarbeit ist mir wichbg Quiz nach den jeweiligen AbschniGen Jeder kann mitmachen App socra&ve auf Smartphone
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrObjektorientierung: Klassen und Objekte
Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in
MehrPHP Aufbaukurs. Tag 3. PHP5 & Klassen
PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1
MehrBedienung von BlueJ. Klassenanzeige
Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
MehrObjektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11
Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16
Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier
MehrWurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik
Wurzeln als Potenzen mit gebrochenen Exponenten Zur Einstimmung Wir haben die Formel benutzt x m n = x m n nach der eine Exponentialzahl potenziert wird, indem man die Exponenten multipliziert. Dann sollte
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
MehrKlassendiagramm. (class diagram)
: Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrC++ - Einführung in die Programmiersprache Objektorientierte Programmierung
C++ - Einführung in die Programmiersprache Objektorientierte Programmierung hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Projekt
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrClient-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
Mehr1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung
K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrGliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
MehrWord 2010 Schnellbausteine
WO.001, Version 1.0 02.04.2013 Kurzanleitung Word 2010 Schnellbausteine Word 2010 enthält eine umfangreiche Sammlung vordefinierter Bausteine, die sogenannten "Schnellbausteine". Neben den aus den früheren
MehrAufgabensammlung Bruchrechnen
Aufgabensammlung Bruchrechnen Inhaltsverzeichnis Bruchrechnung. Kürzen und Erweitern.................................. 4. Addition von Brüchen................................... Multiplikation von Brüchen...............................
MehrFolge 18 - Vererbung
Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,
MehrProgrammiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische
MehrDokumentation für das Spiel Pong
Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
Mehr1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
Mehr