3.3 Konstruktoren und Destruktoren

Ähnliche Dokumente
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

7. Übung Informatik II - Objektorientierte Programmierung

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Aufbau von Klassen. class punkt {...

Vorkurs C++ Programmierung

Repetitorium Informatik (Java)

C++ - Objektorientierte Programmierung Vererbung

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 12

Einstieg in die Informatik mit Java

Informatik I (D-MAVT)

Prof. W. Henrich Seite 1

Klassen. Kapitel Klassendeklaration

Javakurs 2013 Objektorientierung

Grundkurs C++ IDE Klassenhierarchien

Klassen als Datenstrukturen

Grundkurs C++ IDE Klassenhierarchien

1 Klassen und Objekte

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Kurzeinführung in C/C++ Elementare Datentypen in C++

Einstieg in die Informatik mit Java

Java Einführung Klassendefinitionen

3. Exkurs in weitere Arten der Programmierung

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

Einstieg in die Informatik mit Java

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

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Konstruktoren und Destruktoren Initialisierung von Objekten

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung und Klassen

c) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.

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

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

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

11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

Programmieren in Java

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

virtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; };

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

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

3 Objektorientierte Konzepte in Java

Grundlagen der Informatik

3. Semester : 1. Prüfung

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

Vorlesung Datenstrukturen

Programmieren in Java

Programmieren I. Strategie zum Entwurf von Klassen. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

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

Programmierkurs C++ Konstruktor, Statische Methoden Namespaces

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Überblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

3 Klassen, Attribute, Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Umsetzung einer Klassenkarte in einer Programmiersprache

Mikrorechentechnik II. Klassen in C++

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

Programmierkurs C/C++

3 Klassen, Attribute, Methoden

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Klassenvariablen, Klassenmethoden

Algorithmen und Datenstrukturen 06

Grundlagen der Objektorientierung :

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Einstieg in die Informatik mit Java

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Ein einfaches Adventure-Game für die Stufe EF, entwickelt von U. Helmich, inspiriert durch viele bekannte Spiele.

Objektorientiert in C++

Arrays. Einleitung. Deklarieren einer Array Variablen

Programmieren in Java

Einstieg in die Informatik mit Java

Informationsverarbeitung im Bauwesen

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

Java: Vererbung. Teil 3: super()

Einführung in das Objektorientierte Programmieren mit C++

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Innere Klassen in Java

Grundlagen der Programmierung

Einstieg in die Informatik mit Java

1 Klassen anlegen und Objekte erzeugen

4. Objektorientierte Programmierung mit C++

Programmieren Tutorium

Grundlagen der Programmierung

Programmieren in Java

III. Objektorientierte Programmierung. Aufruf einer Methode. Definition einer Methode. Bezug zur aufrufenden Instanz. Instanzen einer Klasse

Java Einführung Methoden in Klassen

Programmierung und Angewandte Mathematik

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

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Einstieg in die Informatik mit Java

Transkript:

Konstruktoren eine spezielle Form von Methoden gleicher Name wie Klasse kein Rückgabewert Aufgabe: Instanzen einrichten (konstruieren), Anfangswerte setzen, Werte übernehmen, an Instanzvariablen übergeben

Konstruktoren wenn kein Konstruktor definiert, dann Standardkonstruktor (ohne spezielle Funktionalität) mehrere Konstruktoren mit unterschiedlichen und mehreren Parametern möglich dadurch verschiedene Instanziierungen von Objekten möglich Zeiger für Attribute sind möglich und vorteilhaft; dynamische Allokierung muss public sein

Beispiel: class mensch public: mensch() }; } // Konstruktor alter = 0; // name = Meier ; geht nicht; WH: Zeiger

deshalb: class mensch int alter; char *name; char *geb; void geburtstag(int); public: }; // Zeiger // Zeiger // Deklaration void geburtstag(); // Deklaration mensch(); // Deklaration Konstruktor 1 mensch(char*, int); // Deklaration Konstruktor 2

// besser innnerhalb der Klasse definieren mensch :: mensch() // Definition name = new char[20]; // dynamische Allokierung geb = new char[11]; name = Meier ; // Zuweisung nun möglich geb = 01.04.1981 ; alter = 23; }

mensch :: mensch(char *n, int a) // Definition name = new char[20]; // dynamische Allokierung geb = new char[11]; name = n; // Zuweisung nun möglich geb = 01.04.1981 ; alter = a; }

Instanzbildung: // statisches Instanziieren mensch meier; // mit Konstruktor 1 mensch mueller( Mueller, 34); // mit Konstruktor 2 // dynamisches Instanziieren // mit Konstruktor 2 mensch *heinz = new mensch( Kurt, 52); mensch *hans = new mensch(); // mit Konstruktor 1

Zugriff: meier.ausgabe(); // u.a. Meier, 23 mueller.ausgabe(); // u.a. Müller, 34 heinz[0].ausgabe(); // u.a. Kurt, 52 hans[0].ausgabe(); // u.a. Meier, 23 heinz[1].ausgabe(); // zufällig, sinnlos Aber: heinz[1].eingabe(); // Werte eingeben heinz[1].ausgabe(); // eingegebene Werte

zum Aufräumen nach Ende der Nutzung von Objekten nach Verlassen des Programms (statische Objekte) bzw. mit delete (dynamische Objekte) z.b. delete hans; delete heinz; eine spezielle Form von Methoden gleicher Name wie Klasse vorangestelltes Tildezeichen ~

verfügen weder über Parameter noch über einen Rückgabewert genau ein Destruktor pro Klasse wenn kein Destruktor definiert, dann Standarddestruktor (ohne spezielle Funktionalität) muss public sein

deshalb: class mensch int alter; char *name; char *geb; void geburtstag(int); public: void geburtstag(); }; // Zeiger // Zeiger // Deklaration // Deklaration mensch(); // Deklaration Konstruktor 1 mensch(char*, int); // Deklaration Konstruktor 2 ~mensch(); // Deklaration Destruktor

besser innnerhalb der Klasse definieren ~mensch :: mensch() // Definition // natürlich fstream.h einbinden ofstream fout( daten.dat", ios::app); fout << art << '\t' << farbe << '\t' << pflanzzeit << '\t' << groesse << '\n'; fout.close(); cout << "alle Daten gespeichert!\n"; }

Darstellung mit UML - alter : int mensch - name : char[20] - geb : char[11] + mensch() + mensch(char*, int) + ~mensch() + eingabe() - geburtstag(int) + geburtstag() 3.3 Konstruktoren und Klassenname Elementvariablen Standardkonstruktor 2. Konstruktor Destruktor Methoden - private + public