Lösung der Klausur Prg12 im WS'05/'06

Aufgabe 1

class ZeichenmengeErw extends ZeichenmengeImpl {
   int anzahl(char zeichen) { // Anzahl der vorhandenen zeichen in der Menge
     return inhalt[zeichen] ? 1 : 0; }
   int anzahl() { // Gesamtzahl aller Zeichen in der Menge
     int summe = 0;
     for (char zeichen = 0; zeichen < inhalt.length; zeichen++)
        if (inhalt[zeichen])
           summe++;
     return summe; } }

Aufgabe 2

Aufgabe 3

public class Fenster extends java.awt.Frame {
       public Fenster() {
             addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                           java.awt.Toolkit.getDefaultToolkit().beep(); }}); }}}

Aufgabe 4

(   )     Richtig            Globale Variablen heißen global, weil sie aus dem ganzen Programm erreichbar sind.
(X)     Falsch

Grund: Private sind global und nur aus der Klasse erreichbar (ein Programm kann mehrere Klassen enthalten)

(   )     Richtig            Eine static-Variable kann nur innerhalb der Klasse benutzt werden.
(X)     Falsch            

Grund: auch außerhalb, wenn sie z.B. public ist (wie etwa Konstanten).

(X)     Richtig            Ein Objekt kann gleichzeitig von zwei Referenzen referenziert werden.
(   )     Falsch            

Grund: z.B. nach einer Zuweisung

(   )     Richtig            javadoc erzeugt die Dokumentation aus dem Bytecode.
(X)     Falsch

Grund: aus dem Quellprogramm; im Bytecode gibt es keine Kommentare

(   )     Richtig            Wenn die Anzahl der Wiederholungen erst zur Laufzeit berechnet wird,
(X)     Falsch             kann keine Zählschleife verwedet werden.

Grund: wenn die Anzahl der Wiederholungen vor dem Eintritt in die Schleife berechnet wird

(   )     Richtig            Zwischen char und short kann implizit hin- und zurückkonvertiert werden,
(X)     Falsch             da beide 16 Bits lang sind.

Grund: unterschiedliche Wertebereiche: char nur postiv, short auch negativ

(X)     Richtig            Die kurzgeschlossenen Operatoren && und || berechnen ggf. nur ihren linken Operanden.
(   )     Falsch            

Grund: wenn das Ergebnis unabhängig vom rechten Operanden ist (z.B. false && egalwas oder true || egalwas

(   )     Richtig            Die Schnittstelle Comparable enthält nur eine parameterlose Methode.

(X)     Falsch            

Grund: compareTo hat einen Parameter; sie vergleicht 2 Objekte (Ziel- und Parameterobjekt)

Aufgabe 5

public void schalten() {
       switch (zustand) {
             case 0: rot.wiederherstellen(); gelb.verstecken(); grün.verstecken(); break;
             case 1: gelb.wiederherstellen(); break;
              case 2: rot.verstecken(); gelb.verstecken(); grün.wiederherstellen(); break;
             case 3: grün.verstecken(); gelb.wiederherstellen(); break; }
       zustand = (zustand + 1) % 4; }