1 Vererbung in Python
|
|
|
- Martin Rothbauer
- vor 6 Jahren
- Abrufe
Transkript
1 1 Vererbung in Python Eine Vererbung in Python wird grundsätzlich dadurch realisiert, indem nach dem import die Elternklasse (Oberklasse) in Klammern hinter die Kindklasse (Unterklasse) geschrieben wird. Bei einer Mehrfachvererbung werden die Elternklassen durch Komma getrennt hintereinander in die Klammer geschrieben. HINWEIS zum import: 1 from modul import name Bei diesem Aufruf wird aus dem Modul mit dem Namen modul die Klasse, Funktion oder Variable name importiert. Danach ist es als name zugreifbar. Auch komplexere Aufrufe mit umbenennen sind möglich, wie from math import sqrt as quadratwurzel Dadurch ist die Funktion sqrt() aus dem math-modul nun als quadratwurzel() bekannt. Dabei muss name auch nicht unbedingt eine Funktion sein, es kann auch eine Variable, eine Klasse oder auch eine Instanz sein. from modul import * Die letzte Option ist ein Stern-Import. Der Stern dient als Platzhalter und signalisiert, dass "alles" aus dem betreffenden Modul importiert werden soll. Dies mag zwar bequem erscheinen, so dass man nicht mehr den Modulnamen vor der Funktion schreiben muss, hat aber den Nachteil, dass bestehende Objekte (Funktionen, Klassen etc.) unbemerkt überschrieben werden können! Es passiert oft, dass dann bestehende Importe durch nachfolgende Importe bei gleichen Namen überschreiben werden. Das führt sehr oft zu schwer zu verstehenden Fehlern. Eine saubere Lösung ist es, Module generell nie mit Stern einzubinden, außer man weiß genau was man tut. HINWEIS: Es sollte immer nur das importiert werden, was gebraucht wird, möglichst keinen Stern * verwenden! from M i t a r b e i t e r import M i t a r b e i t e r c l a s s A n g e s t e l l t e r ( M i t a r b e i t e r ) : Dann können alle Attribute und Methoden von der Elternklasse (hier Mitarbeiter) genutzt werden: 1 vgl. Seite 1 /10
2 Die Methode zeigeangestellter() gehört nur zur Klasse Angestellter2. Dies ist ein Beispiel wie eine Klasse trotz Vererbung eine eigene Ausgabe bekommen kann: ACHTUNG! Bei der Ausführung der o.a. main3.py gibt es einen Fehler in Zeile 16: Seite 2 /10
3 Was ist passiert? Haben wir nicht alles richtig gemacht? Die Klasse Mitarbeiter sollte doch in Zeile 1 importiert worden sein, da Angestellter2 von Mitarbeiter erbt? Aufruf des übergeordneten Konstruktors Normalerweise wird bei der Instanziierung, also dem Aufruf des Konstruktors, automatisch der Konstruktor der Elternklasse benutzt. Das geschieht automatisch, ohne dass dieser Konstruktor in der Angestellten-Klasse nochmals definiert bzw., hingeschrieben werden muss. Allerdings gibt es genügend Fälle, in denen die Angestellten-Klasse eigene, zusätzliche, Attribute zur Elternklasse bekommt. Dann ist folgendes Vorgehen in Python notwendig (vgl. Angestellter5.py): 2 Hier lauert ein Fallstrick bei der Benutzung der import-funktion. Zwar sollte man auf das * beim Import verzichten und so genau wie möglich die zu importierenden Module bzw. Klassen angeben. Allerdings kennt hier main3.py die Klasse Mitarbeiter in diesem Falle nicht, da tatsächlich nur die Klasse Angestellter2 bekannt gemacht wird! Wenn wir also eine Ebene tiefer importieren wollen, müssen wir die Klasse explizit angeben, indem wir die Zeile 1 um die Klasse Mitarbeiter ergänzen: from Angestellter2 import Angestellter2, Mitarbeiter Folgerung: Beim Import von vererbten Klassen ist auf den Import der Elternklasse zu achten. Oder doch, als schlechtere Lösung, sicherheitshalber das * verwenden. Seite 3 /10
4 hier die zugehörige Main4b.py mit dem Aufruf des erweiterten Konstruktors und der Ausgabe: Dabei gilt grundsätzlich folgende Regel: Neue (eigene) Attribute werden immer im Konstruktor- Bereich geschrieben (definiert). Sie müssen aber nicht zwangsläufig beim Konstruktor-Aufruf als Parameter erscheinen! Aber: wird der Konstruktor in der Kindklasse geschrieben, so muss ein Aufruf des Konstruktors der Elternklasse erfolgen, um die grundlegenden Parameter des Elternkonstruktors durchzureichen. Dies kann wie oben gezeigt entweder über den Namen der Elternklasse oder mit Hilfe der Methode super() erfolgen. 1.2 Überladen von Methoden Bei der Vererbung können Methoden, die schon in der Elternklasse vorhanden sind, in der Kindklasse überschrieben werden. Diesen Vorgang nennt man Überladen von Methoden. Dazu wird in der Unterklasse (Kindklasse) eine Methode mit gleichem Namen wie in der Oberklasse (Elternklasse) definiert, allerdings mit anderer Implementierung. Angenommen wir wollen die Methode zeigeanzahl, die schon in der Klasse Mitarbeiter (vgl. unten) definiert ist, für die Klasse Angestellter neu implementieren. Dann könnte dies beispielsweise so aussehen: Seite 4 /10
5 In der Klasse Mitarbeiter ist die übergeordnete Methode etwas anders definiert: Beim Ausführen der Methoden wird die zum zugehörigen Objekt gehörige Methode aufgerufen. Diese gibt eine der unterschiedlichen Implementierung entsprechende Ausgabe: Main5b.py Seite 5 /10
6 2 Assoziationen in Python Um Beziehungen von Klassen untereinander zu realisieren benutzt man in der OOM, insbesondere in der UML-Darstellung, die Assoziation (vgl. dort). Eine Assoziation ist so etwas wie eine hat -Beziehung von zwei Klassen untereinander. Beispielsweise kann eine Klasse Abteilungsleiter, die ebenfalls von Mitarbeiter erbt, in Beziehung zu einer einer Klasse Buero stehen. Klassen müssen untereinander nicht zwangsweise in Beziehung zueinander stehen. Sollte aber in der Realität eine Beziehung wie Ein Abteilungsleiter hat ein Büro oder Zu einem Abteilungsleiter gehört ein Büro oder Ein Büro wird von einem Abteilungsleiter besetzt im OOM modelliert werden, so wird mit einer sogenannten Assoziation (Beziehung) gearbeitet. Auf der OOP-Ebene wird diese hat Beziehung (Assoziation) folgendermassen ausgedrückt (Beispiel5, hier Main5.py abgebildet): Seite 6 /10
7 Zuerst wird ein Objekt aus der Buero5-Klasse erzeugt. Dann wird dieses erzeugte Objekt bei der Erzeugung einer Instanz des Abteilungsleiter im Konstruktor mit aufgeführt ( hat ein Büro ). Beide Abteilungsleiter haben das gleiche Büro. Die Abteilungsleiter-Ausgabe wurde erweitert (vgl. Ausgabe in der Abbildung oben). In der Klasse Abteilungsleiter5 wurde das Büro mit in den eigenen Konstruktor aufgenommen und alle weiteren Parameter werden an die Oberklasse durchgereicht. Das eigene Attribut buero wird mit der übergebenen Büro-Referenz belegt. Die zwei Methoden setzeprovisionanteil und zeigeprovisionbetrag wurden zwar definiert aber nicht ausprogrammiert. Es gibt Fälle, wo eine Methode zwar definiert ist, aber (erstmal) nichts bewirken soll. Dies erreicht man entweder mit einem sofortigen return (bei einer Methode mit Rückgabewert) oder mit der leeren Anweisung pass. Deshalb auch die Ausgabe None im Ausgabebereich. Die Assoziation zwischen Abteilungsleiter und Büro erfolgt über die Aufnahme des Büros in den Konstruktor der Klasse Abteilungsleiter5. Diese Form bedeutet, dass ein Abteilungsleiter zwingend ein Büro übergeben bekommen muss, sonst kann keine Objekt aus der Klasse Abteilungsleiter5 erzeugt werden. Diese Art von Assoziation (Beziehung) wird Komposition genannt: Die Existenz eines Objekts, das Teil eines Ganzen ist, ist von der Existenz des Ganzen abhängig. Seite 7 /10
8 Aufgabe Der Provisionsbetrag ist der prozentuale Provisionsanteil vom Umsatz. Beispiel: beträgt der Provisionsanteil 1,6 (Prozent), dann ergibt sich bei einem Umsatz von (Euro) ein Provisionsbetrag von (Euro). Ergänzen Sie die Klasse Abteilungsleiter5 um die notwendigen Attribute und programmieren Sie die beiden schon definierten Methoden in ihrer Funktionalität. Falls notwendig, ergänzen Sie den Konstruktor. 2.1 Kategorien von Assoziationen Weitere Beispiel für Assoziationen zwischen Klassen: 3 Assoziationskategorie Beispiele A ist physische Komponente von B Beamer (A) - Raum (B) A ist logische Komponente von B Teilnehmer Studiengang A ist ein Mitglied von B Mitarbeiter Unternehmen A ist eine organisatorische Einheit von B Abteilung Unternehmen A benutzt/verwaltet B Organisationsassistent Anmeldung A steht in Beziehung zu einem Vorgang Teilnehmer Anmeldung A besitzt B Teilnehmer Schulabschuss 3 Sichtbarkeit von Attributen und Methoden (Geheimnisprinzip und Kapselung von Objekten) - Wiederholung Ein wesentlicher Vorteil der OOP besteht in der Kapselung von Daten. Zugriff auf Eigenschaften darf normalerweise nur über Zugriffsmethoden (getter- bzw setter-methoden) erfolgen. Diese Methoden können Plausibilitätstests enthalten. So kann z.b. eine Methode zum Setzen des Geburtsdatums prüfen, ob das Datum korrekt ist und sich innerhalb eines bestimmten Rahmen bewegt, z.b. Girokonto für Kinder unter 14 nicht möglich oder Kunden über 150 Jahre unwahrscheinlich. Die Verkapselung (encapsulation) sagt aus, dass zusammengehörende Attribute und Operationen, in einer Einheit der Klasse verkapselt sind. Die Attribute und die Realisierung der 3 vgl. Karl-Heinz Rau: Objektorientierte Systementwicklung. Wiesbaden S.76 ff. Seite 8 /10
9 Operationen kann durchaus nach aussen sichtbar sein. Beispielsweise erlaubt C++ mit seinen verschiedenen Sichtbarkeiten public, protected und private die Verkapselung ohne und mit Einhaltung des Geheimnisprinzips In der Abbildung links realisiert das Objekt das Geheimnisprinzip. Zustand und Verhalten eines Objekts bilden eine Einheit. Wir sagen auch: ein Objekt kapselt Zustand (Daten) und Verhalten (Operationen). Die Daten eines Objekts können nur mittels der Operationen gelesen und geändert werden (Botschaft). Das bedeutet, dass die Repräsentation dieser Daten nach aussen verborgen sein soll. Wir sagen: ein Objekt realisiert das Geheimnisprinzip. 4 Beispiel Datenkapselung (Abbildung rechts): Ein Mitarbeiter besitzt eine Personalnummer, einen Namen und erhält ein bestimmtes Gehalt. Neue Mitarbeiter werden eingestellt, das Gehalt vorhandener Mitarbeiter kann erhöht werden und es kann ein Mitarbeiterausweis gedruckt werden. Wie die Abbildung rechts zeigt, werden die Attribute durch die Operationen vor der Aussenwelt verborgen. Die Idee dabei ist, eine Art Schale um das Objekt zu legen, so dass dieses vor direkten Zugriffen geschützt ist. Viele Programmiersprachen stellen dafür verschiedene Sichtbarkeiten für Attribute und Methoden bereit. Diese Sichtbarkeiten (meist public, protected oder private genannt) steuern den Zugriff von aussen. 3.1 Datenkapselung in Python Zum einen existiert eine Datenkapselung in Python, zum anderen existiert sie nicht wirklich. Beispielsweise können Attribute streng (private) gekapselt werden, indem ein zweifacher Unterstrich vor den Attributnamen gesetzt wird: # A b t e i l u n g s l e i t e r 6. py ( Ausschnitte! ) #... def init ( s e l f, name, gehalt, bueroraum ) : Mitarbeiter. init ( s e l f, name, gehalt ) # Aufruf des übergeordneten Konstruktors s e l f. buero = bueroraum s e l f. umsatz = 0 #... # Ausgabe def z e i g e A b t e i l u n g s l e i t e r ( s e l f ) : print A b t e i l u n g s l e i t e r Ausgabe print Name :, s e l f. name,, Gehalt :, s e l f. gehalt 4 aus: Heide Balzert: Lehrbuch der Objektmodellierung. Analyse und Entwurf. Heidelberg, Berlin S. 18 und 20 Seite 9 /10
10 #... print Buero :, s e l f. buero. ausgabe ( ) print Umsatz :, s e l f. umsatz print Dann ergibt der Aufruf im Hauptprogramm (Main6.py): # A u s s c h n i t t aus Main6. py l e i t e r 2 = A b t e i l u n g s l e i t e r 6 ( Manfred, 15000, buero1 ) l e i t e r 1. z e i g e A b t e i l u n g s l e i t e r ( ) # b e a chte : kein s e l f in der Klammer beim Aufruf! l e i t e r 2. umsatz = die Ausgabe (im Ausgabe-Fenster): A b t e i l u n g s l e i t e r Ausgabe Name : Manfred, Gehalt : Buero : Bueronummer mit Groesse 13 qm None Umsatz : 0 Wie sich erkennen lässt, ist der Umsatz nicht geändert worden, da ein direkter Zugriff nicht möglich ist. Allerdings ist auch keine (erwartete) Fehlermeldung ausgegeben worden. Bei einem Zugriff auf ein private deklariertes Attribut wird in Python keine Fehlermeldung ausgegeben! Hintergrund: In Python findet keine strikte Datenkapselung statt, es handelt sich eher um Richtlinien, die der Entwickler befolgen sollte. Wenn nicht anders angegeben, sind in Python Klassen und Attribute immer per Default als public definiert und können somit von aussen uneingeschränkt zugegriffen werden. Die nächste Sichtbarkeitskategorie ist der protected- oder in Python auch weak-modus 5 genannt. Dieser wird mit einem Unterstrich vor der Klasse oder Attribut eingeleitet. Es lässt sich weiterhin lesend und schreibend auf diese Attribute zugreifen, jedoch werden sie nicht automatisch in den aktuellen Namensraum eingebunden und müssen somit vom Namen her bekannt sein. Diese Variante stellt eher eine Markierung für den Entwickler dar, die aussagt, dass auf diese Attribute nicht direkt zugegriffen werden sollte. Die letzte zur Verfügung stehende Variante ist der private- oder auch strong-modus. Dieser wird durch zwei Unterstriche eingeleitet. 6 4 Vertiefung Ein ergänzendes Tutorial zur Vererbung findet sich u.a. auf Weiteres Material online: 5 weak, engl. = schwach 6 vgl. auch Dort das Unterkapitel Datenkapselung Seite 10 /10
Begriffe 1 (Wiederholung)
Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.
Objektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
Objektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum
7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
Objektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
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
HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
Einführung in die Programmierung für NF MI. Übung 07
Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare
2. Vererbung und Kapselung
2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL
Objektorientierte Programmierung
Objektorientierte Programmierung Objektorientierte Programmierung Ronja Düffel WS2018/19 09. Oktober 2018 Objektorientierte Programmierung Überblick 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das?
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
Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
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,
Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen
Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren
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
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
Prinzipien der objektorientierten Programmierung (OOP)
Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm
7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
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
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
C++ - Objektorientierte Programmierung Vererbung
C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.
11 Vererbung und Klassenhierarchie
11 Vererbung und Klassenhierarchie Bestandteile objektorientierter Programmierung: Bestehende Klassen können durch Spezialisierung und Erweiterung weiterentwickelt werden, ohne den Programmcode der alten
Praxis der Programmierung
Klassenvariablen und -methoden, Vererbung Institut für Informatik und Computational Science Henning Bordihn 1 Klassenvariablen und -methoden 2 Klassenvariablen und -methoden werden mit dem Schlüsselwort
7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung
Objektorientierte Modellierung (1)
Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist
Fragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
Einstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
Skriptum Bauinformatik SS 2013 (Vorlesung III)
Skriptum Bauinformatik SS 2013 (Vorlesung III) Stand: 16.04.2013 Dr. Johannes Lange 2 Inhalt Grundlagen Programmierung... 2 Imperative Programmierung... 2 Objektorientierte Programmierung... 2 Objekte...
Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
11 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
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
Objektorientierte Programmierung (OOP) mit Matlab - Ein Crashkurs
Objektorientierte Programmierung (OOP) mit Matlab - Ein Crashkurs 31. Mai 2016 Grundbegriffe (I) Objektorientierung: Sichtweise auf komplexe Systeme, bei der ein System durch das Zusammenspiel kooperierer
Einstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
PYTHON. 04 Funktionen II, Module
PYTHON 04 Funktionen II, Module Funktionen Funktionen enthalten Programm-Teile können später im Programm aufgerufen werden können beliebig oft aufgerufen werden (und man muss nur die Funktion aufrufen,
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
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
Assoziationen in Java
Assoziationen in Java Michael Dienert 16. Oktober 2018 1 Wiederholung: Gerneralisierung und Vererbung Gerneralisierung ist das Gegenteil von Vererbung: Eine spezielle Klasse erbt von der allgemeineren
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
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
Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
Objektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
Objektorientierte Programmierung und Klassen
Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP
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
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
Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs
Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Scriptcharakter 2. Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren 3.
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
Java Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
Java: Implemen'erung von Assozia'onen.
Java: Implemen'erung von Assozia'onen Beispielsoftware: "Schulverwaltung" Wie könnten Sie hier Vererbung sinnvoll einsetzen? Beispielsoftware: "Schulverwaltung" Attribut name:string in Oberklasse auslagern.
OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte
Ü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
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation
Einführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
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
Informatik I. 15. Objekt-orientierte Programmierung: Einstieg. 03. Dezember Albert-Ludwigs-Universität Freiburg. Informatik I.
15. Objekt-orientierte Programmierung: Einstieg Albert-Ludwigs-Universität Freiburg 03. Dezember 2013 1 / 37 Was ist OOP? Welche Konzepte sind wichtig? Vor- und Nachteile 2 / 37 Was ist das? OOP ist ein
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
Algorithmen und Datenstrukturen 06
31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung
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
Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch
Beziehungen zwischen Objekten
1/19 Beziehungen zwischen Objekten Florian Adamsky, B. Sc. (PhD cand.) [email protected] http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/19 Outline 1 Vererbung (Wiederholung)
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
14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch
Klassen (Java) vs. Records (Pascal) 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Pascal RECORDs in Pascal sind reine
PYTHON. 06 Objektorientierung II
PYTHON 06 Objektorientierung II Wiederholung Was bisher geschah Objektorientierung Objekte haben Eigenschaften Objekte haben Methoden Objekte werden nach einem bestimmten Bauplan erzeugt: die Klassen sind
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
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
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
Geoinformation I Datenmodellierung
Seite 1 von 61 Geoinformation I Datenmodellierung Seite 2 von 61 Datenmodellierung Übersicht Datenverwaltung und Datenbanken objektorientierte Abbildung der Realität Grundlagen der Objektorientierung Darstellung
14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung
275 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Klassen (Java) vs. Records (Pascal) 276 Pascal RECORDs in Pascal sind
Vererbung, Polymorphismus
Vererbung, Polymorphismus INE2 M. Thaler, [email protected] 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
Objektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.
Der Operator this Wir betrachten nochmals die Klassendefinition von Ballon. public class Ballon { private int durchmesser; private int x1, y1; private Color farbe =Color.black; // Konstruktor ohne Farbe
Vererbung und Polymorphie
page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie
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
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
Einstieg in die Informatik mit Java
1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:
Programmieren 2 C++ Überblick
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 5. Behälter und Iteratoren 6. Templates
Programmierparadigmen
Programmierparadigmen DEKLARATIV Funktional Logisch IMPERATIV Prozedural Objektorientiert Einsatz der Programmierparadigmen Systemkomplexität von der Komplexität der Algorithmen dominiert deklarativ oder
Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus
Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:
Arten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
Programmieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
