Objektorientierte Programmierung
|
|
- Jörn Flater
- vor 8 Jahren
- Abrufe
Transkript
1 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 knifes, and programming in C++ is like juggling chainsaws. Anonymous Grundkonzepte der objektorientierten Programmierung Kapselung mit dem Verbergen von Information Vererbung Polymorphismus dynamisches Binden Klassen Abstrakte Stufe: Eine Klasse ist die Schnittstelle (Interface), die das Verhalten eines Objektes definiert. Funktionale Schnittstelle für die Kommunikation mit dem Objekt. Black Box: Klassenobjekt Anwendungsprogramm Methodenaufrufe Implementierungsstufe: Eine Klasse ist eine syntaktische Einheit, die eine Menge von Daten und darauf bezogene Operationen beschreibt. Diese Daten und Operationen sind allen Objekten der Klasse gemeinsam. Klasse vs. Objekt Implementierungsstufe: Eine Klassendefinition entspricht einer struct- bzw. typedef-struct-deklaration. Ein Objekt ist die speicherwirksame Definition einer Größe von dem Klassentyp. Dabei erhält das Objekt einen Bezugsnamen.
2 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 2 Beispiel: einfache Kontenverwaltung einer Bank //Konto1.cpp: Das Programm realisert eine einfache Kontoverwaltung. //Es benutzt absichtlich nicht die Möglichkeiten der Datenkapselung //("Information hiding"), die innerhalb des Klassenkozeptes zur //Verfügung ständen. //Diese Version findet man im Programm Konto2.cpp. K t o 1 Stand Variable vom Typ Konto Zinssatz 2.55 void Initialisieren(Konto &Kto, float Stand, float Zins); void Add_Zins(Konto &Kto); //Addiere monatlichen Zinsbetrag void Einzahlung(Konto &Kto, float Betrag); //Addiere Einzahlungsbetrag void Auszahlung(Konto &Kto, float Betrag); //Subtrahiere Rckzahlungsbetrag float Kontostand(Konto Kto); //Kontostand wird ermittelt. Funktionen, die sich auf den Typ Konto beziehen. #include <iostream.h> //Struktur eines Kontos struct Konto { float Stand; float Zinssatz; ; //Prototypen void Initialisieren(Konto &Kto, float Stand, float Zins); void Add_Zins(Konto &Kto); //Addiere monatlichen Zinsbetrag void Einzahlung(Konto &Kto, float Betrag); //Addiere Einzahlungsbetrag void Auszahlung(Konto &Kto, float Betrag); //Subtrahiere Rckzahlungsbetrag float Kontostand(Konto Kto); //Kontostand wird ermittelt. int main(void) { Konto Kto1, Kto2; //2 Konten //Initialisieren und Addieren des Zinsbetrags Initialisieren(Kto1, 1000, 10); Add_Zins(Kto1); cout.setf(ios::fixed, ios::floatfield); cout.precision( 2 ); cout<<"\nder Kontostand Kto1: DM "<<Kontostand(Kto1)<<endl; //Versuch, die Kontost nde direkt zu ndern Kto1.Stand = ;
3 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 3 Kto2.Stand = Kto1.Stand; //Ausgabe der Kontost nde cout<<"\n neuer Kontostand Kto1: DM "<<Kontostand(Kto1); cout<<"\n neuer Kontostand Kto2: DM "<<Kontostand(Kto2)<<endl; return 0; //Initialiiseren der Datenstruktur void Initialisieren(Konto &Kto, float Stand, float Zins) { Kto.Stand=Stand; Kto.Zinssatz=Zins; //Berechne und Addiere monatlichen Zinsbetrag void Add_Zins(Konto &Kto) { Kto.Stand += Kto.Stand * Kto.Zinssatz /12/100; //Addiere Einzahlungsbetrag void Einzahlung(Konto &Kto, float Betrag) { Kto.Stand += Betrag; //Subtrahiere Auszahlungsbetrag void Auszahlung(Konto &Kto, float Betrag) { Kto.Stand -= Betrag; //Ermittle Kontostand float Kontostand(Konto Kto) { return Kto.Stand; Der Objektorientierte Ansatz //Konto.cpp: Das Programm realisiert eine einfache Kontoverwaltung. //Es benutzt die Möglichkeiten der Datenkapselung //("Information hiding"), die innerhalb des Klassenkozeptes zur //Verfügung stehen. K t o 1 Datentyp Konto (als Klasse) Interface nach außen Konto(float Stand, float Zins); //Konstruktor, Initialisierung void Add_Zins(); //Addiere monatlichen Zinsbetrag void Einzahlung(float Betrag); //Addiere Einzahlungsbetrag void Auszahlung(float Betrag); //Subtrahiere Rückzahlungsbetrag float Kontostand(); //Kontostand wird ermittelt. private: float Stand; float Zinssatz;
4 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 4 #include <iostream.h> //Deklaration der Klasse Konto class Konto { Konto(float Stand, float Zins); //Konstruktor, Initialisierung void Add_Zins(); //Addiere monatlichen Zinsbetrag void Einzahlung(float Betrag); //Addiere Einzahlungsbetrag void Auszahlung(float Betrag); //Subtrahiere Rückzahlungsbetrag float Kontostand(); //Kontostand wird ermittelt. private: float Stand; float Zinssatz; ; int main(void) { Konto Kto1(1000,10), Kto2(0,12); 2 Objekte werden definiert! //2 Konten mit Argumenten für den //Konstruktor. //Zinsaktualisierung für Kto1 Kto1.Add_Zins(); Bezug auf ein Objekt cout.setf(ios::fixed, ios::floatfield); cout.precision( 2 ); cout<<"\nder Kontostand Kto1: DM "<< Kto1.Kontostand() <<" \n"; //Versuch, die Kontostände direkt zu ändern //Kto1.Stand = ; nicht zulässig! //Kto2.Stand = Kto1.Stand; nicht zulässig! //stattdessen Kto1.Einzahlung(1000); Kto2.Einzahlung(1500); Kto1.Auszahlung(300); //Ausgabe der Kontostände cout<<"\n neuer Kontostand Kto1: DM "<<Kto1.Kontostand(); cout<<"\n neuer Kontostand Kto2: DM "<<Kto2.Kontostand(); return 0; //Initialiiseren der Datenstruktur Konto::Konto(float Stand, float Zins) { this->stand=stand; Zinssatz=Zins; //Berechne und Addiere monatlichen Zinsbetrag void Konto::Add_Zins() { Stand += Stand * Zinssatz /12/100; //Addiere Einzahlungsbetrag void Konto::Einzahlung(float Betrag) { Stand += Betrag;
5 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 5 //Subtrahiere Auszahlungsbetrag void Konto::Auszahlung(float Betrag) { Stand -= Betrag; //Ermittle Kontostand float Konto::Kontostand() { return Stand; Das Programm wird aufgeräumt: Header-Datei Konto.h //Deklaration der Klasse Konto class Konto { Konto(float Stand, float Zins); //Konstruktor, Initialisierung void Add_Zins(); //Addiere monatlichen Zinsbetrag void Einzahlung(float Betrag); //Addiere Einzahlungsbetrag void Auszahlung(float Betrag); //Subtrahiere Rückzahlungsbetrag float Kontostand(); //Kontostand wird ermittelt. private: float Stand; float Zinssatz; ; Eigene Moduldatei Kontodef.cpp #include "Konto.h" //Initialisieren der Datenstruktur Konto::Konto(float Stand, float Zins) { this->stand=stand; Zinssatz=Zins; //Berechne und Addiere monatlichen Zinsbetrag void Konto::Add_Zins() { Stand += Stand * Zinssatz /12/100; //Addiere Einzahlungsbetrag void Konto::Einzahlung(float Betrag) { Stand += Betrag; //Subtrahiere Auszahlungsbetrag void Konto::Auszahlung(float Betrag) { Stand -= Betrag; //Ermittle Kontostand float Konto::Kontostand() { return Stand;
6 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 6 Die Datei für die Anwendung Konto.cpp #include <iostream.h> #include "Konto.h" int main(void) { Konto Kto1(1000,10), Kto2(0,12); //2 Konten mit Argumenten für den //Konstruktor. //Zinsaktualisierung für Kto1 Kto1.Add_Zins(); cout.setf(ios::fixed, ios::floatfield); cout.precision( 2 ); cout<<"\nder Kontostand Kto1: DM "<< Kto1.Kontostand() <<" \n"; //Versuch, die Kontostände direkt zu ändern //Kto1.Stand = ; nicht zulässig! //Kto2.Stand = Kto1.Stand; nicht zulässig! //stattdessen Kto1.Einzahlung(1000); Kto2.Einzahlung(1500); Kto1.Auszahlung(300); //Ausgabe der Kontostände cout<<"\n neuer Kontostand Kto1: DM "<<Kto1.Kontostand(); cout<<"\n neuer Kontostand Kto2: DM "<<Kto2.Kontostand(); return 0; Durch Hinzufügen von Konto.h und Kontodef.cpp (bzw. Kontodef.obj) kann man in der Anwendung Objekte der Klasse Konto verwenden (andere Sprechweise: Objekte vom Typ Konto). Konstruktor, Destruktor Der Konstruktor ist eine Funktion, die nach der Erstellung eines Objektes automatisch aufgerufen wird. Der Destruktor ist eine Funktion, die beim Ende des Objektes automatisch aufgerufen wird. Syntax: Der Konstruktor hat den Namen der Klasse, er kann Argumente haben, jedoch keinen Funktionswert (nicht einmal void). Die Argumente werden mit der Erstellanweisung des Objektes angegeben, d.h. bei der Definition des Objektes oder bei der new-anweisung. Der Destruktor hat den Namen der Klasse mit vorgesetzter Tilde ~. Der Destruktor hat keine Argumente und keinen Funktionswert. class Klasse1 {
7 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 7 Klasse1(int, int, float); //Konstruktor ~Klasse1(); //Destruktor... ; //Definition des Konstruktors Klasse1::Klasse1( int i1, int i2, float f2) { //Definition des Destruktors Klasse1::~Klasse1( void ) { int main(void) { Klasse1 Objekt1(2, 44, 7.12 ); //Definition des Objektes Objekt1 mit den Konstruktorargumenten Klasse1 Objekt22( 2, 45, 1.0 ); Klasse1 * pobjekt33; pobjekt33 = new Klasse1(3, 46, 2.1 ); //dynamische Erstellung des Objektes *pobjekt33 mit // Konstruktorargumenten delete pobjekt33; //Entfernen des Objektes *pobjekt33, impl Aufruf des Destruktors //Beim return impliziter Aufruf des Destruktors für Objekt1 und Objekt22. Der this -Zeiger Die Klasse definiert Namen von Daten und Funktionen (Methoden). Diese Namen sind global zu den einzelnen Methoden. Zur Vermeidung von Mehrdeutigkeiten gibt es den Zeiger this. Er zeigt auf das Objekt, innerhalb dessen gerade die Methoden der Klasse ablaufen. z.b. in der Klasse Bank_Konto ist die Varialble Stand definiert. Ein Bezug auf diese Variable innerhalb einer Methode kann über this -> Stand geschehen. Ist die Eindeutigkeit gegeben, kann man natürlich einfacher Stand verwenden. Nachrichten, Methodenaufrufe Eine Nachricht an ein Objekt ist der Aufruf einer Methode (Funktion) der Klasse. Senden einer Nachricht über den Funktionsnamen: <Objektname>.<Funktionsname> (Argumentliste) Senden einer Nachricht über einen Zeiger auf das Objekt:
8 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 8 <Objektzeiger> -> <Funktionsname> (Argumentliste) Das Aussehen einer OOP Programmkonstruktion Klassenheaderdatei (.h) #include Anwendung Implementierungsdatei(en) (.cpp ) der Klassenfunktionen (Methoden) (.cpp ) Vererbung Was? Vererbung ist die Eigenschaft der OOP, die es einer Klasse, genannt die abgeleitete Klasse, erlaubt, die Struktur und das Verhalten mit einer anderen Klasse, genannt die Basisklasse, zu teilen. Die abgeleitete Klasse erbt die Struktur und das Verhalten der Basisklasse. Warum? Man kann Programmcode von anderen Projekten wiederverwenden. Es muß nicht jedesmal das Rad neu erfunden werden. Wichtig ist, daß beim Vererben die Basisklasse modifiziert werden kann. Man kann dazu sogar Klassenhierarchien erstellen. Beispiel: Unsere Klasse Bank_Konto Bank_Konto Basisklasse
9 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 9 Scheck_Konto Spar_Konto abgeleitete Klasse abgeleitete Klasse Super_Konto abgeleitete Klasse Basisklasse Konto //Deklaration der Basisklasse Bank_Konto class Bank_Konto { void Einzahlen(float Betrag); int Konto_Num(); float Aktueller_Stand(); protected: int Nummer; float Stand; ; //Einzahlung wird verbucht //Kontonummer wird ermittelt //Aktueller Kontostand //Kontonummer //Kontostand protected: wie private, jedoch können sich die abgeleiteten Klassen auf diese Größen beziehen. In den abgeleiteten Klassen sind sie private. Die abgeleitete Klasse Scheck_Konto //Deklaration der abgeleiteten Klasse Scheck_Konto class Scheck_Konto : public Bank_Konto { Scheck_Konto(int Kto_Num = 0000, //Konstruktor float Stnd=0, float Min=1000, float Geb=0.5); void Scheck_Einlsn(float Betr); //Scheckeinlösen ; protected: float Minimum; float Gebuehr; //Minimaler Kontostand zur Scheckeinlösung //Einlösegebühr pro Scheck Die Klasse Super_Konto //Deklaration der abgeleiteten Klasse Super_Konto class Super_Konto: public Scheck_Konto { Super_Konto(int Kto_Nr = 0000, float Stnd=0, float Min=1000, float Geb=0.5, //Konstruktor float Zinsstz=12); void Add_Zins(); //Addiere Zins
10 Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 10 ; protected: float Zins_Satz; //Jährlicher Zinssatz Die Klasse Spar_Konto //Abgeleitete Klasse Spar_Konto class Spar_Konto: public Bank_Konto { Spar_Konto(int Kto_Nr=0000, //Konstruktor float Stnd=0, float Zinsstz=12.0); void Add_Zins(); //Addiere Zinsbetrag void Abheben(float Betrg); //Subtrahiere Betrag der Abhebung ; protected: float Zins_Satz;
Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen
Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,
MehrWintersemester 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
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrVerhindert, 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:
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrProgrammieren 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
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrObjektbasierte 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
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrArrays Fortgeschrittene Verwendung
Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung
MehrArrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrEinfü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
MehrSichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben
Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den
Mehr3 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
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrOO Softwareentwicklung
OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung
MehrBEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
MehrArrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrProgrammieren 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
MehrObjektorientierte 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/
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrObjektorientierte 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
Mehr5 Projekt Bankverwaltung
Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen
MehrJava: 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
MehrC++ - 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
MehrPHP 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
MehrInformatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
MehrObjektorientierung: Klassen und Objekte
Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrVererbung & 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
MehrProgrammieren 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
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrPrüfungszeuch im Fach Objektorientierte Programmierung WS 2000
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrObjektorientierte 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
MehrSS 2010. Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.
SS 2010 Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1 Übungsblatt 1 Übung - Probeklausur SS 2010 Typ Prof.Humm Aufgabe : Bank-Verwaltungs-System In dieser Klausur werden
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
MehrAngewandte 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
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrProgrammieren Tutorium
Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,
MehrZum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...
Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrOperationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2
Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 von Christoph Knabe http://public.beuth-hochschule.de/~knabe/ Ch. Knabe: Operationalisierbare Qualitätskriterien
MehrVerbuchung von Zahlungseingängen über das PayPal-Konto
Verbuchung von Zahlungseingängen über das PayPal-Konto Um den Zahlungseingang eines Kunden über ein PayPal-Konto mit Abzug von PayPalGebühren in Ihrer büro easy-firmendatei zu erfassen, müssen folgende
MehrObjektorientierte 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
MehrEinfü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
MehrKlausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
MehrSS 2014 Torsten Schreiber
SS 2014 Torsten Schreiber 204 Diese Lücken sollten nicht auch bei Ihnen vorhanden sein: Bei der Rentenrechnung geht es um aus einem angesparten Kapital bzw. um um das Kapital aufzubauen, die innerhalb
MehrObjektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11
Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen
MehrObjektorientierung: 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
MehrCode wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015
Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrMethoden. 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
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrEinführung in die Programmierung für NF
Einführung in die Programmierung für NF UML Valerie Holmeyer Michael Kirsch Direct Feedback Eure Mitarbeit ist mir wichbg Quiz nach den jeweiligen AbschniGen Jeder kann mitmachen App socra&ve auf Smartphone
MehrTeil 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
MehrObjektorientiertes JavaScript
Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
Mehr5.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
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrGliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme
Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Einführung Sprachmittel Sommer 2011, 20. Juni 2011,
MehrGrundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN
Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrGrundlagen Programmierung
1. Aufgabe (Spielen mit Objekten) Gegeben sei der auch von der Veranstaltungsseite erhältliche Programmcode auf der rechten Seite, der im Detail zuerst nicht verstanden werden muss. a) Erzeugen Sie sich
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Mehr5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
Mehr7. 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
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrSWE5 Übungen zu Software-Engineering
1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und
MehrProgrammierparadigmen
Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 20. Juni 2011, c 2011 D.Rösner D. Rösner PGP 2011...
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrLösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell
Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
MehrC++ - 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,
MehrGetName(), 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
MehrJava Einführung Packages
Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)
MehrVererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.
Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrBenutzeranleitung Superadmin Tool
Benutzeranleitung Inhalt 1 Einleitung & Voraussetzungen... 2 2 Aufruf des... 3 3 Konto für neuen Benutzer erstellen... 3 4 Services einem Konto hinzufügen... 5 5 Benutzer über neues Konto informieren...
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrAlltagsnotizen 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,
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrVIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden
VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:
MehrJavakurs 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
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrAnleitung für IQES-Verantwortliche Persönliche Konten verwalten
Anleitung für IQES-Verantwortliche Persönliche Konten verwalten Tellstrasse 18 8400 Winterthur Schweiz Telefon +41 52 202 41 25 info@iqesonline.net www.iqesonline.net Anleitung Konto verwalten Seite 2
MehrKapitel 3 Das Projekt Bankkonto Seite 1
Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.
MehrDiese Funktion steht für den «Kontoübertrag» nicht zur Verfügung, da alle Angaben bezüglich der Konten bereits eingetragen sind.
Falls Sie das e-banking via Computer und über mobile Geräte nutzen möchten, können Sie periodische Zahlungen an einen Begünstigen tätigen, die weder regelmässig ausgeführt werden noch einen einheitlichen
MehrUnterprogramme. 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
MehrHow-to: Webserver NAT. Securepoint Security System Version 2007nx
Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver
Mehr