Programmierkurs. SoSe Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
|
|
- Bernt Falk
- vor 7 Jahren
- Abrufe
Transkript
1 Programmierkurs SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund
2 Lesson 4 Was machen wir heute hier? Functions was ist das? in C++ RoboTut framework Vorbereitungen für Übungsblatt 2 Objektorientierte Programmierung Einführung in C++
3 Erster Kontakt mit functions Wir hatten bereits die main() - function kennegelernt int main() { } syntaktisch: int TYPE main identifier ( ParamSEQ ) COMPOUNDSTATEMENT
4 Erster Kontakt mit functions Was sind eigentlich functions? f(x,y) = 2x + 4y ist eine reellwertige Funktion über Einem 2-dimensionalen Parameterraum n in C++ sind functions eine Möglichkeit auszuführenden Code zu kapseln auch obiges Polynom kann man in einer C++ function implementieren wir oben (informell) den Wertebereich und den Für f haben wir oben einen Werte- und Parameterbereich festgelegt genau so geht man auch in einer höheren Programmiersprache vor
5 Erster Kontakt mit functions Functions in ihrer einfachsten Form deklarieren und definieren: int TYPE main identifier ( ParamSEQ ) COMPOUNDSTATEMENT TYPE gibt den Rückgabetyp (return-type) an ParamSEQ ist eine Liste von Variablendeklarationen, die den Parameterbereich der function angeben das CMPSTMT enthält dann den Code, der angibt wie die Parameter in die Rückgabe transformiert werden
6 Erster Kontakt mit functions Functions in ihrer einfachsten Form deklarieren und definieren: float f(float x, float y) { return 2 * x + 4 * y; } der return-type soll float sein die ParamSEQ besteht aus den beiden float Parametern x und y 'return' gibt an, was in die Rückgabe geschrieben werden soll
7 Erster Kontakt mit functions function-call: wie man functions benutzt float y = f(2.5f, 6.0f); float z( f(3.5f, 4.7f) ); y = f(z, 4.5f); mitdenken! im ersten Beispiel: ein call von f ist die rechte Seite einer Zuweisung: warum geht das? im zweiten Beispiel: ein call von f innerhalb einer Variableninitialisierung mittels built-in Konstruktor: warum geht das? im dritten Beispiel: auch Variablen hönnen an function-calls übergeben werden: wieso? warum kann ein solcher call nicht auf der linken Seite einer Zuweisung stehen? man sieht: die Grammatik-Regeln bleiben dieselben, lediglich die Ausdrücke werden komplizierter
8 Erster Kontakt mit functions functions: noch ein Beispiel: void say_hello() { cout << "Hello World!" << endl; } was ist hier anders?
9 Erster Kontakt mit functions functions sind operators! Wir erinnern uns: unsere operators in den Syntaxbäumen hatten auch Signaturen! Beispiel: int operator+(int, int) merken!
10 functions Implementieren und speichern Sie wieder je ein Programm zu den folgenden Aufgabenstellungen. Implementieren Sie jeweils eine function und testen Sie sie in main(). PÜ schreiben Sie eine function für den Absolutbetrag einer reellen Zahl x schreiben Sie eine function, die für eine reelle Zahl x und eine natürliche Zahl n die n-te Potenz von x als reelle Zahl zurückliefert
11 RoboTut Einführung und Installationsanweisungen Tutorial
12 RoboTut Folgen Sie den Installationsanweisungen auf der Homepage: PÜ Installieren Sie das RoboTut experimentieren Sie damit: compilieren Sie die Aufgaben und führen Sie eine aus
13 Neues Thema C++ ist objektorientiert was heisst das eigentlich?
14 Objektorientierte Programmierun Beispiel: Simulation einer Bäckerei alle Vorgänge (Bezahlen, Backen, Saubermachen,...) alle Entitäten (Bäcker, Kassierer, Kunde,...) wir betrachten hier keinen vollständigen Entwurf (man wäre überrascht, wie komplex eine Bäckerei ist!) OO: Eine Sichtweise auf komplexe Systeme, bei der ein System durch das Zusammenspiel kooperierender Objekte beschrieben wird Beispiele für Objekte: ein bestimmter Kunde, Bäcker Hartmut, ein bestimmtes Kürbiskernbrötchen der Begriff Objekt ist unscharf! Wir könnten auch festlegen, dass die Registrierkasse und der Backofen Objekte sein sollen (inwiefern unterscheidet sich diese Herangehensweise von unserem ersten Entwurf?) die Sinnhaftigkeit eines OO-Entwurfes ist keinesfalls unmittelbar klar! Es erfordert Erfahrung und Kenntnis der Zielsprache.
15 Objektorientierte Programmierun Beispiel: Simulation einer Bäckerei wir nehmen an, wir haben uns für den Ansatz entschieden, bei dem die Personen Objekte sind im einfachsten Fall: Beschränkung auf einen Bäcker (Hartmut, 32 Jahre alt), einen Kunden (Schorsch, 50 Jahre alt) OOD: Vom Objekt zur Klasse offensichtlich haben unsere beiden Objekte einiges gemeinsam beide haben einen Namen und ein Alter beide haben einen Beruf bzw. eine Rolle
16 Objektorientierte Programmierun Objekte, Klassen und Instanzen die Klasse Person Festlegung: jede Person hat einen Namen (Zeichenkette), ein Alter (natürliche Zahl), eine Rolle (Zeichenkette). Diese nennen wir Attribute (member variables) Attribute der Klasse Person unser Bäcker ist eine Instanz der Klasse Person, genau wie unser Kunde eine Instanz der Klasse Person ist die beiden Objekte entstehen also durch Instantiierung der Klasse Person
17 Objektorientierte Programmierun Objekte, Klassen und Instanzen die Klasse Person
18 Objektorientierte Programmierun Klassen wir haben alle Eigenschaften der Akteure (die Attribute) in unserem Programm in einer Klasse gekapselt unser Programm weiss, wenn ein Objekt eine Instanz von Person ist, so muss es z.b. ein Attribut Name haben wir haben festgelgt, von welchem Typ unsere member sein müssen die konkreten Objekte Unterscheiden sich nur noch beim Bezeichner (Bäcker1 und Kunde1) sowie bei den Attributwerten wir können Person als Schablone für beliebig viele Objekte (Instanzen) der Klasse (des Typs!) nehmen Klassen sind benutzerdefinierte Typen (und mehr)
19 Objektorientierte Programmierun Methoden (member functions) unsere Objekte sollen nun auch etwas machen können: ein Bäcker soll backen können und ein Kunde kaufen was ist das Problem mit unserem bisherigen ein-klassen-entwurf? können oder sollten wir Person beide Methoden geben? Alternativen?
20 Objektorientierte Programmierun Methoden (member functions) wir ersetzen unsere Klasse Person durch zwei Klassen: Bäcker und Kunde
21 Objektorientierte Programmierun Vorteile dieses Entwurfs Ziel erreicht: Methoden sind nur den jeweiligen Objekten zugänglich das Attribut Rolle ist nicht mehr nötig, weil wir über den Objekttyp wissen, welche Rolle (im Bild: 'Funktion') es hat Nachteile dieses Entwurfs die beiden Klassen stehen in keiner Beziehung zueinander, Obwohl Sie irgendwie beide Personen sind! beide Klassen haben dieselben Attribute! Redundanz beide Klassen haben dieselben Attribute!!Redundanz
22 Objektorientierte Programmierun Vererbung offensichtlich sind immernoch Bäcker und Kunden Personen wir führen unsere Klasse Person wieder ein wir legen fest, dass Bäcker nur eine spezielle Form von Personen sind! (ebenso für Kunden) wir legen fest, dass alle Bäcker dieselben Attribute und Methoden haben sollen, wie Personen, aber zusätzlich backen können sollen wir legen fest, dass alle Kunden.. analog dieses Prinzip wird Vererbung genannt beide Klassen haben dieselben Attribute!!Redundanz
23 Objektorientierte Programmierun Vererbung beide Klassen haben dieselben Attribute!!Redundanz
24 Objektorientierte Programmierun Vererbung Ergebnis in unserem Beispiel nur Bäcker können backen, nur Kunden können kaufen beide sind aber Personen, die Beziehung zwischen ihnen ist also hergestellt nur für Person wurden die Attribute festgelegt, die anderen Klassen erben sie trotzdem hat jedes Objekt vom Typ Bäcker einen Namen man sagt: die Klasse Bäcker erbt von der Klasse Person Bäcker ist eine Unterklasse von Person, Person ist eine Oberklasse von Bäcker die Klasse Bäcker erweitert die Klasse Person Bäcker1 ist vom Typ Bäcker also ist Bäcker1 auch vom Typ Person Bäcker, Kunde und Person bilden eine Vererbungshierarchie beide Klassen haben dieselben Attribute!! Redundanz
25 Objektorientierte Programmierun Vererbung Polymorphie nochmal: Bäcker1 ist vom Typ Bäcker also ist Bäcker1 auch vom Typ Person! es ist möglich, Person auch zu instantiieren! Ist das Objekt dann ein Bäcker oder ein Kunde? es ist auch möglich anonym auf eine Person zuzugreifen, die ein Bäcker ist! Nehmen wir an, wir haben ein solches Objekt vom Typ Bäcker 'Person4'. Wir könnten dann je nach Kontext es als Person behandeln, oder als das was es wirklich ist. Dieses Konzept wird Polymorphie genannt. Dazu später mehr! beide Klassen haben dieselben Attribute!! Redundanz
26 Objektorientierte Programmierun Mehrfachvererbung Klassen in C++ können mehrfach erben, d.h., sie können mehr als eine Oberklasse haben Beispiele für Mehrfachvererbung in unserer OO-Bäckerei: Zuckerbäcker sind Bäcker, die auch Konditoren sind. Die Klasse Konditor könnte etwa beschreiben, welche oder wie viele Torten der Bäcker backen kann. Konditoren machen auch alleine Sinn, weil es auch Konditoren gibt, die keine Bäcker sind. andere Ideen? beide Klassen haben dieselben Attribute!! Redundanz
27 Objektorientierte Programmierun Jetzt in C++! Als erstes: Klassen deklarieren und definieren! struct identifier { }; identifier DeclSTMTSEQ beide Klassen haben dieselben Attribute!! Redundanz struct IntIntPair { int left; int right; };
28 Objektorientierte Programmierun Klassendefinition in der Header-Datei: struct IntIntPair { int left; int right; }; Instantiierung in der main() -function (Code-Datei): IntIntPair my_pair;
29 Klassen deklarieren und definiere Deklarieren sie Klassen in header Dateien (z.b. person.hpp). Inkludieren Sie sie dann stets mittels ' #include person.hpp ' in ihrer Code-Datei (producer_consumer-test.cpp). PÜ Definieren Sie eine Klasse Person mit den Member-variablen für Alter (age) und Name (name) Instantiieren Sie mehrere Objekte dieser Klasse
30 Objektorientierte Programmierun Wie greift man jetzt auf die member zu? struct IntIntPair { int left; int right; }; IntIntPair my_pair; my_pair.left = 12; my_pair.right = 2323; der '.' operator heisst member-access operator
31 member access Erweitern Sie den Test ihrer Klasse Person. PÜ weisen Sie einer Instanz ihrer Klasse Person den member-variablen gültige Werte zu und testen Sie durch Ausgabe, ob diese danach auch dort gespeichert sind! beantworten Sie die Frage: Welchen Typs sind Ausdrücke der Form 'EXPR.id'?
32 CTORs Wir kennen schon den Standard-CTOR: int a; std::string s; es gibt aus sprachtheoretischer Sicht keinen Unterschied zwischen Instanziierung von built-in types und Klassen int i; Consumer c; IntIntPair p; Konstruktoren auch built-in CTORs kennen wir schon int i(22);
33 CTORs Wie kann man eigene CTORs für Klassen schreiben? IntIntPair pair( 22, 23 ); jetzt Konstruktoren für Klassen Konstruktoren (CTORs) sind spezielle member-functions von Klassen sie definieren das Verhalten von Objekten bei der Erstellung sie definieren, wie Objekte erstellt werden können eine Klasse besitzt stets den sogenannten Standardkonstruktor den haben wir auch schon benutzt
34 CTORs Standardkonstruktor ist eine member-function, die jede Klasse hat impliziter Aufruf bei der Instanziierung verliert Gültigkeit wenn ein eigener Konstruktor definiert wird Eigene CTORs deklarieren und definieren CTORs werden im wesentlichen deniert wie functions, jedoch ohne Rückgabetyp (klar, der Rückgabetyp ist die Klasse) CTORs tragen als Namen stets den der Klasse struct IntIntPair { int left; int right; }; IntIntPair(int l, int r) : left(l), right(r) { }
35 Eigener CTOR Erweitern Sie ihre Klasse Person und ändern Sie den Test entsprechend. PÜ definieren Sie einen CTOR, der beide member- Variablen mit Werten initialisiert erweitern Sie ihren CTOR so, dass bei Konstruktion der Satz Person xxx wurde erzeugt! ausgegeben wird, wobei xxx für den Namen der Person steht.
36 CTORs Mehrere CTORs Was passiert bei: IntIntPair pair( 22, 23 ); der Compiler 'erkennt', dass ein Objekt vom Typ IntIntPair angelegt werden soll der Compiler 'erkennt' die Signatur anhand der Literale in der Parameterliste der Compiler sucht den entsprechenden Konstruktor in der Definition von IntIntPair - dieses Verfahren wird 'pattern-matching' genannt merke: eine Klasse kann grundsätlich mehrere Konstruktoren Haben, deren Signaturen sich jedoch unterscheiden müssen merke: dies gilt für alle member-functions einer Klasse dieser Mechanismus wird Überladen (overloading) genannt
37 CTOR overload Erweitern Sie ihre Klasse Person und ändern Sie den Test entsprechend. PÜ Überladen Sie den CTOR so, dass man Personen auch nur mit ihrem Namen initialisieren kann und dabei ihr Alter auf 0 gesetzt wird
Programmierkurs. 'SoSe' Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs 'SoSe' 2014 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 3 Was machen wir heute hier? Speichermanagement in C++ - Einführung Objektorientierte
MehrProgrammierkurs. SoSe Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 5 Was machen wir heute hier? weiter mit Objektorientierter Programmierung viel
MehrProgrammierkurs. 'SoSe' Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs 'SoSe' 2014 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 4 Was machen wir heute hier? Objektorientierte Programmierung Speichermanagement
MehrÜ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
MehrProgrammieren 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
MehrOOP 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
MehrGrundelemente 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
MehrAngewandte Mathematik in OOP WS 2011/12. Abschluss-Test
Angewandte Mathematik in OOP WS 2011/12 Abschluss-Test 012 6 5 4 5 6 Aufgabe 1 (9 Punkte 1 Punkt je Antwort) Bitte jeweils eine Antwort ankreuzen (je nach Fragestellung die richtige oder falsche): a.)
MehrGrundelemente 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
MehrDie Anwesenheitspflicht beim Seminar gilt für diejenigen Teilnehmer, die einen Schein erwerben wollen. Für die Nachmittagsübungen gilt keine
1 2 Die Anwesenheitspflicht beim Seminar gilt für diejenigen Teilnehmer, die einen Schein erwerben wollen. Für die Nachmittagsübungen gilt keine Anwesenheitspflicht; d.h. die Teilnehmer dürfen sie gerne
Mehr10.4 Konstante Objekte
10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object
MehrGrundelemente 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
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Inhalt Compiler/Editor Klassendeklaration
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
MehrObjektorientierte 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
Mehr7. Ü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
MehrC++ - 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
MehrNeben 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
MehrObjektorientierte 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,
MehrObjektorientierte 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
MehrVererbung 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
MehrKapitel 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
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
MehrProgrammierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Einführung in C++ Teil II: Klassen, Objekte, Funktionen und Vererbung. Funktionen [Rückgabetyp] [Name] ([Parameter]) { } Wichtig: Funktionen
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrProgrammierkurs C/C++
Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Donnerstag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Structs Blockkurs: "Einführung in C/C++" 2 Structs sind Bündel von Variablen (unter
MehrProgrammierkurs C++ Polymorphismus
Programmierkurs C++ Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Polymorphismus Methoden von Oberklassen können in
Mehr11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout
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
MehrHSR 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
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrProgrammierung 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
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrObjektorientierte 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
MehrVorlesungsprüfung Programmiersprache 1
Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,
Mehr9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1
9. Vererbung und Polymorphie 1 Wiederholung Vererbung bedeutet, dass eine Klasse Attribute und Methoden an eine andere Klasse weitergeben kann. Im Klassendiagramm stellt man dies durch einen durchgezogenen
MehrInfo-2, Klausurvorbereitung, SS 2016
Info-2, Klausurvorbereitung, SS 2016 Die folgenden Fragen dienen der Vorbereitung auf die Klausur. Die hier gestellten Aufgaben sind umfangreicher als in der Klausur. In der Klausur sind die Fragen schriftlich,
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrVererbung. Florian Adamsky, B. Sc. (PhD cand.) Softwareentwicklung im WS 2014/15.
1/23 Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 Formen der C++ Syntax 3/23 Inhaltsverzeichnis 1 2 Formen
MehrKlassen. Kapitel Klassendeklaration
Kapitel 4 Klassen Wir kommen nun zu einem sehr wichtigen Aspekt der OOT: zu den Klassen. Eine Klasse ist eine vom Benutzer definierte Datenstruktur, eine Sammlung von Variablen (unterschiedlichen Typs)
MehrBeispiel: 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
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 9 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 7 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 9 Aufgabe 1:
MehrPraxis 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
MehrPrinzipien 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
MehrWissenschaftliches Rechnen
Institut für Numerische und Angewandte Mathematik 11.04.2012 FB Mathematik und Informatik der Universität Münster Prof. Dr. Christian Engwer, Dipl. Math. Dipl. Inf. Sebastian Westerheide Übung zur Vorlesung
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrInstitut 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
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrPraktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Was bisher geschah... Konzepte: Klassen und ihre...... Instanzen, die
MehrObjektorientierte Programmierung
C++ Objektorientierte Programmierung Erweiterung von selbstdefinierten Datentypen (struct) zu Klasse. Eine Klasse besteht dann aus - Attributen (Untertypen wie struct) und zusätzlich - aus Methoden (Funktionen
MehrRepetitorium 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
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:
MehrProjekt 3 Variablen und Operatoren
Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
MehrVererbung 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
MehrInformatik 1 MaVt FS Übung 10
Informatik 1 MaVt FS 2010 Übung 10 Claudia Kuster ckuster@inf.ethz.ch Mittwoch 13-15h HG E 27 http://graphics.ethz.ch/~ckuster/teaching/mavt_info1_2010.html Vorlesung Objektorientierte Programmierung Konstruktoren
MehrOOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
(Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Klassen in C++ Beispiele, mit Aufzeigen der Trennung von Spezifikation und Implementierung
MehrPROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy
PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrPraxis der Programmierung
Template-Funktionen und -Klassen Einführung in Java Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Template-Funktionen 2 Minimumfunktion und offene Typen Aufruf
MehrC++ - 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.
MehrDer Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.
Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.
MehrAufbau von Klassen. class punkt {...
Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrJava Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt
Mehrpue08 December 9, 2016
pue08 December 9, 2016 1 Aufgabe 1: Ein einfaches Zeichenprogramm 1.1 a) Erstellen Sie eine Klasse Square mit den folgenden Eigenschaften: Objektvariablen: - width: Seitenlänge (default: 0) - color: Füllfarbe
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
MehrVerwendung von Klassen in C++
Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
MehrRückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren
Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
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
Mehr7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});
S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht
MehrPraktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode
MehrVorkurs Informatik: Erste Schritte der Programmierung mit C++
Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Tag 3: Objektorientiere Programmierung 8. Oktober 2014 Vorkurs Informatik WS 14/15 > Einführung Agenda 1 Einführung
MehrKapitel 11: Vererbung Ziele von Klassen Einführung in die Informatik für struct Naturwissenschaftler und Ingenieure
Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrAbschnitt 6: Klassen, Objekte und Methoden in Java
Abschnitt 6: Klassen, Objekte und Methoden in Java 6. Klassen, Objekte und Methoden in Java 6.1 Klassen 6.2 Objekte 6.3 Methoden 6.4 Zusammenfassung 6 Klassen, Objekte und Methoden in Java Informatik 2
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
MehrEinführung in die Programmierung Wintersemester 2018/19
Einführung in die Programmierung Wintersemester 2018/19 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Inhalt Einführung in das konzept Attribute / Methoden
MehrWie schreibe ich ein Powerbook
739 22. Subtyping, Polymorphie und Vererbung Ausdrückbäume, Aufgabenteilung und Modularisierung, Typhierarchien, virtuelle Funktionen, dynamische Bindung, Code-Wiederverwendung, Konzepte der objektorientierten
MehrEinführung in die Programmierung I. 11. Vererbung. Stefan Zimmer
Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben
MehrVokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4
4.1 Benutzer definierte Datentypen C++ unterstützt die Einführung benutzer definierter Datentypen (auch Abstrakte Datentypen (ADT) genannt). ADTs bieten einen guten Einstieg in das Paradigma der objekt
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrProgrammieren in C++ Templates
Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrEinführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf
MehrKlausur "ADP" SS 2016
PD Dr. J. Reischer 29.7.2016 Klausur "ADP" SS 2016 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die Klausur
Mehr