Der Abschluss einer Schlange

Slides:



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

Objektorientierte Programmierung
der Universität Oldenburg
DES-Simulator in JAVA, objektorientiert
Konzepte objektorientierter Systeme
Rekursion Was ist Rekursion? Was sind rekursive Methoden?
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Erweiterte Zuweisungskompatibilität
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Programmieren mit JAVA
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 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 -
Einfügen am Ende der Liste Vorher: Nachher:. Einfügen am Ende der Liste //Klasse Knoten public Knoten hintenEinfuegen(Datenelement dneu) { nachfolger.
Die Methode public Knoten einfuegenVor (Datenelement dNeu, Datenelement dVergleich) public Knoten einfuegenVor(Datenelement dNeu, Datenelement dVergleich){
Einführung in die Programmierung Vererbung
Informatikunterricht mit Java
Template Pattern Richard Göbel.
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,
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
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
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
1.2 Trennung von Struktur und Inhalt
1.5 Das Entwurfsmuster Kompositum
Die Methode public Datenelement getEnde (Datenelement d) Ziel: //Klasse Knoten public Datenelement getEnde(Datenelement d){ return nachfolger.getEnde(inhalt);
Informatik Zustandsorientiertes Modellieren und Programmieren 2.4 Datenkapselung 2.4 Datenkapselung Objekte können miteinander kommunizieren, indem.
2. Zustandsorientiertes Modellieren 2.4 Datenkapselung
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
2 Datenabstraktion Geheimnisprinzip:
Einführung in die Programmierung mit Java
Abstrakte Klassen und das Interface-Konzept
Tutorium Software-Engineering SS14 Florian Manghofer.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
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.
Die allgemeine Liste.
Objektorientiertes Modellieren und Programmieren mit Java
Schnittstellen.
Venusspiegel und Marsschild
Zwei Denkansätze zur Klasse Schlange
Aufgaben zu Rückgabewerten
Einführung in die Programmierung
Die Klasse Geist.
Allgemeine Befehle für die allgemeine Liste
Einführung in die Programmierung
OO-Programmierung & Vererbung
Einführung in die Programmierung
Polymorphie Überladen
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
«Delegierter» Methoden Schablone Funktionszeiger
1. Die rekursive Datenstruktur Liste 1
2. Die rekursive Datenstruktur Baum 2.2 Suchen und Einfügen
Datenstrukturen und Softwareentwicklung
9. Vererbung und Polymorphie
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
1. Die rekursive Datenstruktur Liste 1
Heapsort-Algorithmus
2. Die rekursive Datenstruktur Baum 2.3 Baum und Kompositum
 Präsentation transkript:

Der Abschluss einer Schlange

Der Abschluss als leerer Knoten erstesSchlangenelement Der Abschluss bildet das Ende der Schlange. Da er selbst ein Objekt ist, kann er Methoden ausführen. Das vereinfacht das Programmieren und das Verständnis des Codes, weil niemals mehr ein Nachfolger null wird und darum etliche Fallunterscheidungen entfallen.

Der Abschluss im Klassendiagramm Schlangenelement 1 Nachfolger 1 Abschluss Knoten Wir brauchen eine abstrakte Oberklasse Schlangenelement von Abschluss und Knoten. Der Nachfolger eines Knotens kann wieder ein Knoten oder ein Abschluss sein. Allgemein ist der Nachfolger eines Knotens also ein Schlangenelement. Dadurch haben wir eine Beziehung namens Nachfolger von der Unterklasse Knoten zur Oberklasse Schlangenelement. Ein Vererbungsdiagramm mit einer solchen Beziehung nennen wir Kompositum.

Rekursion in Schlangen mit Abschluss Wenn wir einen Abschluss verwenden, müssen wir zwar in vier statt in nur zwei Klassen programmieren. Die einzelnen Codeteile werden allerdings viel einfacher. In der Klasse Schlangenelement brauchen wir meist nur eine abstrakte Methode: public abstract int gibGesamtbuchstabenzahl (); Die zugehörige Methode in der Klasse Abschluss ist gedanklich meist sehr einfach. Wenn sie keinen Rückgabewert hat (also void deklariert ist), tut sie nichts. Wenn sie einen Rückgabewert hat, ist es der einfachstmögliche. public int gibGesamtbuchstabenzahl () { return 0; }

In der Klasse Knoten steckt der gedankliche Kern der Rekursion: public int gibGesamtbuchstabenzahl () { return inhalt.gibName ().length () + nachfolger.gibGesamtbuchstabenzahl (); } Die Klasse Schlange ruft schließlich die passende rekursive Methode des ersten Schlangenelements auf. public int gibGesamtbuchstabenzahl () { return erstesSchlangenelement.gibGesamtbuchstabenzahl (); }