1. Die rekursive Datenstruktur Liste 1

Slides:



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

der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Java: Objektorientierte Programmierung
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Einführung in die OOP in Java
Programmieren mit JAVA
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.
Abstrakte Klassen DVG
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Klassen 02 - Klassen.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
1.2 Trennung von Struktur und Inhalt
EPROG Tutorium #6 Philipp Effenberger
EPROG Tutorium #5 Philipp Effenberger
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
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
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Abstrakte Klassen und das Interface-Konzept
Tutorium Software-Engineering SS14 Florian Manghofer.
Eine Vokabelschlange. Schlangen in Anwendungsprogrammen Die Piktogramme von Personen, mit denen wir ursprünglich die Datenstruktur Schlange eingeführt.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Schnittstellen.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Vererbung.
Zwei Denkansätze zur Klasse Schlange
OOP II.
Der Abschluss einer Schlange
Einführung in die Programmierung mit Java
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
verkettete Strukturen
Allgemeine Befehle für die allgemeine Liste
Die Struktur einer Java-Klasse
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Objektorientierte Programmierung und Vererbung
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
Interfaces Definition von Interfaces Verwendung von Interfaces
2. Vererbung und Kapselung
2. Die rekursive Datenstruktur Baum 2.2 Suchen und Einfügen
Datenstrukturen und Softwareentwicklung
9. Vererbung und Polymorphie
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
Vererbung in Java Von Jan und Eddi.
Grundkurs Informatik 11-13
1. Die rekursive Datenstruktur Liste 1
Juli 19 Informatik Kurse
2. Die rekursive Datenstruktur Baum 2.3 Baum und Kompositum
 Präsentation transkript:

1. Die rekursive Datenstruktur Liste 1 1. Die rekursive Datenstruktur Liste 1.2 Trennung von Struktur und Inhalt Die Warteschlange soll anstelle von Objekten der Klasse Patient Objekte der Klasse Taxi oder einer anderen Klasse verwalten. Dazu sind in der Klasse Warteschlange einige Änderungen nötig. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Man nennt dies Trennung von Struktur und Inhalt. Es wäre dehalb besser, die Klasse Warteschlange unabhängig von der Klasse der zu verwaltenden Objekte zu modellieren. Man nennt dies Trennung von Struktur und Inhalt. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Die Struktur wird mit einer Klasse Knoten umgesetzt. Die Klasse Knoten verwaltet unabhängig davon den Inhalt. Warteschlange Knoten hat als Anfang > 0..1 hat als Ende > 0..1 hat als Nachfolger > 0..1 Patient verwaltet > 1 Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Übung 1 Implementieren einer Warteschlange mit Trennung von Struktur und Inhalt Ändere die Implemetierung der Warteschlange nach dem Klassendiagramm ab. Teste das Programm und versuche, die Klasse Patient durch die Klasse Taxi zu ersetzen. Welche entscheidenden Nachteile hat die Modellierung immer noch? Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Verbesserung der Trennung von Struktur und Inhalt Um bequemer andere Datentypen (als in unserem Bsp. Patient) in der Liste zu verwalten, sollen die Knoten nur die Schnittstelle DATENELEMENT verwalten. Dies kann man in Java mit einem Interface umsetzen. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Wiederholung und Vertiefung: Vererbung in Java Durch Vererbung kann man eine Hierarchie zwischen verschiedenen Klassen modellieren: Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Wiederholung und Vertiefung: Vererbung in Java In Java wird die Vererbung durch den Zusatz extends realisiert: public class Schueler extends Person { // Zusaetzliche Attribute int schuleintritt; Person erziehungsberechtigter; // Konstruktoren public Schueler () { Person erziehungsberechtiger = new Person(); } public Schueler (String name, String adresse, int tag, int monat, int jahr, String name_eb) { super(name, adresse, tag, monat, jahr); schuleintritt = 2001; Person erziehungsberechtiger = new Person(); erziehungsberechtigter.name = name_eb; erziehungsberechtigter.adresse = adresse; } // Zusaetzliche Methoden public void aenderung_erziehungsberechtigung (String name_eb) { erziehungsberechtigter.name = name_eb; } } Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Wiederholung und Vertiefung: Vererbung in Java Beim Implementieren der Superklasse ist oft noch nicht bekannt, wie bestimmte Methoden in den Unterklassen konkret definiert sein sollen. Für diese Situation gibt es das Konzept der abstrakten Klassen:  Abstrakte Klassen dürfen Methoden enthalten, die entweder nicht oder nur unvollständig implementiert sind. Solche Methoden heißen abstrakte Methoden.  Von abstrakten Klassen können keine Objekte erzeugt werden. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Wiederholung und Vertiefung: Vererbung in Java public abstract class Figur { // Attribute double rahmendicke; String farbe; // Konstruktoren //...; // Methoden public abstract double berechne_flaeche () ; } public class Kreis extends Figur { // Definition der Kreiszahl als Konstante private final double PI = 3.1415; // Zusaetzliche Attribute double radius; // Konstruktoren //...; // Zusaetzliche Methoden void gib_radius () { return radius; } // Vollstaendig implementierte Methoden der abstrakten Superklasse public double berechne_flaeche () { return PI * radius * radius; } } Wiederholung und Vertiefung: Vererbung in Java Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Wiederholung und Vertiefung: Vererbung in Java Eine Schnittstelle (Interface) bietet eine etwas andere Möglichkeit der Abstraktion: Eine Schnittstelle oder ein Interface  ist eine abstrakte Klasse, die ausschließlich abstrakte Methoden spezifiziert. Sie enthält einen Bauplan für Methoden, die in Klassen, welche die Schnittstelle anbieten sollen, implementiert werden müssen. Zusätzlich ist innerhalb der Klasse die Definition von Konstanten möglich. Eine Schnittstelle besitzt folglich eine Menge von abstrakten Methoden, aber keine Attribute. Eine Klasse kann nun eine Schnittstelle implementieren, d.h. die von der Schnittstellen vordefinierten Methoden implementieren. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Wiederholung und Vertiefung: Vererbung in Java Syntax in Java: public interface Datenelement{ public void informationAusgeben(); } public class Patient implements Datenelement{ //... public void informationAusgeben(){ System.out.print(name +" "); Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Übung 2 Teste die Beispiele zum Themea Vererbung, abstrakten Klasse und Interface Ordner: Loesungen/1_1_Die_rekursive_Datenstruktur_Liste/ 1_2_Trennung_von_Struktur_und_Inhalt/Vererbung_und_Schnittstellen Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Übung 3 Implementieren einer Warteschlange mit verbesserter Trennung von Struktur und Inhalt Ändere die Implemetierung der Warteschlange nach dem Klassendiagramm ab. Teste das Programm und versuche erneut, die Klasse Patient durch die Klasse Taxi zu ersetzen. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Übung 4 Implementieren einer Klasse Wort mithilfe einer Liste Zeichenketten werden in Java durch die Klasse String dargestellt. In dieser Übung soll stattdessen eine Klasse Wort implementiert werden, deren Objekte als einfach verkettete Listen von Objekten der Klasse Zeichen verwaltet werden. Die Klasse Wort soll die folgenden Methoden enthalten: int wortlaengeGeben() Zeichen erstesZeichenGeben() Zeichen zeichenGeben(int position)  void zeichenHintenEinfuegen(Zeichen inhalt) void zeichenVorneEinfuegen(Zeichen inhalt) void zeichenVorneLoeschen() void wortAusgeben() Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt

Übung 5* Verwenden der Javaklasse ArrayList Für die Datenstruktur Liste stehen in Java verschiedene Klassen zur Verfügung. Eine dieser Klassen ist ArrayList. Informiere dich über diese Klasse auf der offiziellen Javadokumentation (gib „java api“ in eine Suchmaschine ein) oder in den Handbüchern. Schreibe eine Klasse PatientenListe, in der einObjekt der Klasse ArrayList mit der Referenzklasse Patient verwaltet wird. Implementiere dann einige Methoden (hintenEinfuegen, vorneEinfuegen, endeEntfernen, anfangEntfernen, listeAusgeben,...) mithilfe der Verwendung der Methoden von ArrayList. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.2 Trennung von Struktur und Inhalt