050413 Klausur Einführung Java - uni- · PDF fileKlausur zur Einführung in die...

5
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 - be- vor Sie mit der Bearbeitung beginnen! Blätter ohne diese Angaben können nicht gewer- tet 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 Aufsichts- fü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ösun- gen, die sich nicht an die vorgegebenen Aufgabenstellungen halten, werden mit null Punkten bewertet.

Transcript of 050413 Klausur Einführung Java - uni- · PDF fileKlausur zur Einführung in die...

Page 1: 050413 Klausur Einführung Java - uni- · PDF fileKlausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Donnerstag, 14. April

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 - be-vor Sie mit der Bearbeitung beginnen! Blätter ohne diese Angaben können nicht gewer-tet 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 Aufsichts-fü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ösun-gen, die sich nicht an die vorgegebenen Aufgabenstellungen halten, werden mit null Punkten bewertet.

Page 2: 050413 Klausur Einführung Java - uni- · PDF fileKlausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Donnerstag, 14. April

Klausur Einführung OO / Java Sommersemester 2005 Donnerstag, 14. April 2005

2

Fragen Punk-

teAufgabe 1 Gegeben sei folgende Problemstellung: Sie entwickeln eine Verwaltungssoftware für einen Waschsalon und wollen zunächst die objekt-orientierte Modellierung durchführen. Fol-gende Informationen liegen Ihnen vor: Ein Waschsalon verfügt über verschiedene Geräte, darunter Wasch-maschinen und Trockner. Die Geräte haben jeweils einen Betriebszu-stand, 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 Knit-terschutzfunktion, die aktiviert und deaktiviert werden kann. Unter den Kunden des Waschsalons gibt es Abonnenten, deren Wasch- und Trockenvorgänge über ein Abonnement abgebucht wer-den. 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 Typisie-rung von Eigenschaften primitive Datentypen bzw. den Zeichen-kettendatentyp String. (28 P.)

b) Geben Sie anhand Ihres Codes je ein Beispiel für eine Verer-

bungs- bzw. eine Aggregationsbeziehung (4 P.).

c) In welcher Beziehung stehen in Ihrem Modell die Abonnenten zu den Geräten (3P)?

35 P.

Page 3: 050413 Klausur Einführung Java - uni- · PDF fileKlausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Donnerstag, 14. April

Klausur Einführung OO / Java Sommersemester 2005 Donnerstag, 14. April 2005

3

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 Referenz-Datentypen 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 Projektmehrere (viele) Klassen deklariert haben? Welche Besonderheiten gelten bei Applets?

8 P.

Aufgabe 6 Erläutern Sie folgenden Klassenkopf (Inhalt und Funktion der Klasse): public final class String extends Object implements Serializable, Comparable, CharSequence

6 P.

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++) { ____________________ }

4P

Page 4: 050413 Klausur Einführung Java - uni- · PDF fileKlausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Donnerstag, 14. April

Klausur Einführung OO / Java Sommersemester 2005 Donnerstag, 14. April 2005

4

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 berechneFa-kultaet() 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); } } }

11 P.

Page 5: 050413 Klausur Einführung Java - uni- · PDF fileKlausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Donnerstag, 14. April

Klausur Einführung OO / Java Sommersemester 2005 Donnerstag, 14. April 2005

5

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 Verer-bungsbeziehungen dar? (4 P.) Welche Fehlerarten treten auf? Bei welchen Beziehungen? (4 P.)

8 P.