Tutorium Software-Engineering SS14 Florian Manghofer.

Slides:



Advertisements
Ähnliche Präsentationen
Objektorientierte Programmierung
Advertisements

Imperative Programmierung
der Universität Oldenburg
DES-Simulator in JAVA, objektorientiert
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Definition von Klassen in Java
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Erweiterte Zuweisungskompatibilität
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Einführung in die Programmierung Klassendefinition und Objekte
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Einfach verkettete Listen (OOP)
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
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.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Programmiervorkurs WS 2014/15 Instanzmethoden
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
A Workshop About this chapter General description Units Time Schedule
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Erweiterte Zuweisungskompatibilität. Wie kann man Objekte verschiedener Klassen einer Klassenhierarchie einander zuweisen ?
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Venusspiegel und Marsschild
Die Klasse Geist.
Grundkurs Informatik 11-13
November 18 Informatik Kurse
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Implementieren von Klassen
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
Grundkurs Informatik 11-13
1. Die rekursive Datenstruktur Liste 1
Juli 19 Informatik Kurse
 Präsentation transkript:

Tutorium Software-Engineering SS14 Florian Manghofer

(SS11 5.1) 1.1 Korrigieren Sie die Fehler in folgenden Programmzeilen. Geben Sie eine kurze Erklärung. a) int* p = new int*; *p = 100; b) short p = new short(10); c) Mitarbeiter *p; *q = new Mitarbeiter(35); d) Mitarbeiter *p = new Mitarbeiter(35); p.datenausgeben(); e) int p, q; p = &q; int* p = new int(); Aufruf mit new mit () short *p = new short(10); Zeiger auf short p = new Mitarbeiter(35); Zeiger auf neues Objekt zeigen lassen, nicht Wert zuweisen p->datenausgeben(); Zugriff auf Methoden über Zeiger mit -> int *p,q; Nur einem Zeiger kann man Adressen zuweisen Speicherreservierung

(SS11 5.2) 1.2 Ergänzen Sie die Klasse Mitarbeiter um einen Elementinitialisierungskonstruktor und eine Methode datenausgeben(), die weder Rückgabewert noch Übergabeparameter hat. class Mitarbeiter { private: long Nummer; string Name; public: Mitarbeiter(long nNummer, string nName):Nummer(nNummer),Name(nName){}; void datenausgeben() { cout << this.Nummer << endl; cout << this.Name << endl; } };

Speicherreservierung (SS11 5.3) 1.3 Schreiben Sie die erforderlichen Anweisungen, um den Speicher für ein Objekt der Klasse Mitarbeiter dynamisch zu reservieren und rufen Sie für das Objekt die Methode datenausgeben() auf. Mitarbeiter *franz = new Mitarbeiter(1,“Franz“); //dynamsich erzeugt franz->datenausgeben();

verk. Liste (SS11 4.1) 2.1 Kommentieren Sie die fett gedruckten Programmzeilen class Tierliste { private: Tier * H; //Zeiger auf ein Objekt vom Typ Tier als Attribut //Das erste/oberste Objekt der Liste public: Tierliste () : H (0){ } // Konstruktor, setzt Zeiger auf 0 //Zu Beginn ist die Liste leer, daher gibt es kein oberstes/erstes Objekt void insert (Tier * kp){ //Methode zum einfügen eines neuen Objektes //erwartet als Parameter einen Zeiger auf das einzufügende Objekt kp->N = H; //setzt das Attribut N des einzufügenden Objekts auf den Anfang der Liste H //Dadurch wird das ehemalige oberste/erste Objekt als Nachfolgender gespeichert H= kp; //Attribut H auf das neu einzufügende Objekt setzen //oberstes/erstes Objekt der Liste ist das neu eingefügte kp }

verk. Liste (SS11 4.2) 2.2 Ergänzen Sie die Klasse Tier um die für eine verkettete Liste nötigen Attribute (passend zur Klasse Tierliste). class Tier { friendclass Tierliste; private: Tier *N; };

verk. Liste (SS11 4.3) 2.3 Erklären Sie das Prinzip einer verketteten Liste an den beiden Klassendefinitionen. Visualisieren Sie die ersten beiden „insert“-Vorgänge beginnend mit einer „leeren“ verketteten Liste. Tierliste tl; H0 leere Tierliste Tierliste tl; H 1. insert Tier t1; N0 Tierliste tl; H 2. insert Tier t2; N Tier t1; N 0 Stack Prinzip Neue Objekte auf den Stapel