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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Modulare Programmierung Projekt main.cpp int main(){ // Anweisungen } rechnen.cpp int addition(...) { } int subtraktion(...) { } rechnen.h int addition(...); int subtraktion(...); Einführung in die C++-Programmierung, Seite 2

3 Erläuterung Jede Aufgabe wird in Teilaufgaben zerlegt. Eine Funktion stellt eine Teilaufgabe dar. Verschiedene Funktionen, die verschiedene Aufgaben innerhalb eines Projekts bewältigen, werden in einer Quelldatei zusammengefasst. Header-Dateien enthalten die Deklarationen und Definitionen. Quelldateien und Header-Dateien werden in einem Projekt gesammelt. Das Projekt bildet die Gesamtaufgabe ab. Einführung in die C++-Programmierung, Seite 3

4 Objektorientierte Programmierung... abstrahiert Gegenstände der realen Welt, um sie in einem Programm abzubilden.... versucht Daten, die ein Objekt beschreiben und Prozeduren, die die Daten verändern, in einer Struktur zusammenzufassen.... versucht Daten und Funktionen, die die Daten verändern, in einer Struktur zu kapseln. Einführung in die C++-Programmierung, Seite 4

5 Prinzipien Datenkapselung Die Daten gehören zu einem bestimmten Objekt. Ein fremdes Objekt kann diese Daten nicht lesen. Die Definition von Funktionen wird verborgen. Polymorphie Methoden (Funktionen) können überschrieben werden. Vererbung Kinder erben von ihren Eltern Eigenschaften und Methoden. Einführung in die C++-Programmierung, Seite 5

6 Objekte beschreiben einen Gegenstand, Person etc. aus der realen Welt. sind Substantive in einem Text. haben Attribute (Eigenschaften), die das Aussehen des Objekts beschreiben. haben Methoden, die die Attribute verändern. Methoden spiegeln das Verhalten eines Objekts wieder. Einführung in die C++-Programmierung, Seite 6

7 Beispiel Ein Würfel wird beschrieben: Der Würfel ist rot. Der Würfel hat eine Kantenlänge von 5 cm. Der Würfel kann gedreht werden. Der Würfel kann neu eingefärbt werden. Einführung in die C++-Programmierung, Seite 7

8 Klassen sind Baupläne zur Beschreibung eines Objekts. abstrahieren das Aussehen und Verhalten eines bestimmten Objekttyps. bieten eine Schablone, um Objekte abstrakt zu beschreiben. definieren Eigenschaften (Attribute) und Methoden die alle Objekte eines bestimmten Typs besitzen. Einführung in die C++-Programmierung, Seite 8

9 Beispiel Welche Eigenschaften hat jeder Würfel? Farbe. Kantenlänge Welche Methoden hat jeder Würfel? Drehen. Einfärben. Zeichnen. Einführung in die C++-Programmierung, Seite 9

10 Beschreibung mit Hilfe von UML Unified Modelling Language zur Darstellung von Klassen etc. Der Name der Klasse steht am oberen Rand. Dem Namen folgen die Attribute der Klasse. Auf die Attribute kann von außen nicht zu gegriffen werden (-; private ). Am Ende werden die Methoden aufgelistet. Die Methoden dürfen von außen aufgerufen werden (+; public). Wuerfel - farbe : string - kante: double +get_farbe() : string +get_laenge() : float +set_farbe() : string +set_laenge(): float +drehen_wuerfel() : void Einführung in die C++-Programmierung, Seite 10

11 Klassen in C++ class KUNDE { private: string kontonummer; string pinummer; float guthaben; int dispo; public: string getadress(); void setadress(string strasse, string plz, string ort); float hebeab(float betrag); float zahleein(float betrag); float changedispo(float betrag); }; Einführung in die C++-Programmierung, Seite 11

12 Deklaration einer Klasse class KUNDE { private: // Attribute public: // Methoden }; beginnt mit dem Schlüsselwort class. Dem Schlüsselwort folgt der Name der Klasse. Attribute und Methoden werden mit Hilfe der geschweiften Klammern zu einer Struktur zusammengefasst. endet mit einem Semikolon. wird nie innerhalb der main-funktion definiert. Häufig werden sie in Header-Dateien ausgelagert. Einführung in die C++-Programmierung, Seite 12

13 Regeln für Klassennamen Es können die Buchstaben a...z, A...Z, die Zahlen sowie der Unterstrich genutzt werden. Klassennamen beginnen mit einem Großbuchstaben. Häufig haben Klassennamen das Präfix C, um sie von anderen Elementen in C++ zu unterscheiden. Unterscheidung zwischen Groß- und Kleinschreibung. Einführung in die C++-Programmierung, Seite 13

14 Weitere Hinweise Nutzen Sie aussagekräftige Namen. Der Oberbegriff aus der realen Welt sollte auch für die dazugehörige Klasse in C++ genutzt werden. Jedes Teilwort eines Klassennamen beginnt mit mit einem Großbuchstaben. Es wird ein Sprachraum genutzt. Schlüsselwörter der Programmiersprache C++ dürfen nicht genutzt werden. Einführung in die C++-Programmierung, Seite 14

15 in einer Projektbeschreibung Klassen entsprechen Substantiven in einer Projektbeschreibung. Das Konto wird für den Inhaber xyz von der Bank a eröffnet. Das Auto HI hat den Besitzer xyz. Mitarbeiter Müller arbeitet an dem Projekt Ausschreibung. Die Bestellung wird über einen Laserdrucker xyz ausgedruckt. Außendienstmitarbeiter Meier betreut Kunden im Bezirk Unterweser. Redundante oder für die Aufgabenstellung unnötige Klassen werden nicht implementiert. Einführung in die C++-Programmierung, Seite 15

16 Attribute (Member) beschreiben einen Gegenstand, Person, Funktion etc. Jedes Objekt einer Klasse hat die gleichen Attribute. Jedes Objekt einer Klasse unterscheidet sich aber in mindestens einem Attributwert von allen anderen Objekten. werden für jedes Objekt im Speicher angelegt. Anschließend werden die Attribute mit bestimmten Werten initialisiert. Einführung in die C++-Programmierung, Seite 16

17 implementieren class KUNDE{ private: string kontonummer; string pinummer; float guthaben; int dispo; }; sind Variablen in C++, gekapselt in einer Klasse. Der Datentyp bestimmt die Art des Attributs. Es kann jeder Datentyp aus C++ genutzt werden. Jede Deklaration endet mit einem Semikolon. Einführung in die C++-Programmierung, Seite 17

18 in der Projektbeschreibung Attribute entsprechen meist der Beschreibungen eines Objekts. Das Auto ist rot und hat einen KM-Stand von Die Milch ist pasteurisiert. Sobald ein Buch im Lager vorhanden ist, wird es an den Kunden ausgeliefert. Attribute sind Substantive, die einen Rückbezug auf ein anderes Substantiv besitzen. Die Menge des Artikels. Ausleihdatum des Buches. Anmeldung eines Autos. Einführung in die C++-Programmierung, Seite 18

19 Statische Attribute class _CGirokonto{ private: static float zinssatz; }; float _CGirokonto::zinssatz = 2.0; werden nur einmal für alle Objekte einer Klasse im Speicher abgelegt. werden in der Klasse deklariert (static float zinssatz;). werden außerhalb der Klasse definiert und initialisiert (float _CGirokonto::zinssatz = 2.0). Einführung in die C++-Programmierung, Seite 19

20 Methoden beschreiben das Verhalten eines Objekts. lesen oder verändern Attributwerte. beschreiben eine Schnittstelle nach außen. werden nur einmal für die Klasse im Speicher angelegt. Einführung in die C++-Programmierung, Seite 20

21 deklarieren und definieren Methoden werden immer in einer Klasse deklariert. Methoden können in der Klasse definiert werden. außerhalb der Klasse definiert werden. Einführung in die C++-Programmierung, Seite 21

22 Prototyp einer Methode Datentyp Methodenname(para01, para02,...); class KUNDE{ // Attribute public: string getadress(); void setadress(string strasse, string plz, string ort); float hebeab(float betrag); float zahleein(float betrag); float changedispo(float betrag); }; sind C++ Funktionsprototypen, gekapselt in einer Klasse. Jede Deklaration wird mit einem Semikolon beendet. Einführung in die C++-Programmierung, Seite 22

23 in der Projektbeschreibung Methoden sind meist Verben. Das Bankkonto wird eröffnet. Der Inhaber hebt eine bestimmte Summe von seinem Konto ab. Beschreibung einer Zustandsänderung / Änderung: Wenn die Ampel gelb ist, wird die Geschwindigkeit des Autos vermindert. Wenn die Helligkeit draußen einen bestimmten Prozentwert unterschreitet, wird die Straßenlaterne eingeschaltet. Eine Zugdurchfahrt wird gemeldet. Die Schranke wird geschlossen. Einführung in die C++-Programmierung, Seite 23

24 Deklaration und Definition in der Klasse class KUNDE{ // Methoden public: string getadress() { stringstream tmpadresse; tmpadresse << kundename << ", " << kundevorname << endl; tmpadresse << kundestrasse << endl; tmpadresse << kundeplz << " " << kundeort<< endl; return tmpadresse.str(); } }; Einführung in die C++-Programmierung, Seite 24

25 Hinweise Die gleichzeitige Deklaration und Definition einer Methode muss nicht mit einem Semikolon abgeschlossen werden. Eine Definition der Methode innerhalb der Klasse sollte nur für sehr kleine Funktionen genutzt werden. lesenden Zugriffe verwendet werden. Es wird auf die Werte der Attribute zugegriffen, aber die Werte werden nicht verändert. Einführung in die C++-Programmierung, Seite 25

26 Definition außerhalb der Klasse, aber in einer Datei class KUNDE{ // Attribute public: void setadress(string strasse, string plz, string ort); }; void KUNDE::setAdress(string strasse, string plz, string ort) { kundestrasse = strasse; kundeplz = plz; kundeort = ort; } Einführung in die C++-Programmierung, Seite 26

27 Aufbau des Methodenkopfs void KUNDE::setAdress(string strasse, string plz, string ort) void definiert den Funktionstyp. Welchen Datentyp gibt die Methode zurück? KUNDE beschreibt die Klasse, in der die Methode deklariert ist. Die Klasse und der Methodennamen sind durch zwei Doppelpunkte getrennt. Zwischen den zwei Doppelpunkten darf kein Leerzeichen stehen. Dem Methodennamen folgt die Parameterliste. In der Parameterliste werden die Eingabeparameter für die Methode, getrennt durch Kommata, aufgelistet. Einführung in die C++-Programmierung, Seite 27

28 Bereichsoperator (Soope-Operator) besteht aus zwei nacheinander folgenden Doppelpunkten. Links vom Bereichsoperator steht die Klasse, in der die Methode deklariert wurde. Rechts vom Bereichsoperator steht die zu definierte Methode. Einführung in die C++-Programmierung, Seite 28

29 Klassen in der Praxis kunde.h class KUNDE { private: // Attribute public: void setadress(...); }; kunde.cpp class KUNDE { private: // Attribute public: void setadress(...); }; Die Schnittstelle wird von der Implementierung getrennt. Die Schnittstelle in der Header-Datei sollte nicht verändert werden. Vorteil: Änderungen im Methodenrumpf benötigen keine Neu- Kompilierung der Header-Datei. Einführung in die C++-Programmierung, Seite 29

30 Beispiel: Header-Dateien class KUNDE { private: string kundename; string kundevorname; string kundestrasse; string kundeplz; string kundeort; string pinnummer; }; public: void setadress(string strasse, string plz, string ort); void setpinnummer(string pin); Einführung in die C++-Programmierung, Seite 30

31 Beispiel: Methoden-Definition in einer Quelldatei #include "objektkunde.h" void KUNDE::setPinnummer(string pin){ pinnummer = pin; } void KUNDE::setAdress(string strasse, string plz, string ort){ kundestrasse = strasse; kundeplz = plz; kundeort = ort; } Einführung in die C++-Programmierung, Seite 31

32 Zugriff festlegen private: oder public:. Mit Hilfe des Schlüsselwortes private oder public wird die Zugriffsart festgelegt: Dem Schlüsselwort folgt immer ein Doppelpunkt. Das Zugriffsrecht gilt für alle nachfolgenden Zeilen. Einführung in die C++-Programmierung, Seite 32

33 Zugriffsrecht private Das Element ist in der Klasse / in dem Block gekapselt. Zugriff nur innerhalb der eigenen Klasse. Ein Zugriff von außen ist nicht möglich. Die Elemente der Klasse sind schreibgeschützt. wird für Attribute einer Klasse genutzt. Die Werte der Attribute können nicht außen unkontrolliert verändert werden. In einer Klasse sind alle Elemente standardmäßig privat. Einführung in die C++-Programmierung, Seite 33

34 Zugriffsrecht public Die Elemente sind öffentlich. Auf die Elemente kann von außen zu gegriffen werden. Methoden sind öffentlich zugänglich. Die Methoden einer Klasse können von außen aufgerufen werden. beschreibt eine Schnittstelle nach außen. Einführung in die C++-Programmierung, Seite 34

35 Konstante Methoden class KUNDE { Private: // Attribute }; public: string getadress() const; // Methoden string KUNDE::getAdress() const { stringstream tmpadresse; // Anweisungen return tmpadresse.str(); } Einführung in die C++-Programmierung, Seite 35

36 Hinweise In der Deklaration sowohl als auch in der Definition muss am Ende des Methodenkopf das Schlüsselwort const angegeben werden. Konstante Methoden lesen Attribute, verändern diese aber nicht. Eine konstante Methode kann im Methodenrumpf nur eine weitere konstante Methode aufrufen. Konstante Objekte können nur konstante Methoden aufrufen. Einführung in die C++-Programmierung, Seite 36

37 Objektvariable KUNDE mykunde; class KUNDE mykunde;... definiert eine Variable der entsprechenden Klasse. verweist auf die Speicheradresse, an der das Objekt abgelegt ist.... nutzt als Datentyp den Namen einer Klasse. Der Name der Objektvariablen ist frei wählbar. Das Schlüsselwort class wird bei einem eindeutigen Klassennamen nicht benötigt. Einführung in die C++-Programmierung, Seite 37

38 Methoden aufrufen mykunde.setadress("straße", "38640", "Goslar"); cout << mykunde.getadress() << endl; mykunde.setpinnummer("1234"); Methoden werden mit ihren Namen aufgerufen. Die Parameterliste kann leer sein oder die zu übergebenen Parameter auflisten. Die Objektvariable wird mit der Methode durch den Punkt verbunden. Die Objektvariable ist ein Synonym für die Klasse, in der die Methode deklariert ist. Einführung in die C++-Programmierung, Seite 38

39 Lebenszyklus eines Objekts erzeugen: Aufruf eines Konstruktors KUNDE mykunde; arbeiten: Methoden aufrufen mykunde.setpinnummer("1234"); zerstören: Destruktor automatisch aufrufen Einführung in die C++-Programmierung, Seite 39

40 Konstruktoren class KUNDE { private: // Attribute public: KUNDE(string nachname, string vorname) { kundename = nachname; kundevorname = vorname; } sind spezielle Methoden zur Initialisierung eines Objekts. setzen Anfangswerte für ein Objekt. Einführung in die C++-Programmierung, Seite 40

41 Kopf eines Konstruktors KUNDE(string nachname, string vorname) Als Bezeichnung wird der Name der Klasse genutzt. Die folgende Parameterliste kann leer sein. Es werden keine Startwerte für die Attribute gesetzt. kann die gewünschten Eingabeparameter enthalten. Diese Parameter werden genutzt, Startwerte für die Attribute zu setzen. Einführung in die C++-Programmierung, Seite 41

42 Eigenschaften Konstruktoren dürfen kein Objekt der eigenen Klasse anlegen. Konstruktoren haben immer das Zugriffsrecht public. Konstruktoren werden automatisch durch die Deklaration einer Objektvariablen aufgerufen. Konstruktoren setzen keine statischen Attribute. Durch die Erzeugung würde das statische Attribut auf den Anfangswert gesetzt werden. Es wird kein Wert zurückgegeben. Der Zustand des Objektes kann nur über die entsprechenden Methoden ermittelt werden. Konstruktoren können nie konstant sein. Konstruktoren können überladen werden. Einführung in die C++-Programmierung, Seite 42

43 implementieren werden wie Methoden in der Klasse gleichzeitig deklariert und definiert. Andere Möglichkeit: Die Deklaration des Konstruktors befindet sich innerhalb der Klasse. Die Definition des Konstruktors befindet sich außerhalb der Klasse. Einführung in die C++-Programmierung, Seite 43

44 in der Klasse deklarieren und definieren class KUNDE { private: // Attribute public: KUNDE(string nachname, string vorname) { kundename = nachname; kundevorname = vorname; } Einführung in die C++-Programmierung, Seite 44

45 außerhalb der Klasse implementieren class KUNDE { private: // Attribute public: KUNDE(string nachname, string vorname); }; KUNDE::KUNDE(string nachname, string vorname) { kundename = nachname; kundevorname = vorname; } Einführung in die C++-Programmierung, Seite 45

46 Überladene Konstruktoren deklarieren class KUNDE { private: // Attribute public: // Der Standard-Konstruktor hat nie Eingabeparameter KUNDE(); // Weitere Konstruktoren KUNDE(string nachname, string vorname); KUNDE(string nachname, string vorname, string kontonummer); }; // Methoden Einführung in die C++-Programmierung, Seite 46

47 Standard-Konstruktoren werden keine Parameter übergeben. muss immer ohne Klammern aufgerufen werden. werden vom System automatisch erzeugt. Die Attribute erhalten unbestimmte Werte. wird selbst definiert. Die Attribute werden mit Hilfe von Standardwerten initialisiert. Einführung in die C++-Programmierung, Seite 47

48 Allgemeine Konstruktoren Die Parameterliste kann aus beliebig vielen Parametern bestehen. können mit Hilfe der Anzahl und des Datentyps der Parameters wie Funktionen überladen werden. Wenn ein allgemeiner Konstruktor vorhanden ist, wird vom System kein Standardkonstruktor erzeugt. Einführung in die C++-Programmierung, Seite 48

49 Überladene Konstruktoren definieren KUNDE::KUNDE() { kundename = ""; kundevorname = ""; } KUNDE::KUNDE(string nachname, string vorname) { kundename = nachname; kundevorname = vorname; } KUNDE::KUNDE(string nachname, string vorname, string bankkonto) { kundename = nachname; kundevorname = vorname; kontonummer = bankkonto; } Einführung in die C++-Programmierung, Seite 49

50 Objekte erzeugen // Der Konstruktor erwartet keine Eingabeparameter class KUNDE KundeNoInfo; // Es werden zwei Eingabeparameter erwartet class KUNDE mykunde("nachname", "Vorname"); // Es werden drei Eingabeparameter erwartet class KUNDE KundeKonto("Nachname", "Vorname", "123456"); Einführung in die C++-Programmierung, Seite 50

51 Default-Parameter nutzen class KUNDE { private: // Attribute public: KUNDE(); KUNDE(string nachname, string vorname, string bankkonto= ""); // Methoden }; KUNDE::KUNDE() { // Anweisungen} KUNDE::KUNDE(string nachname, string vorname, string bankkonto) { // Anweisungen } Einführung in die C++-Programmierung, Seite 51

52 Hinweise Default-Parameter werden nur in der Deklaration gesetzt. Bevor Default-Parameter genutzt werden können, müssen diese bekannt sein. Nach einem Default-Parameter werden nur weitere Default- Parameter aufgelistet. Default-Parameter befinden sich am Ende der Parameterliste. Einführung in die C++-Programmierung, Seite 52

53 Konstante Attribute deklarieren class KUNDE { private: const string kundenummer; // Initialisierung im Konstruktor string kundename; string kundevorname; }; public: // Konstruktoren // Methoden Einführung in die C++-Programmierung, Seite 53

54 Initialisierung im Standard-Konstruktor class KUNDE { private: const string kundenummer; }; public: KUNDE(); KUNDE::KUNDE() : kundenummer("1111") { kundename = ""; kundevorname = ""; } Einführung in die C++-Programmierung, Seite 54

55 Initialisierungsliste KUNDE::KUNDE() : kundenummer("1111") { Die Initialisierungsliste wird vom Kopf des Konstruktors durch ein Doppelpunkt getrennt. besteht in diesem Beispiel nur aus dem Element kundenummer("1111"). kann mehrere Elemente, getrennt durch Kommata besitzen. Das Attribut kundennummer wird mit dem Wert 1111 initialisiert. Die Reihenfolge der Initialisierung richtet sich nach der Reihenfolge der Attribute in der Klasse. Einführung in die C++-Programmierung, Seite 55

56 Nutzen Konstante Attribute initialisieren. Attribute, die als Referenzen deklariert sind, initialisieren. Attribute werden direkt beim Anlegen der Datenstruktur initialisiert. Einführung in die C++-Programmierung, Seite 56

57 Initialisierung im allgemeinen Konstruktor class KUNDE { private: const string kundenummer; public: KUNDE(); }; // muss KUNDE(string kundenr, string nachname) : kundenummer(kundenr) { kundename = nachname; kontonummer = bankkonto; } Einführung in die C++-Programmierung, Seite 57

58 Definierte Klassen als Datentyp nutzen #ifndef BANK_CLASSGIROKONTO_H_INCLUDED #define BANK_CLASSGIROKONTO_H_INCLUDED #include "classkunde.h" // Definition des Datentyps _CKunde class _CGirokonto { private: _CKunde owner; string kontonummer; string pinnummer; float kontostand; int dispo; // Als Datentyp wird eine Klasse genutzt Einführung in die C++-Programmierung, Seite 58

59 Hinweis Attribute können nur vom Typ einer anderen Klasse sein. Es werden Objekte anderen Typs eingegebetttet. Attribute können nicht vom Typ der eigenen Klasse sein. Die Nutzung einer vorher definierten Klasse als Datentyp implementiert eine hat eine -Beziehung oder besitzt eine - Beziehung. Diese Art von Beziehung wird als Aggregation bezeichnet. Zum Beispiel: Ein Konto hat eine Person als Besitzer. Ein Person existiert ohne ein Konto. Ein Konto existiert aber nicht ohne eine Person. Einführung in die C++-Programmierung, Seite 59

60 Allgemeinen Konstruktor nutzen class _CGirokonto { private: _CKunde owner; // Als Datentyp wird eine Klasse genutzt public: // nur mit Initialisierungsliste möglich _CGirokonto(string kontonr, string pin, string kundennummer, string nachname, string vorname) : owner(kundennummer, nachname, vorname) { kontonummer = kontonr; kontostand = 10.0; } Einführung in die C++-Programmierung, Seite 60

61 Objekte erzeugen class _CGirokonto mykonto(" ", "7894","27", "Edda", "Mann"); class _CKunde mykunde("26", "Nachname", "Vorname"); Die Signatur der Parameterliste muss zu einem Konstruktor passen. werden innerhalb eines Blocks angelegt. Die Objektvariable ist lokal. erzeugt ein neues Objekt und initialisiert dieses. Eingebettete Objekte werden durch Aufruf eines Konstruktors vor dem umschließenden Objekt initialisiert. Einführung in die C++-Programmierung, Seite 61

62 Dynamische Objektvariablen class _CGirokonto *mykonto; mykonto = new _CGirokonto(" ", "7894","27", "Edda", "Mann"); werden als Zeiger implementiert. Mit Hilfe von new wird Speicher für das Objekt der Klasse angefordert. das Objekt mit Hilfe eines Konstruktors initialisiert. Der Zeiger verweist auf das neue Objekt. Einführung in die C++-Programmierung, Seite 62

63 löschen class _CGirokonto *mykonto; mykonto = new _CGirokonto(" ", "7894","27", "Edda", "Mann"); delete mykonto; Mit Hilfe von delete wird das Objekt aus dem Speicher entfernt. Einführung in die C++-Programmierung, Seite 63

64 Aufruf von Methoden class _CGirokonto *mykonto; mykonto = new _CGirokonto(" ", "7894","27", "Edda", "Mann"); std::cout << mykonto->getkontoinfo() << std::endl; Die Methode und das Objekt werden durch den Operator -> verbunden. Einführung in die C++-Programmierung, Seite 64

65 Arrays von Objektvariablen class _CKunde neukunde[10]; neukunde[0].setadress("strasse", "Ort", "Name"); class _CKunde neukunde[10]; legt ein Array von 10 Objekten vom Typ _Ckunde an. Für die Definition wird ein Konstruktor ohne Parameter benötigt. Die Attribute des Objekts werden mit Hilfe von Methoden gesetzt. Einführung in die C++-Programmierung, Seite 65

66 Methoden aufrufen class _CKunde neukunde[10]; neukunde[0].setadress("strasse", "Ort", "Name"); Die Elemente des Arrays werden mit Hilfe von Indizies aufgerufen. Jeder Index ist ein Platzhalter für ein Objekt. Die aufzurufende Methode wird mit Hilfe des Punktoperators mit einem Objekt verbunden. Einführung in die C++-Programmierung, Seite 66

67 Array von dynamischen Objektvariablen class _CKunde *array_kunde; array_kunde = new _CKunde[10]; werden als Zeiger implementiert. Mit Hilfe von new wird der gewünschte Speicher für das Array angefordert. jedes Objekt mit dem Standard-Konstruktor definiert. Der Zeiger verweist auf das erste Element im Array. Einführung in die C++-Programmierung, Seite 67

68 löschen delete[] array_kunde; Als Kennzeichen für die Löschung eines dynamischen Arrays folgen dem Schlüsselwort delete die eckigen Klammern. Das Weglassen der eckigen Klammern erzeugt keine Fehlermeldung, sondern nur eine fehlerhafte Löschung im Speicher. In diesem Beispiel wird das dynamische Array array_kunde gelöscht. Einführung in die C++-Programmierung, Seite 68

69 Methoden aufrufen (array_kunde+anzahl)->setkundenname("müller", "Else"); Die Methode wird mit Hilfe des ->-Operators mit dem dazugehörigen Objekt verbunden. Das gewünschte Objekt kann mit Hilfe von Indizies ermittelt werden. Andere Möglichkeit: Der Zeiger wird auf das gewünschte Element verschoben. Hinweis: Der Zeiger auf das erste Element muss erhalten bleiben. Andernfalls kann das Array nicht gelöscht werden. Einführung in die C++-Programmierung, Seite 69

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

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

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

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

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

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

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java 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

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++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

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

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++ - Objektorientierte Programmierung Klassen und Objekte

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

Mehr

Einfü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 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

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

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

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

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

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

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

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

Mehr

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

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

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

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

BEISPIELKLAUSUR Softwareentwicklung:

BEISPIELKLAUSUR 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

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

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

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

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

Grundlagen von Python

Grundlagen 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

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

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

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

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

Grundlagen. Kapitel 1

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

Mehr

5. Abstrakte Klassen

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

Mehr

Programmieren Tutorium

Programmieren 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,

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

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 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

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

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Sichtbarkeit & 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 Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

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

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

Mehr

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

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

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

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine 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,

Mehr

Arrays Fortgeschrittene Verwendung

Arrays 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

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

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

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

5.5.8 Öffentliche und private Eigenschaften

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

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays 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

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

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

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

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

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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Einführung in die Programmierung mit C++

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

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Ü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 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

SEP 114. Design by Contract

SEP 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

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays 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"

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binä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

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur 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

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck { Selektoren

Mehr

5 Projekt Bankverwaltung

5 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

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

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

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (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

Mehr

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 Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Software Engineering Klassendiagramme weiterführende Konzepte

Software Engineering Klassendiagramme weiterführende Konzepte Software Engineering Klassendiagramme weiterführende Konzepte Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassenattribut: static Implementierung in Java public

Mehr

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

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

Mehr

Ü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

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

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

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

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

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Kapitel 6. Vererbung

Kapitel 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

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

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

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

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

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

Mehr