• Keine Ergebnisse gefunden

Aufgaben zu UE 17 – Polymorphie (Stand 14.11.2012)

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgaben zu UE 17 – Polymorphie (Stand 14.11.2012)"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmierkurs Java

Dr.-Ing. Dietrich Boles

Aufgaben zu UE 17 – Polymorphie

(Stand 14.11.2012)

Aufgabe 1:

Implementieren Sie mit Hilfe der Klasse java.util.ArrayList die folgende Klasse Stack:

/**

* A Last-In-First-Out(LIFO) stack of objects.

*/

class Stack extends java.util.ArrayList { /**

* Pushes an item onto the stack.

*

* @param item

* the item to be pushed on.

*/

public Object push(Object item);

/**

* Pops an item off the stack.

*/

public Object pop();

/**

* Peeks at the top of the stack.

*/

public Object peek();

/**

* Returns true if the stack is empty.

*/

public boolean empty();

/**

* Sees if an object is on the stack.

*

* @param o

* the desired object

* @return the distance from the top, or -1 if it is not found.

*/

public int search(Object o);

}

Schreiben Sie dann ein Programm, bei dem zunächst ein Stack-Objekt erzeugt wird.

Anschließend wird der Benutzer aufgefordert, int-Werte einzugeben. Solange die Werte größer als 0 sind, werden sie jeweils als Integer-Objekte auf den Stack

(2)

gepusht. Nach Abschluss der Eingaben sollen alle Werte vom Stack gepoppt und auf den Bildschirm ausgegeben werden.

Aufgabe 2:

Schauen Sie sich das Protokoll der Klasse java.util.ArrayList an. Schreiben Sie dann ein Programm, in dem ein ArrayList-Objekt erzeugt und mehrere Objekte unterschiedlicher Klassen darin gespeichert werden.

Aufgabe 3:

Implementieren Sie eine eigene Klasse FunktionArrayList in Anlehnung an die entsprechende Klasse aus dem Paket java.util. Ein Objekt der Klasse FunktionArrayList soll Objekte der folgende Klasse (sowie Objekte von Unterklassen dieser Klasse) speichern können:

public class Funktion {

public void printFunktionswert(int x) { System.out.println(x);

} }

Sehen Sie in der Klasse FunktionArrayList eine Methode ausgeben vor, die für alle gespeicherten Objekte deren Methode printFunktionswert aufruft.

Implementieren Sie Unterklassen von Funktion und schreiben Sie ein Testprogramm für die Klasse FunktionArrayList.

Aufgabe 4:

In den Aufgaben 1-5 der UE 10 haben wir uns mit graphischen Benutzungsoberflächen auseinander gesetzt. Dort wurden Klassen wie Button, TextField und Scrollbar aus dem Paket java.awt vorgestellt. Alle diese Klassen sind von der Klasse java.awt.Component abgeleitet und anstatt der in der Aufgabenbeschreibung vorgestellten add-Methoden der Klassen Frame und Panel gibt es tatsächlich jeweils nur eine einzige add-Methode, die Polymorphie nutzt: void add(Component comp)

Implementieren Sie eine eigene Klasse ComponentArrayList in Anlehnung an die entsprechende Klasse aus dem Paket java.util. Ein Objekt der Klasse ComponentArrayList soll Objekte der Klasse java.awt.Component (sowie Objekte von Unterklassen dieser Klasse, also Buttons, Labels, …) speichern können.

Sehen Sie folgende Methoden in der Klasse ComponentArrayList vor:

 Eine Methode zum Hinzufügen eines neuen Component-Objektes (add)

 Eine Methode zum Entfernen eines Component-Objektes an einem bestimmten Index (remove)

 Eine Methode zum Liefern eines Component-Objektes an einem bestimmten Index (get)

(3)

 Eine Methode zum Liefern der Anzahl an aktuell in der ArrayList enthaltenen Component-Objekte (size)

 Eine Methode, in der ein neues Fenster erzeugt und auf dem Bildschirm angezeigt wird, in dem alle Component-Objekte, die sich aktuell in der ArrayList befinden, in einer einzelnen Spalte angeordnet dargestellt werden (createWindow).

Schreiben Sie ein Testprogramm für Ihre Klasse ComponentArrayList.

Referenzen

ÄHNLICHE DOKUMENTE

Definieren Sie analog zu dem Beispiel in der Unterrichtseinheit 10 eine Klasse Mensch, für deren Objekte abgefragt werden kann, ob der entsprechende Mensch

Die Klasse soll eine Methode immatrikulieren definieren, der das Alter eines Studenten als Parameter übergeben wird, sowie eine Methode exmatrikulieren, sowie eine

Der Wert true in einem Element des Arrays gibt an, dass sich das Kind noch im Kreis befindet.. Der Wert false repräsentiert ein

Stacks sind Behälter-Klassen, auf denen mittels einer Methode push Werte ausschließlich oben drauf abgelegt werden können und mit Hilfe einer Methode pop der jeweils

• Initialisieren einer römischen Zahl mit einem String, der eine römische Zahl repräsentiert (Konstruktor). • Initialisieren einer römischen Zahl mit einem

 Eine Methode toString (Überschreiben der Methode toString der Klasse Object), die einen String im Format <Gewicht links>:<Gewicht rechts> liefert, in

Eine Klasse Queue, die das Interface Container implementiert, kann also einfach dadurch definiert werden, dass sie von der Klasse Stack abgeleitet wird und lediglich die

Implementieren Sie mit Hilfe dieser API eine Klasse DocumentReader, deren main- Funktion der Name eines Dokumentes als Parameter übergeben wird, dessen Inhalt zeilenweise auf