Klausur zur Einführung in die objektorientierte Programmierung mit

Werbung
Klausur zur Einführung in die objektorientierte
Programmierung mit Java
im Studiengang Informationswissenschaft
Donnerstag, 14. April 2005
Prof. Dr. Christian Wolff
Professur für Medieninformatik
Institut für 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
wählbare ID) leserlich auf alle Klausurbögen, die Sie für Ihre Lösung verwenden - bevor Sie mit der Bearbeitung beginnen! Blätter ohne diese Angaben können nicht gewertet werden.
4. Verwenden Sie nur die bereitgestellten Klausurbögen.
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 Aufsichtsführenden. Hinweise und Hilfestellungen werden dann, falls erforderlich, offiziell für den
gesamten Hörsaal durchgegeben. Aussagen unter „vier Augen“ sind ohne Gewähr.
9. Geben Sie keine mehrdeutigen (oder mehrere) Lösungen an. In solchen Fällen wird
stets die Lösung mit der geringeren Punktzahl gewertet. Eine richtige und eine falsche
Lösung zu einer Aufgabe ergeben also null Punkte.
10. Verändern Sie die Aufgabenstellung nicht, um Sie an Ihre Lösung „anzupassen“. Lösungen, die sich nicht an die vorgegebenen Aufgabenstellungen halten, werden mit null
Punkten bewertet.
Klausur Einführung OO / Java
Sommersemester 2005
Donnerstag, 14. April 2005
Fragen
Punkte
Aufgabe 1
Gegeben sei folgende Problemstellung:
Sie entwickeln eine Verwaltungssoftware für einen Waschsalon und
wollen zunächst die objekt-orientierte Modellierung durchführen. Folgende Informationen liegen Ihnen vor:
Ein Waschsalon verfügt über verschiedene Geräte, darunter Waschmaschinen und Trockner. Die Geräte haben jeweils einen Betriebszustand, verfügen über mehrere Programme und können die Restlaufzeit
angeben.
Waschmaschinen haben einen Wasch- und Weichspülmittelbehälter,
dessen Füllstand ausgelesen werden kann. Trockner haben eine Knitterschutzfunktion, die aktiviert und deaktiviert werden kann.
Unter den Kunden des Waschsalons gibt es Abonnenten, deren
Wasch- und Trockenvorgänge über ein Abonnement abgebucht werden. Die Abonnenten verfügen über eine Kundenkarte, mit der sie die
Geräte steuern können.
a) Entwerfen Sie in Java geeignete Klassen bzw. Schnittstellen für
die obige Problemstellung Verwenden Sie ggf. für die Typisierung von Eigenschaften primitive Datentypen bzw. den Zeichenkettendatentyp String. (28 P.)
b) Geben Sie anhand Ihres Codes je ein Beispiel für eine Vererbungs- bzw. eine Aggregationsbeziehung (4 P.).
c) In welcher Beziehung stehen in Ihrem Modell die Abonnenten zu
den Geräten (3P)?
2
35 P.
Klausur Einführung OO / Java
Sommersemester 2005
Donnerstag, 14. April 2005
Aufgabe 2
Erläutern Sie anhand eines kurzen Code-Beispiels, wie in Java neue
Objekte erzeugt werden können.
6 P.
Aufgabe 3
Erläutern Sie den Unterschied zwischen primitiven und ReferenzDatentypen und geben Sie je ein Beispiel für beide Typen.
6 P.
Aufgabe 4
Erläutern Sie die Konzepte finale Klasse bzw. abstrakte Klasse.
Wofür setzt man sie typischerweise ein?
6 P.
Aufgabe 5
Erläutern 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
Erläutern Sie folgenden Klassenkopf (Inhalt und Funktion der Klasse):
6 P.
public final class String extends Object
implements Serializable,
Comparable,
CharSequence
Aufgabe 7
Ergänzen 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++)
{
____________________
}
3
4P
Klausur Einführung OO / Java
Sommersemester 2005
Donnerstag, 14. April 2005
Aufgabe 8
Die nachfolgende Klasse berechnet die Fakultät von n mit Hilfe
der rekursiven Methode berechneFakultaet().
a. Wandeln Sie diese Methode in eine iterative Berechnung
der Fakultät um (Berechnung mit Hilfe einer Schleife). Sie
müssen dabei nur die neue Fassung von berechneFakultaet() angeben. (7 P.)
b. Benennen Sie Schwächen 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);
}
}
}
4
11 P.
Klausur Einführung OO / Java
Sommersemester 2005
Donnerstag, 14. April 2005
Aufgabe 9
Zwischen Klassen und Schnittstellen sind Vererbungsbeziehungen
möglich. Die Pfeile zwischen Klassen und Schnittstellen stehen für
eine Vererbungsbeziehung (implements bzw. extends).
Diagramm A
Diagramm B
Diagramm C
Welche der Diagramme (A, B, C) stellen in Java zulässige Vererbungsbeziehungen dar? (4 P.)
Welche Fehlerarten treten auf? Bei welchen Beziehungen? (4 P.)
5
8 P.
Herunterladen