PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
DES-Simulator in JAVA, objektorientiert
Klassen - Verkettete Liste -
Definition von Klassen in Java
Zusammenfassung der Vorwoche
Kritische Betrachtung
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Objektorientierte Programmierung Definition von Klassen
Sortieren mit Binären Bäumen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Konstruktoren.
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.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung in die Programmierung mit Java
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
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 Zusammenfassung Bisher bekannt: Einfache Typen (z.B. int, char, boolean) Zusammengesetzte Typen (Felder, auch String) Operatoren.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
DVG Klassen und Objekte
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Einführung in die Programmierung Anweisungen und Datentypen
Informatikunterricht mit Java
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Einfach verkettete Listen
Einfach verkettete Listen (OOP)
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
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.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
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.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Aufruf einer Methode eines Objektes vom Typ „Bruch“
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Zwei Denkansätze zur Klasse Schlange
 Präsentation transkript:

PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf Klassen

PKJ 2005/2 Stefan Dissmann Klasse Studierende public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private Datum geburt, beginn; public Studierende (String n) { name = n; } public String gibName() { return name; } public void zeigeName() { System.out.println(name); }

PKJ 2005/3 Stefan Dissmann Referenzen auf Klassen Studierende stud1, stud2; stud1 = new Studierende(); stud1.setzeName("Schmidt"); stud2 = stud1; stud2.setzeName("Müller"); stud1stud2 Studierende name:Müller" Mehrere Referenzen können auf ein Objekt verweisen Referenzen können während der Ausführung gesetzt werden

PKJ 2005/4 Stefan Dissmann Konstruktoren public Studierende (String n) { name = n; } Expliziter Konstruktor ist spezielle Methode: Name = Name der Klasse keine Angabe eines Rückgabetyps, kein return zurückgegeben wird immer ein Objekt der Klasse Aufruf mit new Rumpf wird nach Initialisierung ausgeführt Rumpf kann Programmkonstrukte enthalten

PKJ 2005/5 Stefan Dissmann Konstruktoren, Methoden In einer Klasse möglich: mehrere Konstruktoren mit unterschiedlichen Parameterlisten mehrere Methoden mit gleichem Namen und unterschiedlichen Parameterlisten

PKJ 2005/6 Stefan Dissmann Rückblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit nicht-sequentiellen Strukturen Umgang mit Strukturen aus heterogenen Typen In JAVA gelöst durch Klassen und Objekte

PKJ 2005/7 Stefan Dissmann Rückblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit nicht-sequentiellen Strukturen Umgang mit Strukturen aus heterogenen Typen In JAVA gelöst durch Klassen und Objekte

PKJ 2005/8 Stefan Dissmann Rückblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit nicht-sequentiellen Strukturen Umgang mit Strukturen aus heterogenen Typen In JAVA gelöst durch Klassen und Objekte

PKJ 2005/9 Stefan Dissmann Rückblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit nicht-sequentiellen Strukturen Umgang mit Strukturen aus heterogenen Typen In JAVA gelöst durch Klassen und Objekte

PKJ 2005/10 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen, Anfang lesen, Anfang löschen, Leerheitstest Zunächst zur Vereinfachung: Jedes Element enthält nur eine ganze Zahl.

PKJ 2005/11 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen, Anfang lesen, Anfang löschen, Leerheitstest Zunächst zur Vereinfachung: Jedes Element enthält nur eine ganze Zahl. Lösung : Jedes Element kennt nur genau seinen Nachfolger verkettete Datenstruktur

PKJ 2005/12 Stefan Dissmann Idee der Verkettung 17 1.für jedes Element ein Objekt anlegen

PKJ 2005/13 Stefan Dissmann Idee der Verkettung für jedes Element ein Objekt anlegen 2.Objekt kennt weiteres Objekt

PKJ 2005/14 Stefan Dissmann Idee der Verkettung für jedes Element ein Objekt anlegen 2.Objekt kennt weiteres Objekt 3.und so fort …

PKJ 2005/15 Stefan Dissmann Technische Umsetzung: Element 1.Problem: Klasse für einzelnes Element der Liste entwickeln

PKJ 2005/16 Stefan Dissmann Technische Umsetzung: Element 1.Problem: Klasse für einzelnes Element der Liste entwickeln public class IntElement { }

PKJ 2005/17 Stefan Dissmann Technische Umsetzung: Element 1.Problem: Klasse für einzelnes Element der Liste entwickeln public class IntElement { private int wert; }

PKJ 2005/18 Stefan Dissmann Technische Umsetzung: Element 1.Problem: Klasse für einzelnes Element der Liste entwickeln public class IntElement { private int wert; private IntElement nachfolger; }

PKJ 2005/19 Stefan Dissmann Technische Umsetzung: Element Und Konstruktor und Methoden ergänzen:

PKJ 2005/20 Stefan Dissmann Technische Umsetzung: Element Und Konstruktor und Methoden ergänzen: public class IntElement { private int wert; private IntElement nachfolger; public IntElement(int w) { wert = w; nachfolger = null; } public void verkette(IntElement n) { nachfolger = n; }

PKJ 2005/21 Stefan Dissmann Technische Umsetzung: Element Und Konstruktor und Methoden ergänzen: public class IntElement { private int wert; private IntElement nachfolger; public IntElement(int w) { wert = w; nachfolger = null; } public void verkette(IntElement n) { nachfolger = n; }

PKJ 2005/22 Stefan Dissmann Technische Umsetzung: Element Und weitere Methoden: public class IntElement { … public IntElement gibNachfolger() { return nachfolger; } public int gibWert() { return wert; }

PKJ 2005/23 Stefan Dissmann Technische Umsetzung: Liste 2.Problem: Klasse für Liste von ganzen Zahlen entwickeln

PKJ 2005/24 Stefan Dissmann Technische Umsetzung: Liste 2.Problem: Klasse für Liste von ganzen Zahlen entwickeln public class IntListe { public IntListe() {…}; public void fügeAn(int w) {…}; public int gibErstes() {…}; public void löscheErstes() {…}; public boolean leer() {…}; }

PKJ 2005/25 Stefan Dissmann Technische Umsetzung: Liste … und Attribute ergänzen: public class IntListe { private IntElement anfang, ende; public IntListe() {…}; public void fügeAn(int w) {…}; public int gibErstes() {…}; public void löscheErstes() {…}; public boolean leer() {…}; }

PKJ 2005/26 Stefan Dissmann Implementierung: Liste … und implementieren: public IntListe() { anfang = ende = null; }

PKJ 2005/27 Stefan Dissmann Implementierung: Liste … und implementieren: public void fügeAn(int w) { IntElement neu = new IntElement(w); if (anfang == null) { anfang = ende = neu; } else { ende.verkette(neu); ende = neu; }

PKJ 2005/28 Stefan Dissmann Implementierung: Liste public void fügeAn(int w) { IntElement neu = new IntElement(w); if (anfang == null) { anfang = ende = neu; } else { ende.verkette(neu); ende = neu; } anfang ende

PKJ 2005/29 Stefan Dissmann Implementierung: Liste public void fügeAn(int w) { IntElement neu = new IntElement(w); if (anfang == null) { anfang = ende = neu; } else { ende.verkette(neu); ende = neu; } wert nachfolger neu anfang ende

PKJ 2005/30 Stefan Dissmann Implementierung: Liste public void fügeAn(int w) { IntElement neu = new IntElement(w); if (anfang == null) { anfang = ende = neu; } else { ende.verkette(neu); ende = neu; } wert nachfolger neu null anfang ende

PKJ 2005/31 Stefan Dissmann Implementierung: Liste public void fügeAn(int w) { IntElement neu = new IntElement(w); if (anfang == null) { anfang = ende = neu; } else { ende.verkette(neu); ende = neu; } null anfang ende wert nachfolger neu

PKJ 2005/32 Stefan Dissmann Implementierung: Liste public void fügeAn(int w) { IntElement neu = new IntElement(w); if (anfang == null) { anfang = ende = neu; } else { ende.verkette(neu); ende = neu; } wert nachfolger wert nachfolger anfang ende wert nachfolger neu …

PKJ 2005/33 Stefan Dissmann Implementierung: Liste public void fügeAn(int w) { IntElement neu = new IntElement(w); if (anfang == null) { anfang = ende = neu; } else { ende.verkette(neu); ende = neu; } wert nachfolger wert nachfolger anfang ende wert nachfolger neu …

PKJ 2005/34 Stefan Dissmann Implementierung: Liste public void fügeAn(int w) { IntElement neu = new IntElement(w); if (anfang == null) { anfang = ende = neu; } else { ende.verkette(neu); ende = neu; } wert nachfolger wert nachfolger anfang ende wert nachfolger neu …

PKJ 2005/35 Stefan Dissmann Implementierung: Liste public int gibErstes() { if (anfang != null) return anfang.gibWert(); else return 0; }

PKJ 2005/36 Stefan Dissmann Implementierung: Liste public boolean leer() { return anfang == null; }

PKJ 2005/37 Stefan Dissmann Implementierung: Liste public void löscheErstes() { if (anfang != ende) { anfang = anfang.gibNachfolger(); } else { anfang = ende = null; }

PKJ 2005/38 Stefan Dissmann Anwendung der Liste IntL iste zahlen = new IntListe(); zahlen.fügeAn(19); zahlen.fügeAn(3); zahlen.fügeAn(28); while (!zahlen.leer()) { System.out.println(zahlen.gibErstes()); zahlen.löscheErstes(); }

PKJ 2005/39 Stefan Dissmann Anwendung der Liste IntL iste zahlen = new IntListe(); zahlen.fügeAn(19); zahlen.fügeAn(3); zahlen.fügeAn(28); while (!zahlen.leer()) { System.out.println(zahlen.gibErstes()); zahlen.löscheErstes(); } Anmerkung: Bei der Benutzung von IntListe wird IntElement nicht benötigt!