Programmierkurs Python I
|
|
|
- Lukas Beltz
- vor 10 Jahren
- Abrufe
Transkript
1 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 ( Hooks ) 2
2 Warum OOP? Objektorientierte Programmierung (OOP) ermutigt den Programmierer dazu, Programme in Klassen aufzuteilen. Für viele Projekte sind Klassen gute Gliederungsebene, die zu Dingen in der wirklichen Welt passen. in einer guten Klassenhierarchie ist die Komplexität einzelner Klassen überschaubar, das macht den Code übersichtlicher 3 Warum OOP? Man kann Implementierungsdetails von Klassen nach außen verbergen Andere Programmierer (Benutzer der Klassen) können die Klassen direkt weiterverwenden, oder erweitern, ohne sie zu verändern Die Implementierung kann jederzeit verändert werden, ohne das Gesamtprogramm zu stören 4
3 Warum OOP? Klassen können von anderen Klassen abgeleitet werden. Abgeleitete Klassen erben alle Attribute der Basisklase, können neue dazutun und die geerbten Methoden überschreiben Objekte der abgeleiteten Klasse können überall eingesetzt werden, wo Objekte der Basisklasse akzeptiert werden 5 Wiederholung: Klassen class Rat: def init (self, num, den): self.num = num self.den = den def mul(self, other): num = self.num * other.num den = self.den * other.den return Rat(num, den) r1 = Rat(1,2) r2 = r1.mul(rat(2,3)) Klassen werden definiert mit Schlüsselwort class Klassenmethoden mit self -Parameter init-methode als Konstruktor Instanz-Erzeugung mit Klassen-Name ruft init auf Funktionsaufruf mit instanz.methode() 6
4 Geltungsbereiche & Namensräume Ein Namensraum (Namespace) ist eine Abbildung von Bezeichnern (Namen) auf Objekte Namen in verschiedenen Namensräumen können auf verschiedene Objekte referieren Man kann sich Namensräume als Dictionaries vorstellen; Schlüssel sind dabei eingeschränkt auf zulässige Namen Qualifizierter Zugriff auf Namen (bzw. Objekte) in einem Namensraum: namespace.attr 7 Geltungsbereich (Scope) Ein Geltungsbereich ist ein Bereich im Programm, innerhalb dessen man direkt auf Namen zugreifen kann ( direkt = ohne andere Schküsselwörter) Drei (verschachtelte) Namensräume: - Eingebaute Namen (z.b. print) - Globale Namen - Lokale Namen Innerhalb von Funktionen referenzieren wir Namen in separaten lokalen Namensräumen Ausserhalb von Funktionen: Global = Lokal 8
5 Klassenvariablen vs. Instanzvariablen Klassenvariablen gehören zur Klasse - sie sind unabhängig von einzelnen Objekt-Instanzen - man referiert normalerweise auf sie mit Klasse.variable - man nennt sie auch statisch) Instanzvariablen - sind in jeder Klassen-Instanz unterschiedlich - werden in der Klassendefinition mit self.variable aufgerufen - können auch von außen mit instanz.variable gelesen / geändert werden 9 Klassen- und Instanzvariablen Klassenvariablen befinden sich auch im Namensraum einer Instanz, sie haben für alle Instanzen den gleichen Wert class MyClass:. instance = MyClass() Wird mit instance.i eine Variable i referenziert, wird zuerst nach der entsprechenden Instanz-Variable i gesucht Gibt es diese Variable nicht, wird gesucht ob es eine Klassen-Variable MyClass.i gibt, und ggf. die zurück gegeben 10
6 Ein einfaches Beispiel class MyClass: i = 123 def show_i(self): print(myclass.i) print(self.i) Klassenvariable Instanzvariable >>> k = MyClass() >>> k.show_i() >>> print(k.i) 123 >>> k.i = 321 >>> k.show_i() >>> MyClass.i = 17 >>> k.show_i() Vererbung In objektorientierten Sprachen kann man (normalerweise) Klassen von anderen Klassen ableiten Die abgeleitete Klasse erbt Variablen und Methoden von der Basisklasse - Somit unterstützen die abgeleiteten Klassen die gleichen Methoden/Variablen wie die Basisklassen - und können überall dort benutzt werden, wo die Basisklasse benutzt werden kann So lange die abgeleiteten Klassen Methoden nicht überschreiben, verhalten sie sich in der abgeleiteten Klasse genauso wie in der Basisklasse 12
7 Vererbung: Beispiel 1 class Face: def smile(self): print(":-)") def kiss(self): print(":-*") class BoyFace(Face): def poketoungue(self): print(":-p") class GirlFace(Face): def cry(self): print(": (") >>> boy = BoyFace() >>> girl = GirlFace() >>> boy.poketoungue() :-P >>> girl.cry() : ( >>> boy.kiss() :-* >>> girl.smile() :-) 13 Vererbung: Beispiel 2 class Person: >>> g = GermanGuy('Stefan') def init (self, name): >>> g.sayhello() self.name = name Hallo Stefan >>> f = FrenchGuy('Etienne') >>> f.sayhello() class FrenchGuy(Person): Bonjour Etienne def sayhello(self): print("bonjour "+ self.name) class GermanGuy(Person): def sayhello(self): print("hallo " + self.name) auch init wird mit vererbt. 14
8 Vererbungshierarchien Alle Klassen haben automatisch eine Basisklasse (object) in Python, die vererbt auch Dinge - object vererbt eine Methode, die einen Hash-Code erzeugt -- das heißt, man darf selbst erzeugte Klassen standardmäßig in Mengen und Dictionaries benutzen - was sonst von object vererbt wird, sehen wir in späteren Vorlesungen Man kann Klassen-Hierarchien durch Vererbung aufbauen; an der Spitze steht immer object 15 Vererbungshierarchien object Person class Person: GermanGuy FrenchGuy class GermanGuy(Person): class FrenchGuy(Person): FrenchKid FrenchTeacher FrenchModel class FrenchKid(FrenchGuy): 16
9 Vererbung: Methoden überschreiben Manchmal möchte man eine Basisklasse nicht nur neue Methoden hinzufügen, sondern existierende Methoden modifizieren (häufig: init ) Man kann Methoden einfach überschreiben, indem man sie neu definiert Wenn man auf die gleichnamige Methode der Basisklasse zugreifen möchte, kann man die eingebaute Methode super benutzen: super().methode() tut das gleiche wie BasisKlasse.methode(self,) 17 Methoden überschreiben: Beispiel 1 class Face: def smile(self): print(":-)") def kiss(self): print(":-*") class VerryHappyFace(Face): def smile(self): print(":-d") 18
10 Methoden überschreiben: Beispiel 2 class Person: def init (self, name): self.name = name class Employee(Person): def init (self, name, salary): super(). init (name) self.salary = salary 19 Abstrakte Klassen Ein gängiges Konzept aus der objektorientierten Programmierung sind abstrakte Klassen Abstrakte Klassen enthalten nicht implementierte Methoden (ohne Körper) und müssen abgeleitet werden, um sinnvoll verwendet zu werden Python kennt keine abstrakten Pythons Klassen, man kann sie jedoch Schlüsselwort für einfach simulieren: die Basisklasse nichts tun ist definiert eine Platzhalter - pass Methode, die gar nichts tut, oder einen Fehler meldet 20
11 Eine einfache abstrakte Klasse class AnsweringMachine: def answercall(self): self.saytext() self.beep(). def saytext(self): pass # alternativ: raise NotImplementedError class MyAnsweringMachine(AnsweringMachine): def saytext(self): return("ich rufe zurück, hinterlass eine Nachricht!") 21 Mehrfachvererbung Python unterstützt Mehrfachvererbung: Eine Klasse kann von mehreren Basisklassen abgeleitet werden: class DerivedClass(Base1,, Basen): Resolution bei Attribut-Zugriff: depth-first, left-to-right - Zuerst wird das Attribut in Base1 gesucht - dann rekursiv in den Basisklassen von Base1 - dann in Base2, usw. - zumindest so ungefähr (siehe Python-Doku), in Wirklichkeit ist es viel komplizierter - wenn die einzelnen Klassen nicht voneinander erben, stimmt es so 22
12 Mehrfachvererbung class A: def f(self): return 1 class B(A): def f(self): return 2 class C(A): pass class D(B, C): pass d = D() d.f()? B A D C 23 Namenskonflikte & Konvention Daten-Attribute überschreiben Methoden-Attribute mit gleichem Namen. Gängige Konvention zur Vermeidung von Konflikten: Daten- Attribute beginnen mit einem Unterstrich: _foo. 24
13 Private Variablen (Name Mangling) In Python gibt es keine echten privaten Variablen bzw. Methoden, die nur innerhalb der Klasse zugreifbar sind. Um Namenskonflikte zu vermeiden, können Namen verstümmelt werden: Bezeichner der Form foo werden automatisch durch klassenname_foo ersetzt. 25 Bürger erster Klasse (first class citizens) In Python sind Klassen Bürger erster Klasse, d.h., sie unterliegen nur den Einschränkungen, die für wirklich alles in Python gelten Man kann beispielsweise Klassen auch innerhalb von Funktionen definieren oder Klassen selbst (nicht nur ihre Instanzen) als Argument in Funktionsaufrufen verwenden 26
14 Hooks In den letzten Vorlesungen wurden einige Operatoren vorgestellt: +, -, Streng genommen gibt es in Python aber gar keine Operatoren, sondern nur Operationen: - Der + -Operator ruft beispielsweise intern die add Methode des ersten Operanden auf - Diese speziellen Methoden ( hooks ) kann man selbst definieren (bzw. überschreiben), um damit die Funktionalität zu ändern oder zu erweitern 27 Rationale Zahlen mit Operatoren class Rat: >>> r1 = Rat(1,2) def init (self, num, den): >>> r2 = Rat(3,4) self.num = num >>> r1 * r2 self.den = den Rat(3, 8) def mul (self, other): >>> print(r1 * r2) 3/8 num = self.num * other.num den = self.den * other.den return Rat(num, den) def repr (self): return "Rat("+ str(self.num)+","+ str(self.den) + ")" def str (self): return str(self.num) + "/" + str(self.den) 28
15 Hooks Vergleichsoperatoren (Rückgabe: True / False): - eq " " == - ge " " >= - gt " " > - le " " <= - lt " " < - ne " "!= bool :gilt das Objekt als Wahr oder Falsch? (Gibt True oder False zurück) 29 Hooks Numerische Operationen: - add, iadd "" +, += - truediv, itruediv " " /, /= - mul, imul "" *, *= - sub, isub "" -, -= - mod, imod "" %, %= Element-Zugriff für Sammeltypen: -x. getitem (i) x[i] 30
16 dict mit Defaultwert class Defaultdict(dict): def init (self, default): self.default = default def getitem (self, key): if key in self: return super(). getitem (key) else: return self.default >>> d = Defaultdict(0) >>> d[17] 0 >>> d[17] += 1 >>> d[17] 1 31 Zusammenfassung Mehr über Klassen & Objekte Vererbung - Hierarchien - Mehrfachvererbung - Attribute überschreiben Operatoren überladen mit Hooks 32
Programmierkurs Python I
Programmierkurs Python I Michaela Regneri 2009-11-19 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Objektorientierte Programmierung Prozedurale / imperative Programmierung: Daten und Operationen
Objektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
Programmieren 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
Objektorientierte 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
Verhindert, 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:
Programmierkurs Python I
Programmierkurs Python I Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Übersicht Objektorientierte Programmierung (Grundlagen) - Klassen
Grundlagen 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
Klassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
Vorkurs 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:
Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern
Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben
Kompetent 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)
Objektorientierte 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/
Objektorientierte Programmierung
Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern
10 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,
PHP Aufbaukurs. Tag 3. PHP5 & Klassen
PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: [email protected] PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1
Objektorientierte 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
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Einfü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
GetName(), 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
Wintersemester 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
Vererbung & 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
Programmierkurs Python I
Programmierkurs Python I Michaela Regneri 2010-01-21 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Mehr Abkürzungen in Python: - map - List Comprehensions Anonyme Funktionen, lambda
Java: 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
Informatik 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,
Fachdidaktik 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,
Innere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
Session Beans & Servlet Integration. Ralf Gitzel [email protected]
s & Servlet Integration Ralf Gitzel [email protected] 1 Themenübersicht Ralf Gitzel [email protected] 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
Die Post hat eine Umfrage gemacht
Die Post hat eine Umfrage gemacht Bei der Umfrage ging es um das Thema: Inklusion Die Post hat Menschen mit Behinderung und Menschen ohne Behinderung gefragt: Wie zufrieden sie in dieser Gesellschaft sind.
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
4 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
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
SEP 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
Prinzipien 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........................
Java 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
Zur drittletzten Zeile scrollen
1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:
7. 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
5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
Klassendefinitionen verstehen
Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen
Was meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
Objektorientierte 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
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
Programmierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben
Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den
Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015
Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum
OO 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
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:
Mediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
Herr Müller möchte anderen Menschen helfen. Er bekommt kein Geld für diese Arbeit. Aber die Arbeit macht ihm Freude.
26 Und wie finde ich ein freiwilliges Engagement? Leichte Sprache Herr Müller möchte etwas Gutes für andere Menschen tun. Weil es ihm Spaß macht. Herr Müller möchte anderen Menschen helfen. Er bekommt
Dokumentation 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
Javakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
Klausur 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-
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
Objektorientierung: 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
Regeln für das Qualitäts-Siegel
Regeln für das Qualitäts-Siegel 1 Inhalt: Die Qualitäts-Regeln vom Netzwerk Leichte Sprache 3 Die Übersetzung in Leichte Sprache 5 Die Prüfung auf Leichte Sprache 6 Wir beantworten jede Anfrage 7 Wir schreiben
Objektorientierte 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)
Diana 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.
Programmierkurs 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
1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
Folge 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,
Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz
Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz Die Parteien CDU, die SPD und die CSU haben versprochen: Es wird ein Bundes-Teilhabe-Gesetz geben. Bis jetzt gibt es das Gesetz noch nicht. Das dauert
Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
Objektorientiertes JavaScript
Objektorientiertes JavaScript Christoph Fabritz [email protected] http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische
Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
Wurzeln 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
Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter
Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................
Software Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8
Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8 Schritt 1: Altes Modul-Paket vollständig deinstallieren Die neuen MRG-Module sind aus dem Scope local in den Scope
Klassendiagramm. 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
13 OOP MIT DELPHI. Records und Klassen Ein Vergleich
13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,
5.4 Klassen und Objekte
5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen
3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
Binä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
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,
Das Recht auf gesundheitliche Versorgung ein Menschenrecht!
Das Recht auf gesundheitliche Versorgung ein Menschenrecht! Ein Positionspapier des Bundesverbands evangelische Behindertenhilfe e.v. Sätze zum Recht auf gesundheitliche Versorgung in leichter Sprache
Java 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
Qualitätsbedingungen schulischer Inklusion für Kinder und Jugendliche mit dem Förderschwerpunkt Körperliche und motorische Entwicklung
Forschungsprojekt: Qualitätsbedingungen schulischer Inklusion für Kinder und Jugendliche mit dem Förderschwerpunkt Körperliche und motorische Entwicklung Leichte Sprache Autoren: Reinhard Lelgemann Jelena
Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.
Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v. Meine Lebens- Geschichte Warum ist Arbeit zur Lebens-Geschichte wichtig? Jeder
Kurzeinweisung. WinFoto Plus
Kurzeinweisung WinFoto Plus Codex GmbH Stand 2012 Inhaltsverzeichnis Einleitung... 3 Allgemeines... 4 Vorbereitungen... 4 Drucken des Baustellenblatts im Projekt... 4 Drucken des Barcodes auf dem Arbeitsauftrag
3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten
O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...
HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG
it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente
Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
Leichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
FORUM HANDREICHUNG (STAND: AUGUST 2013)
FORUM HANDREICHUNG (STAND: AUGUST 2013) Seite 2, Forum Inhalt Ein Forum anlegen... 3 Forumstypen... 4 Beiträge im Forum schreiben... 5 Beiträge im Forum beantworten... 6 Besondere Rechte der Leitung...
Kapitel 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
II. 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
Der 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.
Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
Abschnitt 9: Schnittstellen: Interfaces
Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung
Einführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
Einfü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
Java Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
Anleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss
Schließen Sie die AVM Fritz!Box, wie auf dem der Fritz!Box beiliegenden Schaubild beschrieben, an. Starten Sie den Internet Explorer oder einen beliebigen Browser (Mozilla Firefox, Google Chrome, Safari)
Zeichen 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
Ü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
1 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.
Was ich als Bürgermeister für Lübbecke tun möchte
Wahlprogramm in leichter Sprache Was ich als Bürgermeister für Lübbecke tun möchte Hallo, ich bin Dirk Raddy! Ich bin 47 Jahre alt. Ich wohne in Hüllhorst. Ich mache gerne Sport. Ich fahre gerne Ski. Ich
