Sie sind auf Seite 1von 5

Klausur zur Einfhrung in die objektorientierte

Programmierung mit Java


im Studiengang Informationswissenschaft

Donnerstag, 14. April 2005

Prof. Dr. Christian Wolff


Professur fr Medieninformatik
Institut fr Medien-, Informations- und Kulturwissenschaft

Allgemeine Hinweise
1. Bearbeitungszeit: 90 Minuten.
2. Maximal erreichbare Punktzahl: 90. Zu Ihrer Orientierung sind die erreichbaren Punkte
bei jeder Frage genannt bitte teilen Sie die Arbeitszeit entsprechend ein.
3. Schreiben Sie Ihren Namen, Vornamen und Ihre Matrikelnummer (oder eine frei
whlbare ID) leserlich auf alle Klausurbgen, die Sie fr Ihre Lsung verwenden - bevor Sie mit der Bearbeitung beginnen! Bltter ohne diese Angaben knnen nicht gewertet werden.
4. Verwenden Sie nur die bereitgestellten Klausurbgen.
5. Haken Sie ggf. nach Bearbeitung die Aufgaben auf der Angabe ab, um sicherzustellen,
dass Sie keine Frage ausgelassen haben.
6. Benutzen Sie keine Bleistifte, keine rotschreibenden Stifte und kein TippEx (oder
hnliche Produkte).
7. Es sind keine weiteren Unterlagen (Skripte, Vorlesungsmitschriften, etc.) zugelassen.
8. Wenden Sie sich bei Unklarheiten in den Aufgabenstellungen immer an die Aufsichtsfhrenden. Hinweise und Hilfestellungen werden dann, falls erforderlich, offiziell fr den
gesamten Hrsaal durchgegeben. Aussagen unter vier Augen sind ohne Gewhr.
9. Geben Sie keine mehrdeutigen (oder mehrere) Lsungen an. In solchen Fllen wird
stets die Lsung mit der geringeren Punktzahl gewertet. Eine richtige und eine falsche
Lsung zu einer Aufgabe ergeben also null Punkte.
10. Verndern Sie die Aufgabenstellung nicht, um Sie an Ihre Lsung anzupassen. Lsungen, die sich nicht an die vorgegebenen Aufgabenstellungen halten, werden mit null
Punkten bewertet.

Klausur Einfhrung OO / Java


Sommersemester 2005
Donnerstag, 14. April 2005

Fragen

Punkte

Aufgabe 1
Gegeben sei folgende Problemstellung:
Sie entwickeln eine Verwaltungssoftware fr einen Waschsalon und
wollen zunchst die objekt-orientierte Modellierung durchfhren. Folgende Informationen liegen Ihnen vor:
Ein Waschsalon verfgt ber verschiedene Gerte, darunter Waschmaschinen und Trockner. Die Gerte haben jeweils einen Betriebszustand, verfgen ber mehrere Programme und knnen die Restlaufzeit
angeben.
Waschmaschinen haben einen Wasch- und Weichsplmittelbehlter,
dessen Fllstand ausgelesen werden kann. Trockner haben eine Knitterschutzfunktion, die aktiviert und deaktiviert werden kann.
Unter den Kunden des Waschsalons gibt es Abonnenten, deren
Wasch- und Trockenvorgnge ber ein Abonnement abgebucht werden. Die Abonnenten verfgen ber eine Kundenkarte, mit der sie die
Gerte steuern knnen.
a) Entwerfen Sie in Java geeignete Klassen bzw. Schnittstellen fr
die obige Problemstellung Verwenden Sie ggf. fr die Typisierung von Eigenschaften primitive Datentypen bzw. den Zeichenkettendatentyp String. (28 P.)
b) Geben Sie anhand Ihres Codes je ein Beispiel fr eine Vererbungs- bzw. eine Aggregationsbeziehung (4 P.).
c) In welcher Beziehung stehen in Ihrem Modell die Abonnenten zu
den Gerten (3P)?

35 P.

Klausur Einfhrung OO / Java


Sommersemester 2005
Donnerstag, 14. April 2005

Aufgabe 2
Erlutern Sie anhand eines kurzen Code-Beispiels, wie in Java neue
Objekte erzeugt werden knnen.

6 P.

Aufgabe 3
Erlutern Sie den Unterschied zwischen primitiven und ReferenzDatentypen und geben Sie je ein Beispiel fr beide Typen.

6 P.

Aufgabe 4
Erlutern Sie die Konzepte finale Klasse bzw. abstrakte Klasse.
Wofr setzt man sie typischerweise ein?

6 P.

Aufgabe 5
Erlutern Sie die Aufgabe der main()-Methode einer Java-Klasse.
Wie verwenden Sie main()-Methoden, wenn Sie in einem Projekt
mehrere (viele) Klassen deklariert haben? Welche Besonderheiten
gelten bei Applets?

8 P.

Aufgabe 6
Erlutern Sie folgenden Klassenkopf (Inhalt und Funktion der Klasse):

6 P.

public final class String extends Object


implements Serializable,
Comparable,
CharSequence

Aufgabe 7
Ergnzen Sie die Leerstellen in der nachfolgenden Schleife so, dass
nach Durchlaufen der Schleife in der Variablen Ergebnis das Produkt
der Ganzzahlen von 1 bis 10 enthalten ist.
int Ergebnis = 1;
for(int Zaehler = ___; Zaehler ____; Zaehler++)
{
____________________
}

4P

Klausur Einfhrung OO / Java


Sommersemester 2005
Donnerstag, 14. April 2005

Aufgabe 8
Die nachfolgende Klasse berechnet die Fakultt von n mit Hilfe
der rekursiven Methode berechneFakultaet().
a. Wandeln Sie diese Methode in eine iterative Berechnung
der Fakultt um (Berechnung mit Hilfe einer Schleife). Sie
mssen dabei nur die neue Fassung von berechneFakultaet() angeben. (7 P.)
b. Benennen Sie Schwchen der Klasse Fakultaet (4 P.)
class Fakultaet
{
public static void main(String[] argv)
{ new Fakultaet (argv[0]); }
Fakultaet (String dieEingabe)
{ System.out.println(
berechneFakultaet(
Integer.parseInt(dieEingabe)));
}
long berechneFakultaet(int Fakultaet)
{
if(Fakultaet == 0)
{ return 1; }
else
{
return Fakultaet *
berechneFakultaet(Fakultaet - 1);
}
}
}

11 P.

Klausur Einfhrung OO / Java


Sommersemester 2005
Donnerstag, 14. April 2005

Aufgabe 9
Zwischen Klassen und Schnittstellen sind Vererbungsbeziehungen
mglich. Die Pfeile zwischen Klassen und Schnittstellen stehen fr
eine Vererbungsbeziehung (implements bzw. extends).
Diagramm A

Diagramm B

Diagramm C

Welche der Diagramme (A, B, C) stellen in Java zulssige Vererbungsbeziehungen dar? (4 P.)
Welche Fehlerarten treten auf? Bei welchen Beziehungen? (4 P.)

8 P.