Lösung der Nachklausur Prg12 WS'05/'06

Aufgabe 1:

class ZiffernmengeErw extends ZiffernmengeImpl {
   int anzahl(char z) { // Anzahl der vorhandenen Ziffern z in der Menge
     return Character.isDigit(z) && inhalt[z] ? 1 : 0; }
   int anzahl() { // Gesamtzahl aller Ziffern in der Menge
      int summe = 0;
     for (char zeichen = 0; zeichen < inhalt.length; zeichen++)
        if (inhalt[zeichen])
           summe++;
     return summe; } }

Aufgabe 3

public class KnopfPiepst extends java.awt.Frame {
       public KnopfPiepst() {
              java.awt.Button knopf = new java.awt.Button("Piepst");
             add(knopf);
             knopf.addActionListener(new java.awt.event.ActionListener() {
                     public void actionPerformed(java.awt.event.ActionEvent e) {
                           java.awt.Toolkit.getDefaultToolkit().beep(); }}); }

Aufgabe 4.

(   )     Richtig            Globale Variablen heißen global, weil sie außerhalb von Klassen vereinbart werden.
(X)     Falsch

Grund: In Java wird alles in Klassen vereinbart.

(   )     Richtig            Eine static-Variable kann in einer Methode vereinbart werden.
(X)     Falsch            

Grund: Nur globale Variablen können static sein.

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

Grund: z.B. nach zwei Zuweisungen

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

Grund: von dort übernimmt er die Dokumentationskommentare

(X)     Richtig            Wenn die Anzahl der Wiederholungen zu Programmierungszeit bekannt ist,
(   )     Falsch             kann keine Zählschleife verwendet werden.

Grund: dann ist die Anzahl der Wiederholungen auch vor dem Eintritt in die Schleife bekannt

(   )     Richtig            Implizite Konvertierung zwischen primitiven Variablen ist immer möglich,
(X)     Falsch             wenn die Quelle kleiner oder gleich ist (weniger oder gleichviele Bits hat) als das Ziel.

Grund: unterschiedliche Wertebereiche sind möglich, z.B. char und short

(   )     Richtig            Eine aufgerufene Methode muss in der Klasse des Objekts vereinbart werden,
(X)     Falsch             für welches sie aufgerufen wird.

Grund: kann auch in der Oberklasse

(   )     Richtig            Die Ordnungsoperatoren <, <=, > und >= sind in Java für Operanden aller Typen definiert.
(X)     Falsch            

Grund: nur für arithmetische Typen

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; }