11. Klassen. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

Größe: px
Ab Seite anzeigen:

Download "11. Klassen. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)"

Transkript

1 11. Klassen Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Objektorientierte Programmierung Das Konzept der Klassen Members Objekte Konstruktoren und Destruktoren this-pointer Public und Private Sections

2 Objektorientierung Objektorientierung (OO) ist ein konzeptioneller Ansatz zum Klassendesign, welcher unabhängig von der Programmiersprache ist Merkmale von OO sind: Abstraktion (abstraction) Verkapselung (encapsulation) Polymorphismus (polymorphism) Vererbung (inheritance) Wiederverwendung (reusability) OO-Programmierung ist datenzentriert Repräsentation der Daten steht im Vordergrund Methoden zur Datenbearbeitung In C++ dient die Klasse zur Implementierung der OO (class) 2

3 Objektorientierung Bei der sequentiellen Programmierung stehen die Algorithmen im Vordergrund Diese werden auf Daten angewandt Man kann sich aber auch auf die Datentypen konzentrieren und definieren, welche Operationen auf diese Typen anwendbar sind So sind z.b. für den Typ int die Operatoren +, -, *, / und % vordefiniert Die objektorientierte Programmierung erlaubt es, neue Datentypen zu definieren und für jeden neuen Datentyp anzugeben, welche Operationen darauf ausgeführt werden dürfen 3

4 Objektorientierung Merkmale eines klassischen C-Structs: Verkapselt Mitgliedsvariablen Zugriff mittels.-operator Legt fest, wie viel Speicher benötigt wird Bestimmt, welche Operationen auf den Daten möglich sind Operationen (Methoden) werden in Form von Funktionen definiert Funktionen haben globalen Gültigkeitsbereich Grundkonzept der Objektorientierung: Daten werden komplett vor dem Benutzer versteckt Zugriff über bestimmte Zugriffsfunktionen Diese Funktionen definieren das Interface zur Klasse und erhalten lokalen Charakter 4

5 Implementierung einer Klasse Erfolgt durch Klassendeklaration Beschreibt Mitgliedsdaten (member data) und Mitgliedsfunktionen (member functions/methods) Diese stellen das public interface der Klasse dar sowie durch Definition der Methoden Konvention: Klassennamen schreiben wir mit führendem Grossbuchstaben Eselsbrücke : Die Klasse kann zunächst als Struct mit lokalen Funktionen und verbesserten Zugriffsrechten interpretiert werden 5

6 Beispiel: Stock-Klasse Benötigte Methoden Neue Aktie ins Portfolio einfügen Aktien kaufen und verkaufen Aktienwert anpassen Anzeige und Darstellung wichtiger Information Benötigte Daten Firmenname Anzahl der Aktien Aktienwert Gesamtwert des Portfolios 6

7 Beispiel_1: Stock-Klasse (Prata S. 510) class Stock // class declaration private: char company[30]; int shares; double share_val; double total_val; void set_tot() total_val = shares * share_val; Private Mitgliedsvariablen public: void acquire(const char * co, int n, double pr); void buy(int num, double price); void sell(int num, double price); void update(double price); void show(); ; // note semicolon at the end Öffentliche Mitgliedsfunktionen 7

8 Objekte Stock ist somit als neuer Typenname für eine Klasse deklariert Erlaubt die Definition von Objekten dieses Klassentyps Stock sally; Stock solly; Mit der Definition werden sowohl Mitgliedsvariablen angelegt, als auch Zugriffsfunktionen festgelegt Die Zugriffskontrolle erfolgt durch die Schlüsselwörter private und public Mitglieder der private section Nur für Klassenmitglieder sichtbar Kein Zugriff von aussen möglich Sind verkapselt (data hiding) 8

9 Objekte Mitglieder der public section Stellen das Klasseninterface in Form von Zugriffsfunktionen dar Diese können auf private Daten der Klasse zugreifen Verstecken die Details der Implementierung Sind von aussen zugreifbar Klasse kann damit als Black Box verwendet werden, wobei nur das Interface bekannt gegeben wird Klassenbibliotheken Wiederverwendung von Code Goldene Regel: Alle Daten sollten möglichst in der private section der Klasse deklariert werden private ist default Zugriffstyp 9

10 Mitgliedsfunktionen Definition erfolgt in Analogie zur Definition regulärer Funktionen Verwendung des Scope Operators (::) Haben Zugriff auf die private section der Klasse Somit kann gleicher Name für verschiedene Klassen verwendet werden Beispiel: void Stock::update(double price) update() wird hier als Mitgliedsfunktion der Klasse Stock definiert update() hat also class scope Stock::update() ist der qualifizierte Name (qualified name) der Methode 10

11 Beispiel_2: Implementierung //more stocks.cpp implementing the class member functions (Prata p. 515) void Stock::acquire(const char * co, int n, double pr) std::strncpy(company, co, 29); // truncate co to fit if needed company[29] = '\0'; if (n < 0) std::cerr << "Number of shares can t be negative; " << company << " shares set to 0.\n"; shares = 0; else shares = n; share_val = pr; set_tot(); void Stock::buy(int num, double price) if (num < 0) std::cerr << "Number of shares purchased can t be negative. " << "Transaction is aborted.\n"; else shares += num; share_val = price; set_tot(); Verwendung privater Mitglieder der Klasse 11

12 Beispiel_2: Implementierung void Stock::sell(int num, double price) using std::cerr; if (num < 0) cerr << "Number of shares can t be negative; " << "Transaction is aborted.\n"; else if (num > shares) cerr << "You can't sell more than you have! "; << "Transaction is aborted.\n"; else shares -= num; share_val = price; set_tot(); void Stock::update(double price) share_val = price; set_tot(); 12

13 Beispiel_2: Implementierung void Stock::show() using std::cout; using std::endl; cout << "Company: " << company << " Shares: " << shares << endl << " Share Price: $" << share_val << " Total Worth: $" << total_val << endl; 13

14 Scope und Zugriff Deklaration der Klassen wird in einem getrennten File vorgenommen Headerfile stock.h Definition der Methoden erfolgt im Quellfile stock.cpp Zugriff auf Methoden eines Objektes erfolgt durch bekannten membership Operator Stock kate; kate.show(); // Aufruf einer Mitgliedsfunktion Mitgliedsvariablen müssen für jedes Objekt getrennt verwaltet werden Mitgliedsfunktionen werden vom Compiler nur einmal angelegt 14

15 Beispiel_3: Verwendung (Prata S. 519) int main() Stock stock1; Definition eines Objektes stock1.acquire("nanosmart", 20, 12.50); cout.precision(2); cout.setf(ios_base::fixed); cout.setf(ios_base::showpoint); // #.## format // #.## format // #.## format stock1.show(); stock1.buy(15, 18.25); stock1.show(); return 0; Methodenaufrufe 15

16 Klassendeklaration Eine Klasse besitzt sowohl Mitgliedsdaten als auch Mitgliedsfunktionen Allgemeine Deklarationssyntax sieht wie folgt aus class ClassName private: data member variables public: member function prototypes // Interface ; Zur Verwendung von Mitgliedsfunktionen muss zuerst ein entsprechendes Objekt angelegt werden Aufruf erfolgt mit dem Membership Operator objectname.foo(); 16

17 Konstruktoren Daten der private section der Klasse sind von aussen nicht sichtbar Daher können sie nicht direkt initialisiert werden Vergleich: Struct und dessen Initialisierung Man benötigt eine spezielle Funktion zur Initialisierung Dies kann durch einen Konstruktor erreicht werden Wird bei Objektdefinition automatisch aufgerufen Der Name des Konstruktors ist identisch mit dem Klassennamen Man benötigt Prototyp und Funktionsdefinition Argumente dürfen keine Namen von Mitgliedsvariablen tragen 17

18 Konstruktoren Beispiel: Stock(const char *co, int n = 0, double pr = 0.0); Stock::Stock(const char *co, int n, double pr)... Konstruktoren haben kein Rückgabeargument Konstruktoren können explizit bei der Objektdefinition aufgerufen werden Stock food = Stock("World", 250, 1.0); Konstruktoren können auch implizit aufgerufen werden Stock food("world", 250, 1.0); In Verbindung mit Pointern Stock *pstock = new Stock("World", 250, 1.0); Default Konstruktor wird von C++ angelegt, wenn kein Konstruktor implementiert ist Eigener Default Konstruktor möglich Stock(); 18

19 Konstruktoren Funktionsüberladung erlaubt die Definition mehrerer Konstruktoren mit unterschiedlichen (unterscheidbaren) Aufrufparametern Wenn ein Konstruktor definiert wurde, muss auch ein Default Konstruktor definiert werden, da sonst Stock sally; nicht mehr funktioniert Beispiel eines explizit definierten Default Konstruktors: Stock::Stock() // default constructor std::strcpy(company, "no name"); shares = 0; share_val = 0.0; total_val = 0.0; 19

20 Destruktoren Wenn Gültigkeitsbereich des definierten Objektes ausläuft, wird ein Destruktor aufgerufen Destruktoren sorgen für ordnungsgemässe Freigabe von verwendetem Speicher (Kontext new) Destruktoren haben keine Argumente Tragen Klassennamen mit vorgestellter Tilde ~Stock(); // Destruktor Compiler generiert ebenfalls einen Default Destruktor Destruktoren werden automatisch aufgerufen Stock::~Stock()... // Implementierung Beim fortschrittlichen Klassendesign muss den benötigten Konstruktoren und Destruktoren genaue Beachtung geschenkt werden 20

21 Header Files Klassendeklarationen werden in eigene Headerfiles geschrieben Präprozessor-Direktiven verhindern die Mehrfacheinbindung eines Headerfiles #ifndef STOCK1_H_ #define STOCK1_H_ // place include file contents here #endif Beim ersten Durchlauf wird STOCK1_H_ generiert Bei weiteren Aufrufen wird Inhalt ignoriert und somit Mehrfachdeklaration vermieden Beispiel unserer Stock-Klasse 21

22 Beispiel_4: Headerfile (Prata S. 530) // stock1.h #ifndef STOCK1_H_ #define STOCK1_H_ class Stock Direktive private: char company[30]; int shares; double share_val; double total_val; void set_tot() total_val = shares * share_val; public: Stock(); // default constructor Stock(const char * co, int n = 0, double pr = 0.0); ~Stock(); // noisy destructor void buy(int num, double price); void sell(int num, double price); void update(double price); void show(); ; #endif Automatisch Inline Funktion Konstruktoren Destruktor 22

23 Beispiel_5: Implementierung //stock1.cpp implementing constructors/destructors (Prata p. 531) Stock::Stock() // default constructor std::cout << "Default constructor called\n"; std::strcpy(company, "no name"); shares = 0; share_val = 0.0; total_val = 0.0; Stock::Stock(const char * co, int n, double pr) std::cout << "Constructor using " << co << " called\n"; std::strncpy(company, co, 29); company[29] = '\0'; if (n < 0) std::cerr << "Number of shares can t be negative; " << company << " shares set to 0.\n"; shares = 0; else shares = n; share_val = pr; set_tot(); Funktionsüberladung Konstruktor ersetzt die bisher verwendete acquire Methode 23

24 Beispiel_5: Implementierung Stock::~Stock() // verbose class destructor std::cout << "Bye, " << company << "!\n"; 24

25 Beispiel_6:Verwendung von Stock // usestock1.cpp -- use the Stock class (Prata p. 533) #include <iostream> #include "stock1.h" int main() using std::cout; using std::ios_base; cout.precision(2); // #.## format cout.setf(ios_base::fixed, ios_base::floatfield); // #.## format cout.setf(ios_base::showpoint); // #.## format cout << "Using constructors to create new objects\n"; Stock stock1("nanosmart", 12, 20.0); // syntax 1 stock1.show(); Stock stock2 = Stock("Boffo Objects", 2, 2.0); // syntax 2 stock2.show(); cout << "Assigning stock1 to stock2:\n"; stock2 = stock1; cout << " Listing stock1 and stock2:\n"; stock1.show(); stock2.show(); cout << "Using a constructor to reset an object\n"; stock1 = Stock("Nifty Foods", 10, 50.0); // temp object cout << "Revised stock1:\n"; stock1.show(); cout << "Done\n"; return 0; 25 Aufruf des Konstruktors nicht nur bei Deklaration möglich

26 Bemerkungen Objekte können einander zugewiesen werden stock2 = stock1; Destruktoren werden bei der Vernichtung des Objektes, jedoch spätestens am Ende von main aufgerufen Last in First out (LIFO) Mit Konstruktoren können Objekte reinitialisiert werden Dabei legt der Compiler ein unsichtbares, temporäres Objekt zu Kopierzwecken an Dieses wird vom Destruktor wieder gelöscht Implementierungsabhängig Konstante Objekte benötigen Funktionen, welche das entsprechende Objekt nicht verändern const Stock land = Stock(...); Neue Art von konstanter Funktion (nachgestellt) void Stock::show() const 26

27 Der this-pointer Manche Mitgliedsfunktionen müssen das Objekt, welches sie aufruft, erkennen Dies erfolgt über den so genannten this-pointer Beispiel: Funktion, welche zwei Stock-Objekte vergleicht und das grössere Objekt zurückgibt Eine solche Funktion benötigt ein Objekt als Argument Objekt wird von der Funktion nicht verändert Wir verwenden einen Call by Reference Funktion gibt eine Referenz auf das grössere Objekt zurück const Stock & topval(const Stock & s) const; // Prototyp, Funktion verändert Objekt nicht! top = stock1.topval(stock2); //oder auch top = stock2.topval(stock1); 27

28 Der this-pointer Implementierung const Stock & Stock::topval(const Stock & s) const if (s.total_val > total_val) return s; else return *this; // Pointer auf Objekt Der this-pointer ist also ein Pointer auf das aufrufende Objekt total_val entspricht also this->total_val this kann in diesem Fall nicht geändert werden 28

29 Arrays von Objekten Arrays von Objekten können beliebig angelegt werden Beispiel: Stock mystuff[4]; // Definition mystuff[2].show(); // Aufruf Initialisierung erfolgt mittels Konstruktoren In diesem Fall muss ein Default Konstruktor vorhanden sein Member Variablen haben class scope 29

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

Vorkurs C++ Programmierung

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:

Mehr

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008 I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

Java Einführung Methoden in Klassen

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

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt

Mehr

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

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

Mehr

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung C++ - Einführung in die Programmiersprache Objektorientierte Programmierung hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Projekt

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

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/

Mehr

Javakurs 2013 Objektorientierung

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

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Einführung in das Objektorientierte Programmieren mit C++

Einführung in das Objektorientierte Programmieren mit C++ BEREICH DATENTECHNIK I CP 500 00 TH 02 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 5 5. Überladen von Operatoren 5.1. Allgemeines 5.2. Operator-Funktionen 5.3. Zuweisungs-Operator

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Der C++ Crashkurs v1.0

Der C++ Crashkurs v1.0 Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Einführung in C++ Operatoren überladen (Klassen)

Einführung in C++ Operatoren überladen (Klassen) Einführung in C++ Operatoren überladen (Klassen) Operatoren überladen Die Überladung von Operatoren ermöglicht es, vorhandene Operatoren (+,-,...) auch auf Objekte von Klassen anzuwenden. Die meisten der

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Technische Infor matik 2 C/C++-Kurs. Datenabstraktion (Klassen) 2005 AG Rechner netze 4.1

Technische Infor matik 2 C/C++-Kurs. Datenabstraktion (Klassen) 2005 AG Rechner netze 4.1 Technische Infor matik 2 C/C++-Kurs Datenabstraktion (Klassen) 2005 AG Rechner netze 4.1 Overloading Überladene Funktionen Auswahl einer Funktion anhand ihrer Signatur Signatur : Name + Parameter Rückgabe-Wer

Mehr

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords 4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Funktionen und Parameter

Funktionen und Parameter Funktionen in C++ Funktionen und Parameter Wie in Java: Parameter sind lokale Variablen Argumente werden bei Aufruf zugewiesen Extras: Zeiger-Parameter für alle Typen: als Rückgabewerte um große Kopien

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Meeting C++ C++11 R-Value Referenzen

Meeting C++ C++11 R-Value Referenzen Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 9: Vererbung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 9 Vererbung... 3 9.1 Motivation... 3 9.2 Deklaration und Zugriffsrechte...

Mehr

Von Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-dortmund.de

Von Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-dortmund.de Von Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-.de Von Java nach C++, Lehrstuhl Informatik VII, TU Dortmund 1 Übersicht Einleitung Literatur

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

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

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

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:

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008 Überblick 1 Primitive Datentypen Von Java/C nach Fabian Scheler, Peter Ulbrich, Niko Böhm Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

CORBA Implementierung von Client und Server

CORBA Implementierung von Client und Server CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,

Mehr

Praxisorientierte Einführung in C++ Lektion: "Exceptions"

Praxisorientierte Einführung in C++ Lektion: Exceptions Praxisorientierte Einführung in C++ Lektion: "Exceptions" Christof Elbrechter Neuroinformatics Group, CITEC June 18, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ June 18, 2014 1 / 41 Table

Mehr

Einführung in die Programmierung Konstanten, dynamische Datenstrukturen. Arvid Terzibaschian

Einführung in die Programmierung Konstanten, dynamische Datenstrukturen. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Konstanten 2 Motivation Unveränderliche, wichtige Werte mathematische Konstanten z.b. PI String-Konstanten wie z.b. häufige statische Meldungen mögliche

Mehr

Prinzipien Objektorientierter Programmierung

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........................

Mehr

Informatikpraktikum CE2. Übung 1: Einfach verkettete Liste

Informatikpraktikum CE2. Übung 1: Einfach verkettete Liste Informatikpraktikum CE2 Übung 1: Einfach verkettete Liste c Torben Nehmer 1998 INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis 1 Anforderungen an die Liste 3 1.1 Beschreibung

Mehr

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Übersicht In den ersten Wochen: Einführung in objektorientierte Programmierung mit C++ Anschließend: Einführung in die programmierbare

Mehr

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

PHP Aufbaukurs. Tag 3. PHP5 & Klassen PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber 1) Welche Antworten zur Operatorüberladung sind richtig? (1) a) C++ - Operatoren können zusammen mit Objekten funktionieren b) C++ - Operatoren wird

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

Programmieren in Java

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

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

Java Native Interface

Java Native Interface Java Native Interface Eine Einführung Cornelius Zühl czueh001@student.informatik.fh-wiesbaden.de 01.03.2010 Inhaltsverzeichnis 1. Einführung... 3 2. Was ist JNI?... 3 3. JNI, was habe ich damit zu tun?...

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

Klausur zur Vorlesung Grundlagen der C++-Programmierung

Klausur zur Vorlesung Grundlagen der C++-Programmierung Institut für Simulation und Graphik Magdeburg, 15.7.2013 Dr. Christian Rössl Klausur zur Vorlesung Grundlagen der C++-Programmierung Name, Vorname Studiengang Matrikelnummer Zusatzblätter Unterschriften

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Z:\Informatik 3\Labor_GINF3\Labor_01-Sonstiges.txt

Z:\Informatik 3\Labor_GINF3\Labor_01-Sonstiges.txt Z:\Informatik 3\Labor_GINF3\Labor_0-Sonstiges.txt Laborbericht Nils Gemba Informatik 3 - OOP Labor 0 Vorbereitungszeit: ca. 4 Stunden Durchführungszeit: ca. 3 Stunden z:\informatik 3\Labor_GINF3\Labor_0\Labor_0.0\main.cpp

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

1 Einstieg in die Welt von C++

1 Einstieg in die Welt von C++ 1 Einstieg in die Welt von C++ Im ersten Kapitel des Buches können Sie sich noch entspannt zurücklehnen und einen Kaffee oder eine Tüte Gummibärchen bereitstellen. Hier geht es einfach nur um die Geschichte

Mehr

Lösungsvorschlag zum Übungsblatt 4 zur Vorlesung Informatik II / WS2001/02

Lösungsvorschlag zum Übungsblatt 4 zur Vorlesung Informatik II / WS2001/02 Lösungsvorschlag zum Übungsblatt 4 zur Vorlesung Informatik II / WS2001/02 Prof. Dr.-Ing. Holger Vogelsang (FH-Karlsruhe) Dipl.-Inform. (FH) Gudrun Keller (FH-Karlsruhe) Dipl.-Inform. Mathias Supp (.riess

Mehr

Java Tipps für Lehrer. Table des matières. Einleitung

Java Tipps für Lehrer. Table des matières. Einleitung Java Tipps für Lehrer Table des matières Einleitung..1 Tipp 1: Gültige Objekte erzeugen.2 Tipp 2: Objekte nicht wiederverwenden.3 Tipp 3: Direkt auf die eigenen Attribute zugreifen4 Tipp 4: Ausgabe-Strings

Mehr

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans... Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung Grundlagen der Programmierung Prof. H. Mössenböck 11. Objektorientierung Klasse = Daten + Methoden Beispiel: Positionsklasse class Position { private int x; private int y; void goleft() { x = x - 1; void

Mehr

Grundlagen der Informatik - 6. Praktikum

Grundlagen der Informatik - 6. Praktikum Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt

Mehr

Alltagsnotizen eines Softwareentwicklers

Alltagsnotizen eines Softwareentwicklers Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,

Mehr

C A R L V O N O S S I E T Z K Y. Boost C++ Libraries. Johannes Diemke. Department of Computer Science Learning and Cognitive Systems

C A R L V O N O S S I E T Z K Y. Boost C++ Libraries. Johannes Diemke. Department of Computer Science Learning and Cognitive Systems C A R L V O N O S S I E T Z K Y Boost C++ Libraries Johannes Diemke Department of Computer Science Learning and Cognitive Systems Grundlagen Freie von Experten begutachtete, portable C++ Bibliothek Nützlich,

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

C++ - eine Einführung

C++ - eine Einführung C++ - eine Einführung Wilfried Elmenreich Folien basieren auf dem Vortrag From Java to C++ von Ulrik Schröder Inhalt des Vortrags Voraussetzungen Unterschiede C++ / Java C++ Grundkonzepte: Operatoren,

Mehr

GUI Programmierung mit Qt

GUI Programmierung mit Qt GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

Kurzeinführung in C++

Kurzeinführung in C++ Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber

Mehr

Objektorientierte Programmierung

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)

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany C++ Programmierung Uwe Naumann LuFG Informatik 12, RWTH Aachen University, Germany Leave me alone world... Hauptprogramm int main(); return 0; Ausgabe auf Bildschrim #include std :: cout

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

4 Vererbung, Polymorphie

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

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Einführung in die Programmierung mit Qt

Einführung in die Programmierung mit Qt Einführung in die Programmierung mit Qt Dr. Ralf Schüler 5.11.2009 Was ist Qt? sprich: [kju:t] Klassenbibliothek für C++ (ferner Java, Python u.a.) sehr umfangreich: GUI, Stringverarbeitung, reguläre Ausdrücke,

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 14. Modularisierung und Automatisierung Was heißt Modularisierung? Seite 2 bisher Programm komplett in einer Datei längere

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr