Programmierung II Prof. Dr. Michael Löwe

Slides:



Advertisements
Ähnliche Präsentationen
Ziele von EINI I + II Einführen in „Informatik“
Advertisements

Imperative Programmierung
der Universität Oldenburg
Klassen - Verkettete Liste -
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Unter- und Oberklassen: Beispiel
Objektorientierte Programmierung Definition von Klassen
Gliederung Motivation / Grundlagen Sortierverfahren
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
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
Programmieren mit JAVA
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.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Abstrakter Datentyp in C++ I - Klasse -
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
3. Klassendiagramme in Java implementieren
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Klassen und Objekte
Stacks Referat im Fach Basisinformationstechnologien von Venelina Koleva.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Delphi II - OOP IFB Fortbildung
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Rekursion mit Listen: Quicksort
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmierung
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
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 Programmierung Wintersemester 2009/10 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 Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
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.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Informatik 1 Letzte Übung.
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 10: Das dynamische Modell und mehr zu Referenzen.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Dynamische Datentypen
Variablenkonzept Klassisch, in Java Basistyp
Die Klasse String und ihre Methoden
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Parameterübergabemechanismen für den Methodenaufruf
Variablen in Programmiersprachen
EPROG Tutorium #5 Philipp Effenberger
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Vererbung Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Objektorientierte (OO) Programmierung
Dr. Wolfram Amme, Generisches Programmieren, Informatik II, FSU Jena, SS Generisches Programmieren.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Datenstrukturen Programmierung II Prof. Dr. Michael Löwe.
Die programmierte Lösung
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Programmierung II Prof. Dr. Michael Löwe Objekt - „Jargon“ Programmierung II Prof. Dr. Michael Löwe

Inhalt Begriffe Objekterzeugung: „New“, „Create“ etc. Das Undefinierte: „Nil“, „Null“, „Nothing“ etc. Objektzuweisung: „:=“, „Set...=“ etc. Das Clonen: „clone“, „copy“, etc. Objektvergleich: „=“, „==“, „Is“ etc. Das Objekt selbst: „Me“, myself, etc. Rekursive Klassen Collections Klassen und Objekte

Begriffe Instanzen zu Klassen(modulen) heißen Objekte. Die Variablen einer Klasse heißen auch Attribute. Die Prozeduren/Funktionen einer Klasse nennt man Methoden. Die öffentlichen Methoden bilden die Schnittstelle einer Klasse. Die Schnittstelle (ohne die implementierenden Rümpfe) nennt man auch Protokoll der Klasse. Den Aufruf einer Methode für ein Objekt nennt man auch Nachricht an das Objekt. Ein Objekt versteht eine Nachricht, wenn Sie zum Protokoll seiner Klasse gehört. Klassen und Objekte

Übung: Wahrheitswerte Definieren Sie eine Klasse MyBool mit folgender Schnittstelle (Initialisierung auf „false“): Class MyBool Public Function myNot As MyBool Public Function myAnd (b As MyBool) As MyBool Public Function myOr (b As MyBool) As MyBool Public Sub setTrue Public Sub setFalse End Class MyBool Klassen und Objekte

Objekterzeugung Variablendeklaration und Variablenbelegung: Dim i As Integer Dim b As MyBool b = New MyBool Name: i Wert: 0 Variablen-Assoziation Name: b Variablen-Assoziation Name: b Variablen-Assoziation V1: ... V2: ... Vn: ... Klassen und Objekte

Das Undefinierte Dim b as MyBool Set b = Nothing „b.method()“ ist undefiniert Nothing kann nichts Nothing macht nichts Auf Nothing kann man nicht zugreifen Nothing ist die Verkörperung des NICHTS Name: b Variablen-Assoziation Nothing Klassen und Objekte

Objektzuweisung Zuweisungen an Variablen zu (elementaren) Typen: Dim x As Boolean [x: false] Dim y As Boolean [x: false, y: false] x = true [x: true, y: false] y = x [x: true, y: true] y = False [x: true, y: false] If x = y Then ... [(x = y)  false] Klassen und Objekte

Objektzuweisung Zuweisungen an Variablen zu Objekttypen: Dim x As MyBool Dim y As MyBool Set x = New MyBool Set y = New MyBool Call x.setTrue Set y = x Call y.setFalse If x Is y Then ... Namen: Objekte: x Nothing y o1: true o2: false Namen: Objekte: x Nothing y o1: true o2: false Namen: Objekte: x Nothing y o1: false Namen: Objekte: x Nothing y o1: false o2: false Namen: Objekte: x Nothing y Namen: Objekte: x Nothing y o1: false Namen: Objekte: x Nothing Klassen und Objekte

Das „Clonen“ von Objekten Erweitern Sie die MyBool-Schnittstelle um: Public Function cloneMyBool As MyBool `Liefert als Wert eine Kopie von sich selbst Wie sieht das allgemeine Verfahren zum Kopieren von Objekten aus? Klassen und Objekte

Objekt-Wert-Zuweisungen Zuweisungen an Variablen zu Objekttypen: Dim x As MyBool Dim y As MyBool Set x = New MyBool Set y = New MyBool Call x.setTrue Set y = x.cloneMyBool Call y.setFalse If x Is y Then ... Namen: Objekte: x Nothing y o1: true o2: false Namen: Objekte: x Nothing y o1: true o2: false o3: true Namen: Objekte: x Nothing y o1: true o3: false Namen: Objekte: x Nothing y o1: false o2: false Namen: Objekte: x Nothing y Namen: Objekte: x Nothing y o1: false Namen: Objekte: x Nothing Klassen und Objekte

Objektvergleich Der Operator Is vergleicht, ob zwei Objekt-variablen dasselbe Objekt als Wert haben Der Operator Is vergleicht nicht, ob die zwei Objektwerte inhaltlich gleich sind. ¿Was ist richtig? 1. (x Is y)  (x = y) 2. (x = y)  (x Is y) Übungen: Ergänzen Sie die Schnittstelle von MyBool um die Gleichheit! Wie sieht das allgemeine Verfahren für den Test auf Gleichheit aus? Klassen und Objekte

Das Objekt selbst Nachrichten an sich selbst schicken call Me. aMethod (...) Set x = Me.aMethod (...) Sich selbst als Parameter übergeben call anObject.aMethod(..., me,...) Set x = anObject.aMethod(..., me,...) Klassen und Objekte

Rekursive Klassen Klassen, die Attribute mit ihrem eigenen Typ definieren Fast alle interessanten Datenstrukturen sind rekursiv: Listen, Ströme, Stapel, .... Bäume, Hierarchien, ... Arrays, Abbildungen, Dictionaries, ... Übung: Realisieren Sie Ströme als rekursive Klasse! Class MyStream Private entry As Variant Private nextEntry As MyStream Public function isEmpty As Boolean Public function first As Variant Public sub append (x As Variant) Public sub removeFirst End Class MyStream Klassen und Objekte

Ganzheitliche Vertiefung Realisieren Sie optimierte Ströme, indem Sie sich das Ende merken: Class MyBetterStream Private start As MyStream Private end As MyStream .... (Protokoll wie gehabt).... End Class MyBetterStream Klassen und Objekte

Objektzuweisung Zuweisungen an Variablen zu Objekttypen: Dim x As New MyBool [x: false] Dim y As New MyBool [x: false, y: false] Call x.setTrue [x: true, y: false] Set y = x [x: true, y: true] Call y.setFalse [x: false, y: false] If x Is y Then ... [(x = y)  true] Klassen und Objekte