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

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

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

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

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

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

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

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

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

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

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

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 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 Klassen, Attribute, Methoden

3 Klassen, Attribute, Methoden 3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

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

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

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

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

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

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

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

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

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

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

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

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts

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

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

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

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

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

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

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

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

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

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

Vorkurs Informatik: Erste Schritte der Programmierung mit C++

Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Tag 3: Objektorientiere Programmierung 8. Oktober 2014 Vorkurs Informatik WS 14/15 > Einführung Agenda 1 Einführung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

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

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

C++ - Eine Ubersicht fur Java-Programmierer

C++ - Eine Ubersicht fur Java-Programmierer C++ - Eine Ubersicht fur Java-Programmierer Daniel Wasserrab Lehrstuhl fur Programmierparadigmen Universitat Karlsruhe 23. April 2008 C++ I Entwickelt Anfang der 80er von Bjarne Stroustrup I Beeinut von

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

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

Objektorientierte Programmierung mit Python Objekt und Klassen

Objektorientierte Programmierung mit Python Objekt und Klassen Objektorientierte Programmierung mit Python Objekt und Klassen hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Eine Aufgabe wird

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 1 SS 2016

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Objektorientierte Programmierung in Java schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet:

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

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

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Einführung in C ++ und die Objektorientierte Programierung

Einführung in C ++ und die Objektorientierte Programierung 1/38 Einführung in C ++ und die Objektorientierte Programierung Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/38 Outline

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

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 11.06.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 28 Einführung Klassen Übung Algorithmen zur Datenanalyse in C++ Hartmut Stadie 2/ 28

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

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

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

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

Objektorientierte Programmiersprachen

Objektorientierte Programmiersprachen Objektorientierte Programmiersprachen 1960 Algol 1970 Simula Pascal 1980 Smalltalk C Ada 1990 C++ Eiffel Eine ovale Box symbolisiert eine objektorientierte Programmiersprache. Eine rechteckige Box steht

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

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung

Mehr

Abschnitt 6: Klassen, Objekte und Methoden in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java Abschnitt 6: Klassen, Objekte und Methoden in Java 6. Klassen, Objekte und Methoden in Java 6.1 Klassen 6.2 Objekte 6.3 Methoden 6.4 Zusammenfassung 6 Klassen, Objekte und Methoden in Java Informatik 2

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen L AKTUEL ZU fritz JOBST JAVA 8 PROGRAMMIEREN IN JAVA 7. Auflage Im Internet: Alle Beispielprogramme und Lösungen 4 1 Der Einstieg in Java keinem Fall zulässig. Die Schreibweisen Hello.java für den Namen

Mehr

Java lernen mit BlueJ

Java lernen mit BlueJ Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung David J. Barnes Michael Kölling 4.0 Lernen in Eigenregiegi Vorlesungen Seminare Übungen Bücher Webseiten Diskussionslisten

Mehr

Wie stellt man eine Gleichung um?

Wie stellt man eine Gleichung um? Wie stellt man eine Gleichung um? Umstellen von Gleichungen stellt für manche immer wieder ein Problem dar. Daher soll hier versucht werden, das Umstellen zu systematisieren. Ich empfehle, sich folgende

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

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

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Überblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse

Überblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

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

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Teil 6: Klassenkonzept. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 6: Klassenkonzept. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 6: Klassenkonzept Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 6 Klassenkonzept...3 6.1 Was ist eine Klasse?... 3 6.2

Mehr

Objektorientierte Programmierung Teil 1: Einführung

Objektorientierte Programmierung Teil 1: Einführung Objektorientierte Programmierung Teil 1: Einführung Prof. Dr. Schoop FHT Esslingen, Sommersemester 2005 Agenda Beispielszenario Eigenschaften des objektorientierten Ansatzes Konzepte des objektorientierten

Mehr

Überblick. 5. Objekt und Klasse, Elementfunktionen

Überblick. 5. Objekt und Klasse, Elementfunktionen Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr