Aufgabe 1:
public class Mehrzweck extends Frame implements ActionListener { private Button knopf = new Button("Eimer"); private Eimer eimer = new Eimer();
public Mehrzweck() { this.add(knopf); knopf.addActionListener(this); }
public void actionPerformed(ActionEvent e) { try { eimer.fuellen(); } catch (VollAusnahme a) { try { eimer.entleeren(); } catch (LeerAusnahme b) { System.out.println("Dürfte nicht kommen"); } } } }
Aufgabe 2.
Aufgabe 3
static class Sin implements Funktion { public double funktion(double x) { return Math.sin(x); } }
static class Sqrt implements Funktion { public double funktion(double x) { return Math.sqrt(x); } }
…
public static void main(String[] args) { System.out.println ("Integral von Sinus: " + integral (new Sin(), 0, 1)); System.out.println ("Integral von Sqrt: " + integral (new Sqrt(), 0, 1)); }
Aufgabe 4.
( ) Richtig Die
Größe des Reihungsobjekts in einem
Vector-Objekt
wird bei Bedarf verändert.
(X) Falsch
Grund: Bei Bedarf wird ein neues Reihungsobjekt erzeugt.
(X) Richtig Durch
die Anweisung
for(print(1);
print(2); print(3)) print(4)
( ) Falsch werden die Zahlen in der Reihenfolge
1 2 4 3
durch
print() ausgegeben.
Grund: Die Weiterschaltung (print(3)) wird erst nach dem Rumpf der for-Schleife ausgeführt.
(X) Richtig Der
Operator
+
ist nicht für alle primitive Typen definiert.
( ) Falsch
Grund: Nur für arithmetische Typen, nicht für boolean.
(X) Richtig Wenn
im
catch-Block keine
throw-Anweisung
steht,
( ) Falsch erfährt der Benutzer nichts von der
Ausnahmesituation.
Grund: Seine Methode läuft weiter.
(X) Richtig Die
Veränderung an einer Parametervariable bleibt lokal.
( ) Falsch
Grund: Variablen werden mit call by value übergeben.
( ) Richtig In
einer
static-Methode
kann kein
this
verwendet werden.
(X) Falsch
Grund: Sie wird ohne Objekt aufgerufen.
(X) Richtig
for
(i = 1; i <= 10; i++) meldung("nächste Zahl = " + i);
( ) Falsch ist keine Zählschleife (ist
nicht garantiert endlich).
Grund: i ist nicht lokal; sie kann z.B. in meldung verändert werden.
( ) Richtig
Parametervariablen können unter Umständen auf der Halde gespeichert werden.
(X) Falsch
Grund: Sie sind lokale Variablen und werden immer auf dem Stapel gespeichert.
Aufgabe 5.
static void ziffern(int zahl, char[] ziffern) { if (zahl >= 1 && zahl <= 99) { ziffern[0] = (char)('0' + zahl % 10); // Einser ziffern[1] = (char)('0' + zahl / 10); } // Zehner else throw new Error("Zahl nicht zwischen 1 und 99"); }