Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11"

Transkript

1 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

2 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen aus Objekten, OOP ermöglicht diese Sicht der Dinge als Computerprogramm abzubilden. Komplexe Objekte in der reellen Welt bestehen meist selbst aus komplexen Objekten die wiederum aus Objekten bestehen. Am Ende dieser Kette wird die Komplexität der Objekte meist überschaubarer. Beispiel: Ein Auto besteht aus sehr vielen Objekten wie Motor, Räder, Lenkrad, Karosserie und vieles mehr, wobei z.b. der Motor auch wieder aus vielen unterschiedlichen Einzelteilen besteht. Und das Wichtigste: Objektorientierte Programmierung unterstützt wie kein anderer vorher bekannter Ansatz wiederverwendbaren Source-Code zu schreiben. Dies wird vor allem mit Mitteln wie Vererbung und Polymorphismus ermöglicht. Gut gebaute objektorientierte Programme sind gut lesbar und können meist von anderen Programmieren einfach nachvollzogen werden.

3 Die wichtigsten objektorientierten Begriffe: Klassen, Objekte Attribute, Member Methoden Konstruktor Information-hiding Überladen (von Methoden) Vererbung Überschreiben (von Methoden) Polymorphismus

4 Von C nach C++, Erweiterungen und Analogien: C++ Klassen Objekte Attribute, Member Methoden Konstruktor, Destruktor Überladen, Vererbung, Überschreiben, Polymorphismus Entsprechung in C Datentyp wie int oder char etc. (Klassen gibt es in C nicht, struct ist ein erster Schritt in Richtung Klasse) Variablen welche von einem Datentyp angelegt werden können. Daten die innerhalb einer Struktur (struct) deklariert werden. Funktionen Gibt es in C nicht, hat aber eine gewisse Ähnlichkeit mit dem Anlegen und ggf. Initialisieren einer Variablen. Gibt es in C nicht

5 Klassen und Objekte Klassen sind eine Art Bauplan für neue Datentypen, bzw. für Objekte. Objekte können (wie Variablen in C) von einer Klasse angelegt und ggf. Initialisiert werden. Klassen bestehen grundsätzlich aus zwei Dingen: aus Daten (entweder Variablen von Datentypen die es auch in C gibt, wie int, float oder char etc. oder aus Objekten) und aus Methoden (Funktionen). Beispiel: Ein Rechenprogramm soll ausser mit Ganzzahlen (int) und Fliesskommazahlen (float) auch mit Brüchen die Grundrechenoperationen wie +,-,* und / ermöglichen. Es gibt aber keinen 'Variablentyp' Bruch in C oder C++. Also schreiben wir selbst den Bauplan für den Datentyp Bruch: class Bruch { int zaehler, nenner; //Member (Variablen) Zähler und Nenner vom Typ int ; //Methoden (Funktionen, in diesem Fall die Grundrechenoperationen) //im Moment nur angedeutet add() sub() mul() div() in einer main() Funktion, oder sonst irgendwo, könnten dann neben int oder float Variablen auch Objekte (Variable) von unserem neuen Datentyp erzeugt werden: int main() { Bruch z1, z2, a; //Objekte (Variablen) vom Typ Bruch int x; //Variable vom Typ int float y; //Variable vom Typ float

6 Member oder Attribute vs. Methoden Member oder Attribute sind quasi die Substanz eines Objekts, also das Material oder die Bestandteile, aus dem es besteht. Z.B. besteht ein Mensch aus Haut, Knochen, Organen, Augen und vieles mehr. In unserer Beispielklasse Bruch, besteht dieser aus zwei Ganzzahlen nämlich Zähler und Nenner. Wir haben es hier also mit einem extrem einfachen Bauplan zu tun, wenn wir das mit dem biologischen Bauplan eines Menschen vergleichen würden. Methoden erwecken die Bauteile (Member, Attribute) zum Leben. In prozeduralen Sprachen wie C würde man dazu Funktionen, Prozeduren oder Unterprogramme sagen, in C++ nennt man es Methoden, sofern sie innerhalb einer Klasse definiert sind. Beispiele: Wenn ein Mensch als Member zwei Augen hat, dann wäre die dazugehörende Methode (oder Funktion) sehen(). Oder, wenn eine Uhr als Member ein mechanisches Uhrwerk hat, dann könnte eine Methode z.b. ticken() heissen.

7 Konstruktor Das Beispiel mit der Klasse Bruch auf der vorigen Folie ermöglicht es zwar einen neuen Bruch anzulegen, aber noch nicht ihn mit Werten zu initialisieren, wie wir das z.b. mit einer int Variable tun könnten: int a=5; Um dies mit selbst definierten Datentypen (Klassen) zu ermöglichen, gibt es in objektorientierten Sprachen den Konstruktor. Ein Konstruktor ist eine Methode (Funktion) in der Klasse. Er hat den selben Namen wie die Klasse selbst. Er wird immer beim Anlegen eines Objekts der Klasse aufgerufen, und kann sonst nicht aufgerufen werden: class Bruch { public: int z, n; //Member (Variablen) Zähler und Nenner vom Typ int //Konstruktor (hat keinen Rückgabewert nicht mal void) Bruch(int zaehler, int nenner) : z(zaehler),n(nenner) { ; Nun können Bruch-Objekte auch initialisiert werden: int main() { Bruch z1(2,3); //legt den Bruch 2/3 an -> der Konstruktor von Bruch wird aufgerufen int x=4; //Variable vom Typ int wird mit 4 initialisiert float y; //Variable vom Typ float //mit dem. Operator kann ein Datenelement von z1 angesprochen werden cout << z1.z //gibt zähler von z1 aus, hier in diesem Fall wäre das 2

8 Methoden Um mit einem erstellten Objekt, d.h. mit seinen Daten (Membern, Attributen), in unserem Fall mit zaehler und nenner etwas machen zu können, z.b. rechnen, muss der Klasse Funktionalität in Form von Methoden hinzugefügt werden. Soll z.b. von einem erstellten Bruch der Fliesskommawert ermittelt werden können, muss dafür eine Methode in der Klasse Bruch geschrieben werden: class Bruch { public: int zaehler, nenner; //Member (Variablen) Zähler und Nenner vom Typ int //Konstruktor (hat keinen Rückgabewert nicht mal void) Bruch(int zaehler, int nenner) : zaehler(zaehler),nenner(nenner) { ; //Methoden: //tofloat() gibt den Bruch als Fliesskommawert zurück float tofloat() { return (float)zaehler/(float)nenner; Nun kann die Methode über den. Operator aufgerufen werden. (Wie in C bei Strukturen, nur dass jetzt auch Methoden angesprochen werden) int main() { Bruch z1(2,3); //legt den Bruch 2/3 an, d.h. der Konstruktor von Bruch wird aufgerufen float b=z1.tofloat(); //ruft die Methode tofloat des Obektes z1 auf, welche einen //float Wert zurückgibt.

9 Methoden Wir möchten mit unseren Bruch-Objekten rechnen können, so wie wir das von int oder float Zahlen gewohnt sind: int a=3, b=6, c=a*b+3; Ein erster Schritt in diese Richtung ist das Hinzufügen von Methoden für Rechenoperationen. Da wir als Ergebnis einer Rechenoperation mit Brüchen wiederum einen Bruch erhalten, muss einer Methode ein Bruch als Parameter übergeben werden und sie muss einen Bruch zurückgeben können: class Bruch { public: int zaehler, nenner; //Member (Variablen) Zähler und Nenner vom Typ int //Konstruktor (hat keinen Rückgabewert nicht mal void) Bruch(int zaehler, int nenner) : zaehler(zaehler),nenner(nenner) { ; //Methoden: //tofloat() gibt den Bruch als Fliesskommawert zurück float tofloat() { return (float)zaehler/(float)nenner; //mul() multipliziert den Bruch mit einem anderen Bruch Bruch mul(bruch b) { Bruch result(b.zaehler*zaehler,b.nenner*nenner); //hier wird ein neuer Bruch //erzeugt und direkt //mit dem Rechenergebnis initialisiert return result; Nun kann man einen Bruch multiplizieren und das Ergebnis als float Wert ausgeben: int main() { Bruch z1(1,3),z2(1,4); //legt die Brüche 1/3 und 1/4 an cout << z1.mul(z2).tofloat(); //z1 ruft mul() mit dem Parameter z2 auf. Das Ergebnis ist ein //Bruchobjekt, dessen Methode tofloat() aufgerufen wird. Der //erhaltene float Wert wird dann mit cout ausgegeben.

10 Methoden: Häufiger Denkfehler Programmierer die bisher ausschliesslich prozedural programmiert haben, stolpern im Zusammenhang mit Methoden häufig über folgendes: Wenn sie z.b. in der Klasse Bruch eine Methode zum Addieren schreiben sollen, machen sie so etwas: class Bruch { Bruch add(bruch b1, Bruch b2){ hier wird prozedural gedacht! Sie können sich nicht von der Vorstellung lösen, dass eine Methode die irgendwas mit zwei Daten machen soll, auch zwei Parameter braucht. Sie übersehen dabei, dass in der OOP, Daten und Methoden vereint sind, jedes Objekt hat seine eigenen Methoden. In unserem Fall heisst das, dass sich ein Objekt der Klasse Bruch mit einem anderen Bruch-Objekt addiert und nicht, dass es eine Methode gibt, die zwei Brüche addiert: class Bruch { Bruch add(bruch b){

11 Prozedurales Denken in der reellen Welt Würden wir Menschen prozedural funktionieren, so hätte ein Mensch nicht die Möglichkeit einem andern Menschen die Hand zu geben, sondern es müsste für zwei Menschen die sich die Hand geben wollen, eine Funktion (vielleicht eine Maschine) existieren, welche die Hand des einen Menschen nimmt und sie dem anderen Menschen reicht. Das klingt absurd, aber so werden Handlungen oder Operationen in der prozeduralen Programmierung umgesetzt.

12 Übungen Fügen Sie der Klasse Bruch folgende Methoden für die restlichen Rechenoperationen hinzu: Bruch div(bruch b) //bestehenden Bruch mit b dividieren Bruch add(bruch b) //bestehenden Bruch mit b addieren Bruch sub(bruch b) //bestehenden Bruch mit b subtrahieren Fügen Sie der Klasse Bruch eine Methode hinzu mit welcher der Bruch wie folgt ausgeben ausgegeben wird: (1/5) void ausgeben()

13 Informationhiding Bisher haben wir gesehen, dass es eine Ähnlichkeit zwischen einer Struktur struct in C, und einer Klasse class in C++ gibt. Beide können einen neuen Datentyp definieren, indem mehrere Variablen (Member) in einer Art Bauplan zusammengefasst werden, auf die dann - nachdem eine Variable (Objekt) von diesem neuen Datentyp erzeugt wurde - über den. Operator zugegriffen werden kann: Bruch b; cout << b.zaehler << '/' << b.nenner << endl; Wenn wir uns die Klasse Bruch auf den vorigen Folien anschauen gibt es dort ein Wort, public, welches bisher noch nicht erklärt wurde. Wenn dieses Wort dort nicht stünde, könnte der obige Programmtext nicht compiliert werden, weil dann alle Member und Methoden der Klasse per default private deklariert wären. Auf private gesetzte Member oder Methoden darf nur innerhalb der Klassendefinition zugegriffen werden. Wenn wir aber in main() ein Objekt von Bruch anlegen, sind wir nicht mehr innerhalb der Klasse Bruch und haben nun keinen Zugriff mehr auf Member und Methoden von Bruch. Es würde natürlich keinen Sinn machen sämtliche Member und Methoden einer Klasse private zu setzen, dann könnte man mit einem Objekt dieser Klasse nichts mehr machen. Aber es macht durchaus Sinn bestimmte Teile einer Klasse private zu setzen.

14 Informationhiding Es würde z.b. Sinn machen, nur die Member private zu setzen (und sie damit für den direkten Zugriff zu sperren), aber die Methoden mit public frei zu geben: gesperrter oder "versteckter" Bereich öffentlicher oder "sichtbarer" Bereich class Bruch { private: int zaehler, nenner; //Member (Variablen) Zähler und Nenner vom Typ int ; //Konstruktor (hat keinen Rückgabewert nicht mal void) Bruch(int zaehler, int nenner) : zaehler(zaehler),nenner(nenner) { public: //Methoden: //tofloat() gibt den Bruch als Fliesskommawert zurück float tofloat() { return (float)zaehler/(float)nenner; //mul() multipliziert den Bruch mit einem anderen Bruch Bruch mul(bruch b) { Bruch result(b.zaehler*zaehler,b.nenner*nenner); //hier wird ein neuer Bruch //erzeugt und direkt //mit dem Rechenergebnis initialisiert return result; Zum Nachdenken: Wieso würde es hier Sinn machen den direkten Zugriff ausserhalb der Klasse Bruch auf zaehler und nenner zu unterbinden?

15 Informationhiding: Zugriff auf private Member Will man aus bestimmten Gründen den Zugriff auf private Member ermöglichen, so kann man das über eine public Methode tun: In dieser Klasse wird der den Zugriff auf zaehler und nenner ermöglicht, aber nur lesend: int main() { Bruch b(2,7); cout << b.zaehler(); Falls ein Schreibzugriff erwünscht ist, braucht es noch Methoden, die zaehler und nenner setzen, z.b. setnenner(int n) class Bruch { private: int zaehler,nenner; public: int zaehler() { return zaehler; int nenner() { return nenner;... Übung: Fügen Sie der Klasse Methoden hinzu, die zaehler und nenner verändern können.

16 Überladen von Methoden Angenommen, wir möchten in unserer Klasse, dass ein Bruch nicht nur mit einem Bruch multipliziert werden kann, sondern auch mit einer Zahl vom Typ int. Das könnte dann in etwa so aussehen: class Bruch { public: int zaehler, nenner; //Member (Variablen) Zähler und Nenner vom Typ int //Konstruktor (hat keinen Rückgabewert nicht mal void) Bruch(int zaehler, int nenner) : zaehler(zaehler),nenner(nenner) { //Methoden: //tofloat() gibt den Bruch als Fliesskommawert zurück float tofloat() { return (float)zaehler/(float)nenner; //mul() multipliziert den Bruch mit einem anderen Bruch Bruch mul(bruch b) { Bruch result(b.zaehler*zaehler,b.nenner*nenner); //hier wird ein neuer Bruch //erzeugt und direkt //mit dem Rechenergebnis initialisiert return result; ; //mulint() multipliziert einen Bruch mit einer int Zahl Bruch mulint(int z) { Bruch result(zaehler*zahl,nenner); return result;

17 Überladen von Methoden Um nun Bruch-Objekte zu multiplizieren, muss die richtige Methode ausgewählt werden, je nachdem ob ein Bruch mit einem Bruch, oder aber mit einem int-wert multipliziert wird: int main { Bruch b(2,5), c(1,2); cout << b.mulint(3).tofloat() << endl; //Bruch wird mit int multipliziert cout << b.mul(c).tofloat() << endl; //Bruch wird mit Bruch multipliziert Wenn man sich vorstellt, dass es noch weitere Datentypen gibt mit denen ein Bruch multipliziert werden kann, wie z.b. float und double, dann muss man sich weitere Methodennamen ausdenken für jeden Typ einen, z.b. mulfloat() und muldouble(). Die Folge dieses Vorgehens: Ein Anwender der Klasse muss wissen wie die einzelnen Methoden heissen um Brüche mit allen möglichen Datentypen korrekt multiplizieren zu können.

18 Überladen von Methoden OOP bietet hier eine bessere Möglichkeit, nämlich Überladen: Die verschiedenen Methoden zur Multiplikation der verschiedenen Datentypen erhalten alle den gleichen Namen, sie unterscheiden sich nur durch die Parameter, die ihnen übergeben werden: class Bruch { Bruch mul(bruch b) { Bruch mul(int zahl) { Bruch mul(float zahl) { ;

19 Nutzen der Überladung In unserem Fall: Der Anwender eines Bruchs muss für die Multiplikation von Brüchen mit unterschiedlichen Datentypen nur noch einen Methodennamen wissen, die Auswahl der Methode für den richtigen Datentyp übernimmt der Compiler! int main() { int a=7; Bruch b(2,5); float zahl=3.6; //egal mit welchem Datentyp der Bruch multipliziert //wird, immer wird mul() aufgerufen cout << b.mul(a).tofloat() << endl; cout << b.mul(zahl).tofloat() << endl; cout << b.mul(b).tofloat() << endl;

20 Vererbung Vererbung ist eine der wichtigsten Erweiterung in der OOP gegenüber prozeduraler Programmierung. Sie ermöglicht vor allem folgendes: Die Wiederverwendung von bestehendem Source-Code. Das bedeutet, dass Teile einer bestehenden Funktions -oder besser Klassenlibrary (z.b. Qt, eine mächtige Bibliothek um graphische Benutzeroberflächen zu programmieren) beliebig für eigene Bedürfnisse angepasst werden können, ohne den bestehenden Quellcode anzurühren. Vermeidung von redundantem, d.h. gleichen oder ähnlichen Source-Code an mehreren Stellen in einem Programm. Wie funktioniert das? Beispiel: Angenommen, auf dem Internet stellt jemand eine perfekte C++ Klasse Bruch zum Download zur Verfügung, mit allen Möglichkeiten, um mit einem Bruch rechnen zu können. Wieso sollten wir so etwas (ausser zu Übungszwecken) noch mal programmieren? Beim Verwenden der Klasse sind wir begeistert, dass wir uns mit dem Download viel Arbeit gespart haben, nur leider gefällt uns die Ausgabe des Bruchs nicht. Der Bruch wird so ausgegeben: (3,4) wir hätten aber gerne dass der Bruch in der Form: 3/4 ausgeben wird.

21 Vererbung Dazu schreiben wir eine neue Klasse und erben von der bestehenden Klasse Bruch:

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

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

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

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

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

Aufbau von Klassen. class punkt {...

Aufbau 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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern

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

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

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

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

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar

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

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

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

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

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation

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

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

10 Objektorientierte Programmierung, Teil 1

10 Objektorientierte Programmierung, Teil 1 10 Objektorientierte Programmierung, Teil 1 Wir lernen nun eine andere Technik (vor allem: eine andere Sichtweise) kennen, um unsere Programm zu organisieren, nämlich mittels Klassen und Objekten 184 Objekte,

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

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

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

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

Vokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4

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

Mehr

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

Mehr

Programmierkurs C/C++

Programmierkurs 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

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ 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

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

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung. Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Vererbung und Polymorphie

Vererbung 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

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

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

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

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

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

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Funktionen in PHP 1/7

Funktionen in PHP 1/7 Funktionen in PHP 1/7 Vordefinierte Funktionen in PHP oder vom Entwickler geschriebene Funktionen bringen folgende Vorteile: gleiche Vorgänge müssen nur einmal beschrieben und können beliebig oft ausgeführt

Mehr

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN Wir wollen nun die Rechengesetze der natürlichen Zahlen auf die Zahlenmenge der ganzen Zahlen erweitern und zwar so, dass sie zu keinem Widerspruch mit bisher geltenden

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Prinzipien der objektorientierten Programmierung (OOP)

Prinzipien der objektorientierten Programmierung (OOP) Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

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

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

4. Objektorientierte Programmierung mit C++

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

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: 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,

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Tutorial zu Einführung in die Informatik für LogWi- Ings und WiMas Wintersemester 2015/16. 1 Zauberer und Zwerge, Aufgabenteil 1

Tutorial zu Einführung in die Informatik für LogWi- Ings und WiMas Wintersemester 2015/16. 1 Zauberer und Zwerge, Aufgabenteil 1 Tutorial zu Einführung in die Informatik für LogWi- Ings und WiMas Wintersemester 2015/16 1 Zauberer und Zwerge, Aufgabenteil 1 Stellen Sie sich vor, Sie sollen eine Charakterverwaltung für das neue Onlinerollenspiel

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

Objektorientierte Programmierung

Objektorientierte 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

Mehr

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik Software-Technik: Vom Programmierer zur erfolgreichen Software-Technik: Vom Programmierer zur erfolgreichen 1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

Mehr

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP 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

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

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

Informatik 1 MaVt FS Übung 10

Informatik 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

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen DEKLARATIV Funktional Logisch IMPERATIV Prozedural Objektorientiert Einsatz der Programmierparadigmen Systemkomplexität von der Komplexität der Algorithmen dominiert deklarativ oder

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

25 kann ohne Rest durch 5 geteilt werden! ist wahr

25 kann ohne Rest durch 5 geteilt werden! ist wahr Lehrbrief 2: Lektion 8 - C -Praxis 4-1 - 5.2 Einfache Entscheidungen mit if und die Vergleichsoperatoren Nun tauchen wir immer tiefer in die Geheimnisse von C ein und beschäftigen uns mit einem sehr wichtigen

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

WCF Services in InfoPath 2010 nutzen

WCF Services in InfoPath 2010 nutzen WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr