Übungsklausur - fbi.h

Werbung
Grundlagen der Programmierung I (Java)
Wintersemester 2005/06
Prof. Dr. B. Humm, nach Aufgabenstellungen von Prof. Dr. I. Schestag
zugelassene Hilfsmittel: Skript und eigene Materialien
Übungsklausur
Aufgabe 1
(4 Punkte)
– Konstruktoren / Instanziierung von Objekten
Für eine Klasse XXX mit den Instanzvariablen int z und String t sei der folgende
Konstruktor definiert:
public XXX(int zahl, String text) {
this.z=zahl;
this.t=text;
}
Ein Objekt der Klasse XXX wird durch die folgende Anweisung instanziiert:
XXX xObject = new XXX(5,″abc″);
Diese Anweisung kann man auch in die folgenden beiden Anweisungen aufteilen:
(1) XXX xObject;
(2) xObject= new XXX(5,″″abc″″);
.
a) Beschreiben Sie, was bei jeder der beiden Anweisungen programmintern geschieht
b) Ist folgender Konstruktor der Klasse Student gültig ? Was ist ggf. falsch?
public void Student(String name) { .....}
c) Werden die Konstruktoren einer Klasse beim Ableiten vererbt?
d) Wann werden Konstruktoren aufgerufen?
e) Was bewirkt der Aufruf von this() in einem Konstruktor?
f) Was bewirkt der Aufruf von super() in einem Konstruktor?
1.1 Instanzenvariablen und Methoden
a) Ist es möglich direkt von einer Klassenmethode auf eine Instanzvariable
zuzugreifen ? (Warum und wie / Warum nicht)
b) Muss ein Objekt einer Klasse existieren, wenn man auf eine Klassenvariable der
Klasse zugreifen will?
Aufgabe 2
– primitive und komplexe Datentypen in Java
2.1 Referenzen und Objekte
a) Auf was zeigt die Referenz p der Klasse Punkt, wenn nur die folgende Zeile
programmiert wurde? (Punkt ist ein Klassenname)
Punkt p;
b) Was ist der Unterschied in der Wirkungsweise bei der Übergabe von primitiven gegenüber komplexen Datentypen an Methoden?
CNAM
17.1.2006
1
Grundlagen der Programmierung I (Java)
Aufgabe 3
Wintersemester 2005/06
weiterführende Konzepte
3.1 Exceptions
a) Welches Schlüsselwort muss im Methodenkopf verwendet werden, wenn eine
Methode eine Exception an den Aufrufer der Methode propagieren soll?
b) Kann man eigene Exception Klassen formulieren? Wenn ja, wie?
3.2 Interfaces
a) Wozu dienen Interfaces?
b) Wie implementiert eine Klasse ein Interface? Welche Schritte sind dazu
notwendig?
Aufgabe 4
– Konstruktoren & Methoden
a) In einer Klasse Punkt sind die Instanzvariablen zur Darstellung der Koordinaten
eines Punktes in der Ebene wie folgt deklariert: double x, y;
Schreiben Sie für die Klasse Punkt einen Konstruktor, der die Eingabe der x- und
y-Koordinate des Punktes bei der Instanziierung eines Punkt-Objektes ermöglicht.
b) Eine Methode zur Berechnung des Flächeninhalts eines Dreiecks (in einer Fläche)
mit den Punkten P1(x,y), P2(x,y) und P3(x,y) wird wie folgt aufgerufen:
double d = computeAreaOfTriangle(new Punkt[] {new Punkt(1,2),
new Punkt(3,4),
new Punkt(3,2)} );
Schreiben Sie die formale Deklaration der Methode auf (nur den Methodenkopf,
nicht den –rumpf!).
Aufgabe 5
Arrays und Exceptions
a) Welche Array-Datenstruktur wird im folgenden generiert? Skizzieren Sie das Array
und seine Einträge:
int[][] produkte = new int[10][];
for (int zeile = 0; zeile < 10; zeile++){
produkte[zeile] = new int[zeile+1];
for (int spalte = 0; spalte < zeile+1; spalte++)
produkte[zeile][spalte] = zeile * spalte;
}
b) In welchen Fällen kann im Zusammenhang mit Arrays eine ArrayIndexOutOfBoundsException eintreten? Nennen Sie mindestens zwei Fälle.
Aufgabe 6
CNAM
Methoden
1.2.2003
2
Grundlagen der Programmierung I (Java)
Wintersemester 2005/06
a) Wie erfolgt die Parameterübergabe bei einem Methodenaufruf in Java?
1) Call-by-Value,
2) Call-by-reference,
3) beides möglich.
Beschreiben Sie in Stichworten, was – entsprechend der von Ihnen gewählten
Antwort - bei der Parameterübergabe passiert.
Aufgabe 7
Java-Syntax: Schleifen
Welchen Output an der Console erzeugen die folgenden Programmteile:
int i=1; // Deklaration von i für a), b) und c)
a) for (i=1;i<10;i*=2)
System.out.println(i);
b) while (i<10)
System.out.println(i);
i*=3;
c) while (i<10){
System.out.println(i);
i*=4;
}
Aufgabe 8
Methoden & Arrays
a) Schreiben Sie eine Java-Methode, die eine (nxn)–Matrix “von unten nach oben”
mit den Zahlen von 1 bis n² belegt:
Beispiele
n=3
n=4
9
8
7
16
15
14
13
6
5
4
12
11
10
9
3
2
1
8
7
6
5
4
3
2
1
− Schreiben Sie nur die Methode, nicht das ganze Java-Programm!
− Lassen Sie die Matrix als Parameter an die Methode übergeben.
CNAM
1.2.2003
3
Herunterladen