Grundkurs C++ Einführung
|
|
- Frauke Salzmann
- vor 5 Jahren
- Abrufe
Transkript
1 Grundkurs C++ Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl Folie 1/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
2 Das Team Martin Knopp Büro Z934 Stefan Röhrl Büro Z947 Martin Gottwald Büro Z943 Folie 2/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
3 Warum C++? Sprache Rechenzeit Memory (KB) C++ GNU g++ 5, Java 6 26, Python 3 27, C# Mono 96, Software: regex-dna, Debian Computer Language Shootout Folie 3/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
4 Warum C++? Folie 4/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
5 Warum immer noch C++? Folie 5/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
6 Warum C++? Strenge Standardisierung von Beginn an (ca. 1985) Extrem schnelle und effiziente Compiler Wird immer noch weiterentwickelt C++11 seit August 2011 standardisiert C++14 seit Januar 2015 standardisiert C++17 seit Dezember 2017 standardisiert Große Vielfalt an Compilern für die allermeisten Plattformen Viele Entwicklungstools verfügbar Folie 6/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
7 Lehrstuhl für Datenverarbeitung Das Ziel Entwicklung eines Spiels Teamarbeit in Teams aus 5 Personen Folie 7/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
8 Zeitplan Einführung und Objektorientierung IDE, Klassenhierarchie Buildsysteme und Qt, Git Typwandlung, Exceptions Präsentation Kurzprojekt Objektmodellierung und Debugging und Präsentation Analyse- & Designmodell Working Sessions (4 Wochen) und Abschlusspräsentation Show & Tell Folie 8/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
9 Bewertung Drei Hausaufgaben (ca. 15%) Vorprojekt (ca. 10%) Designmodell und Pflichtenheft (ca. 10%) Abschlusspräsentation (ca. 10%) Hauptprojekt (ca. 50%) Dokumentation (ca. 5%) Folie 9/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
10 Nützliches Moodle Hausaufgaben Vorlesungsfolien LDV-Webseite zum Kurs Skript C++ Buch Thinking in C++ Besucht die Bibliothek! 3 5 Tutoren, die euch bei sämtlichen Fragen und Problemen weiterhelfen werden cpp-tutor@ldv.ei.tum.de Praktikumsraum (Zeitplan auf der LDV Seite) Folie 10/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
11 Teil II Grundlagen der Objektorientierung Folie 11/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
12 Motivation Realität ist objektorientiert Vereinfachung und Kapselung Wiederverwendbarkeit Leichte Erweiterbarkeit Parallelisierbarer Entwicklungsprozess Folie 12/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
13 Aufbau und Eigenschaften eines Objekts von Außen Objekt hat öffentliche Eigenschaften (Attribute) Objekt besitzt öffentlich definierte Funktionen (Methoden), welche sich auf seine Eigenschaften auswirken von Innen Verarbeiten der über Funktionsaufrufe eingehenden Befehle (Botschaft) zur Änderungen der Eigenschaften Interne Funktionen und Eigenschaften, zur Wahrnehmung der äußeren Funktion Folie 13/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
14 Aufbau und Eigenschaften des Objekts Auto von Außen zugänglich Attribut Geschwindigkeit (nur lesend) Methoden beschleunigen und bremsen definierte Funktionsweise Aufruf der Methoden verändert die Geschwindigkeit von Innen Wird beschleunigen aufgerufen, mehr Kraftstoff an den Motor liefern Wird bremsen aufgerufen, Bremsanlage betätigen Folie 14/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
15 Folgen dieses Aufbaus für das Objekt Auto Für den externen Benutzer von Auto ist es vollkommen egal was passiert wenn er beschleunigen möchte Jedes Auto -Objekt MUSS die Methoden beschleunigen und bremsen verstehen Der Aufruf der Methode beschleunigen ist von der konkreten Implementierung von Auto vollkommen unabhängig Auto -Objekte können innerhalb des Programms beliebig ausgetauscht werden Folie 15/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
16 Begriffe: Objekt Klasse Instanz Bei der Arbeit mit Objekten unterscheidet man: Klasse Zusammenfassung von ähnlichen Objekten, welche sich nur in Ihren Attributen unterscheiden Charakterisiert die Objekte Schablone / Prototyp Instanz Konkretes Objekt das bestimmte Attributwerte aufweist Folie 16/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
17 Beispiel: Objekt Klasse Instanz Klasse Auto Attribute: Geschwindigkeit Methoden: beschleunigen bremsen Stefans Auto Attribute: Geschwindigkeit=50,4 Methoden: beschleunigen bremsen Martins Auto Attribute: Geschwindigkeit=62,7 Methoden: beschleunigen bremsen Instanzen Folie 17/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
18 Generalisierung / Vererbung Vererbung ermöglicht Gruppen von Klassen, die sich ähnlich sind, aber Unterschiede haben Gemeinsame Attribute und Methoden werden in der Elternklasse definiert Verschiedene Kinder erben diese und implementieren weitere Methoden und Attribute Jedes Kind kann auch die Methoden und Attribute der Eltern überschreiben, also neu implementieren Folie 18/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
19 Beispiel: Vererbung Auto Geschwindigkeit beschleunigen() bremsen() Rot: geerbte Attribute/Methoden Blau: überschriebene Methoden Cabrio Geschwindigkeit VerdeckOffen beschleunigen() bremsen() verdecköffnen() LKW Geschwindigkeit Anhänger beschleunigen() bremsen() Folie 19/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
20 Objektbeziehungen Wesentliches Merkmal der objektorientierten Programmierung ist die Interaktion der Objekte Objekte stehen in Beziehungen zueinander Es gibt verschiedene Arten von Beziehungen Komposition Aggregation Assoziation Folie 20/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
21 Objektbeziehungen Komposition Teile existieren nur gemeinsam Aggregation Teile bilden eine Einheit Können auch alleine existieren Assoziation Teile agieren gemeinsam flüchtige Bindung Folie 21/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
22 Erwartungen an das objektorientierte Paradigma Wiederverwendbarkeit Erweiterbarkeit Leichte Wartbarkeit Wodurch? Klasse hat definiertes Verhalten durch Kapselung Die Attribute, und damit die Daten der Klasse sind nicht beliebig änderbar. Folie 22/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
23 Realisierung der Kapselung Der Zugriff auf Attribute des Objekts muss geregelt werden Methoden dienen zur Abarbeitung von Botschaften Methoden sind also die Schnittstelle zu den Daten des Objekts Es sind folgende Fragen zu klären: Welche Methode darf welche Daten ändern? Wer darf die Methoden aufrufen? Folie 23/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
24 Realisierung der Kapselung Klasse besteht aus: Attributen und Methoden der Basisklasse Eigenen Attributen und Methoden Zugriffsregelung sollte auf Vererbung aufsetzen! Folie 24/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
25 Public Manche Daten sind jedem zugänglich: Also allen Methoden jeglicher Klassen Beispiel: Luftdruck (durch Methoden luftdruckerhoehen(), luftdrucksenken(), Attribut Luftdruck) Auto +Luftdruck +luftdruckerhöhen() +luftdrucksenken() +public-attribut/ Methode Folie 25/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
26 Private Auf manche Daten können nur die Methoden der Klasse zugreifen Beispiel: Geschwindigkeit (durch Methoden bremsen(), beschleunigen()) Auto -Geschwindigkeit +bremsen() +beschleunigen() +public-attribut/ Methode -private-attribut/ Methode Folie 26/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
27 Protected Auf manche Daten können nur die Methoden der Klasse zugreifen, sowie die Methoden der Klassen, die von dieser erben Beispiel: InnenraumTemperatur (durch Methoden der abgeleiteten Klasse heizen(), kühlen()) +public #protected -private Folie 27/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
28 Überblick Auto +Luftdruck #InnenraumTemperatur -Geschwindigkeit +bremsen() +beschleunigen() +luftdruckerhöhen() +luftdrucksenken() +public-attribut/ Methode #protected-attribut/ Methode -private-attribut/ Methode Folie 28/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
29 Private- und Protected-Methoden Auto +Luftdruck #InnenraumTemperatur -Geschwindigkeit -ABS-Wirkungsgrad +beschleunigen() +luftdruckerhöhen() +luftdrucksenken() #alarmauslösen() -benzinpumpen() Cabrio +heizen() +kühlen() +public-attribut/ Methode #protected-attribut/ Methode -private-attribut/ Methode Folie 29/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
30 Public-Attribute Kapselung Attribute, die durch jeden, also alle Methoden, änderbar sind! Auto +Anzahl der Kratzer +Tankinhalt Keine Kapselung! Art der Zugriffe völlig unbestimmt! Folie 30/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
31 Public-Attribute Kapselung II Immer besser: Methoden zum Setzen und Auslesen der Attribute Aber: nur wo nötig und sinnvoll, da die Kapselung sonst aufgeweicht wird Auto -Anzahl der Kratzer -Tankinhalt +gettankinhalt() +settankinhalt() Das Verhalten kann definiert werden, d.h. Bereichsüberwachung ist beispielsweise möglich Fehlersuche und Wartung wird enorm vereinfacht Folie 31/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
32 Gruppenarbeit Erstellt ein Klassendiagramm für ein Auto Komponenten: Motor, Fahrgestell, Karosserie, Räder, Türen, Fahrer(in), Anhänger, Überlegt euch sinnvolle Methoden und Attribute Überlegt, welche Methoden und Attribute -private, +public oder #protected sein müssen Folie 32/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
33 Lösungsvorschlag Auto +farbe -kilometerstand +beschleunigen() +bremsen() Fahrer -alter +getalter() -offen Tür +öffnen() +schließen() -drehzahl Motor +kraftstoffeinspritzen() Anhänger +gewicht Folie 33/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
34 Hausaufgabe Skript lesen bis einschließlich Kapitel 4.4 Ihr dürft die Inhalte aus diesen Kapiteln gerne auch aus anderen Quellen als dem Skript nachlesen! Folie 34/34 GK C++: Einführung Martin Knopp, Martin Gottwald, Stefan Röhrl
Grundkurs C++ Einführung
Grundkurs C++ Einführung Martin Knopp 26.04.2017 Folie 1/34 GK C++: Einführung Martin Knopp 26.04.2017 Martin Knopp Martin.Knopp@tum.de Büro Z934 Folie 2/34 GK C++: Einführung Martin Knopp 26.04.2017 Warum
MehrGrundkurs C++ Einführung
Grundkurs C++ Einführung Martin Knopp & Johannes Feldmaier 13.04.2016 Folie 1/34 GK C++: Einführung Martin Knopp & Johannes Feldmaier 13.04.2016 Martin Knopp Martin.Knopp@tum.de Büro Z934 Johannes Feldmaier
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Einführung
Grundkurs C++ Einführung Tim Habigt tim@tum.de Büro Z949 Julian Habigt jh@tum.de Büro Z941 Grundkurs C++ 2 Warum C++? Sprache Rechenzeit Memory KB C++ GNU g++ 5,74 182.244 Java 6 26,34 686.076 Python 3
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++
Grundkurs C++ IDE Implementierung von Klassenhierarchien Compiler, Linker Buildsysteme Tim Habigt tim@tum.de Büro Z949 Julian Habigt jh@tum.de Büro Z941 Grundkurs C++ 2 Warum C++? Sprache Rechenzeit Memory
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
MehrPräsenzübung zum Kurs Algorithmische Mathematik II
Präsenzübung zum Kurs Algorithmische Mathematik II Averkov, Zeile, Jost Email: clemens.zeile@ovgu.de, felix.jost@ovgu.de Fakultät für Mathematik Otto-von-Guericke-Universität Magdeburg Sommersemester 2018
MehrJava Einführung Objektorientierte Grundkonzepte
Java Einführung Objektorientierte Grundkonzepte Inhalt Verständnis der grundlegenden Konzepte der Objektorientierung: Objekte Nachrichten Kapselung Klassen und Instanzen Vererbung Polymorphismus Darstellung
MehrHerzlich willkommen!
Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Disclaimer 2 Diese Vorlesungs-/Unterrichtsfolien wurden durch den Dozenten
MehrLeistungskurs C++ Einführung
Leistungskurs C++ Einführung Martin Knopp, Stefan Röhrl, Martin Gottwald 17.10.2017 Folie 1/18 LK C++: Einführung Martin Knopp, Stefan Röhrl, Martin Gottwald 17.10.2017 Das Team Martin Knopp Martin.Knopp@tum.de
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
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil
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
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
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment
MehrGrundkurs C++ Objektmodellierung
Grundkurs C++ Objektmodellierung Martin Knopp, Martin Gottwald, Stefan Röhrl 09.05.2018 Folie 1/25 GK C++: Objektmodellierung Martin Knopp, Martin Gottwald, Stefan Röhrl 09.05.2018 Objektmodellierung Welche
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
MehrObjektorientierte 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?
MehrLeistungskurs C++ Einführung
Leistungskurs C++ Einführung Martin Knopp, Johannes Feldmaier, Stefan Röhrl 18.10.2016 Folie 1/18 LK C++: Einführung Martin Knopp, Johannes Feldmaier, Stefan Röhrl 18.10.2016 Das Team Martin Knopp Martin.Knopp@tum.de
MehrWESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER. Advanced Matlab. living knowledge WWU Münster. Mario Ohlberger, Martin Drohmann, Stefan Girke 10/05/2012
MÜNSTER Advanced Matlab Mario Ohlberger Martin Drohmann Stefan Girke 10/05/2012 Cell Array MÜNSTER 2 /12 Datentyp der beliebige Werte (nicht nur Zahlen) in Zellen speichert die wie einer Matrix oder einem
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
MehrAnwendungsentwicklung 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,
MehrÜberblick. Überblick zum weiteren Inhalt
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
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
MehrInformationsverarbeitung im Bauwesen
1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8
MehrGeoinformation 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
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
Mehr8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure
8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Objektorientierung Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
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,
MehrEinfü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
MehrObjektorientierte 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
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
MehrPraxisbuch Objektorientierung
Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und
MehrUML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language
UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?
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
MehrUniversitä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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation
Mehr7. 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
MehrGrundkurs C++ Buildsysteme Versionsverwaltung mit git
Grundkurs C++ Buildsysteme Versionsverwaltung mit git Martin Knopp, Martin Gottwald, Stefan Röhrl 25.04.2018 Folie 1/21 GK C++: Buildsysteme, Versionsverwaltung Martin Knopp, Martin Gottwald, Stefan Röhrl
MehrFH 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
MehrBegriffe 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.
MehrEinführung in die objektorientierte Programmierung
Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.
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
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
MehrSkriptum 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...
MehrObjektorientierung. 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
MehrRealität zu modellieren eine
Objektorientierung Objektorientierung ist zunächst einmal eine Möglichkeit, Realität zu modellieren dem menschlichen Denken ähnliche Art, an Probleme heran zu gehen Objektorientierung ist eine Vorgehensweise
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
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
MehrProgrammieren 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
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
MehrObjektorientierte Programmierung
Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was
MehrGrundkurs C++ Typwandlung Ausnahmebehandlung
Grundkurs C++ Typwandlung Ausnahmebehandlung Martin Knopp, Martin Gottwald, Stefan Röhrl 02.05.2018 Folie 1/25 GK C++: Typwandlung & Fehlerbehandlung Martin Knopp, Martin Gottwald, Stefan Röhrl 02.05.2018
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
Mehrwenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken
1 Java ist... gut erlernbar wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax objektorientiert Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken robust keine Adressen,
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
MehrInstitut 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
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public
MehrProgrammieren in JAVA. Kapitel 0
FG TECHNISCHE INFORMATIK V JV 000 00 TH 01 Programmieren in JAVA Kapitel 0 0. Grundkonzepte der Objektorientierten Programmierung 0.1. Objekte und Klassen 0.2. Kapselung 0.3. Vererbung 0.4. Polymorphie
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrÜberblick. 5. Objekt und Klasse, Elementfunktionen
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen
MehrAufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.
Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt. Was ist eine Klasse? Was ist ein Objekt? Geben Sie ein
MehrObjektorientierte 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
MehrObjektorientiertes Programmieren
JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist
MehrProgrammierparadigmen
Programmierparadigmen DEKLARATIV Funktional Logisch IMPERATIV Prozedural Objektorientiert Einsatz der Programmierparadigmen Systemkomplexität von der Komplexität der Algorithmen dominiert deklarativ oder
MehrObjektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen
Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung
MehrAuf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...
Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++
Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrObjektorientiertes Design
Objektorientiertes Design Yi Zhao Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Zhao, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1
Mehr2. 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
MehrBeziehungen zwischen Objekten
1/19 Beziehungen zwischen Objekten Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/19 Outline 1 Vererbung (Wiederholung)
MehrÜbungen Softwaretechnik I
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der
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
MehrJavakurs 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
MehrEin Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA
Ein Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA Themenspeicher Strukturen objektorientierter Programmierung (Wiederholung) Klassen und Vererbung Schnittstellen und
MehrObjektorientierte Analyse (OOA) Strukturmodellierung
Strukturmodellierung Seite 1 Strukturmodellierung Seite 2 Anwendung im Projekt Strukturmodellierung Voraussetzung: Use Case Diagramm liefert die funktionelle Gliederung mit Angabe der Ein- und Ausgaben
MehrObjektorientierte und Funktionale Programmierung SS 2014
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
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.
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
Mehr10. Programmierungs-Phase: Objektorientierung Software Engineering
10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext
Mehr7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik
7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:
MehrJava 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
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung
Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen
MehrLukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster
Entwurfsmuster Lukas Klich Projektgruppe SHUTTLE Seminar: 28.11.2002 Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1 Motivation Die Menschheit löst Probleme, indem sie beobachtet, Beobachtungen
MehrUML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish
UML Klassendiagramm Igor Karlinskiy, Mikhail Gavrish Agenda Wichtigste Eigenschaften Syntaktische Elemente mit entsprechendem C++ Code Analysemodell Designmodell Quellen 2 Klassendiagramm gibt die Möglichkeit,
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrVorlesung 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:
MehrAlgorithmen 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
MehrJavakurs 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
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 Ziele Sie wissen, was Vererbung
MehrKlassen und ihre Beziehungen I: Assoziation und Aggregation
Klassen und ihre Beziehungen I: Ziele Verstehen der Begriffe Assoziation, Aggregation und Komposition 2 Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, irk Pattinson 3 4 Assoziation
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
MehrGeschachtelte Klassen
Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrModellierung und Programmierung 1
Sinn der Übung: Vertiefung des Vorlesungsstoffes Vorbereitung zum Lösen der Übungsaufgaben Besprechung der Lösungen nach Abgabe Materialien: https://www.informatik.uni-leipzig.de/~stjaenicke/mup1/ Einschreibung
Mehr