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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

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

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

Repetitorium Informatik (Java)

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

Mehr

Aufbau von Klassen. class punkt {...

Aufbau von Klassen. class punkt {... Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im

Mehr

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

Javakurs für Anfänger

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

Mehr

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

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

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

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

Mehr

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

Ü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

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

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

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

Java - Klassen und Objekte

Java - Klassen und Objekte Java - Klassen und Objekte Der Würfel hat 12 Kanten. Der Würfel ist grün eingefärbt. Die Kanten sind in schwarz gezeichnet. Der Würfel kann gedreht werden. Die Kantenfarbe und die Seitenfarbe kann verändert

Mehr

Objektorientierung: Klassen und Objekte

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

Mehr

Zusammengesetzte Datentypen -- Arrays und Strukturen

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

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

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

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

Mehr

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

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

Mehr

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

Java Einführung Methoden. Kapitel 6

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Angewandte Mathematik und Programmierung

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

Mehr

Grundwissen Informatik JS 10 24. September 2015

Grundwissen Informatik JS 10 24. September 2015 Grundwissen Informatik JS 10 24. September 2015 Grundlagen der Objektorientierung 1. Erkläre die Begriffe Klasse, Attribut, Attributwert, Objekt, Methode und Dienst. Beispiel! Allgemein Eine Klasse ist

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

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

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

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

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

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

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

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

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

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

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

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Objekt-Orientierte Programmierung

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

Mehr

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

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

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

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

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

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

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

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

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

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer

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

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

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

Programmieren - Vererbung & Polymorphie

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

Mehr

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

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

Mehr

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

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert

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

5.6 Vererbung. Vererbung

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

Mehr

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

Kapitel 6. Vererbung

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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen 07

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

Mehr

Kapitel 6. Vererbung

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

Mehr

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

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

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

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

Mehr

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

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

Mehr

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

Inhalt. Max Lini. ax. inie. Einleitung... VII

Inhalt. Max Lini. ax. inie. Einleitung... VII rst Inhalt Einleitung....................................................... VII 1 Schöne neue Welt: Objektorientierte Programmierung in PHP 5.............. 1 Klassen, Interfaces und Objekte...................................

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

Angewandte Mathematik und Programmierung

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

Mehr

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

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

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

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Klassenbeziehungen & Vererbung

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

Mehr

3. Konzepte der objektorientierten Programmierung

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

Mehr

3D Programmierpraktikum: Einführung in C++ - Teil 2

3D Programmierpraktikum: Einführung in C++ - Teil 2 3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

Einführung in die. objektorientierte Programmierung

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

Mehr

3 Klassen, Attribute, Methoden

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

Mehr

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

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

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

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

Mehr

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Angewandte Mathematik und Programmierung

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

Mehr

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

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 11 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 10. Vorlesung Benutzerdefinierte Datentypen Wieso zusätzliche Datentypen? Definition neuer Datentypen Verwendung von Variablen mit benutzerdefiniertem

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

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

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach... Ludwig-Maximilians-Universität München WS 2012/13 Institut für Informatik 19.04.2013, 12:00 14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung

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

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

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

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

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

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte

Mehr

10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04) 10. Klassen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Objektorientierte Programmierung!Das Konzept der Klassen!Members!Objekte!Konstruktoren und Destruktoren!this-Pointer!Public und Private

Mehr

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

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

Mehr