Verständnisfragen 23.September2013

Aus ProgrammingWiki

Inhaltsverzeichnis

Frage 1

Was geschieht, wenn das folgende Java-Programm kompiliert und bei Erfolg gestartet wird ?

public class Q { 
     public static void main(String argv[]) { 
        int intArray[] = new int [5]; 
        System.out.println(intArray[0]); 
    } 
}  

a. Das Übersetzen schlägt bereits fehl.

b. Es tritt ein Laufzeitfehler auf.

c. Das Wort „Null“ wird ausgegeben.

d. Die Zahl 0 wird ausgegeben.

e. Die Zahl 5 wird ausgegeben.

Frage 2

Welche der folgenden Worte sind Modifier ?

a. class

b. void

c. public

d. static

e. return

Frage 3

Wie kann man in einer Klasse eine Variable vom Typ int deklarieren, so dass sie von überall her zugänglich ist und man keine Objektreferenz benötigt, um auf sie zuzugreifen ?

a. public int i;

b. private int i;

c. protected int i;

d. private static int i;

e. public static int i;

Frage 4

Betrachten Sie den folgenden Programmcode. Auf welche Weise können die Variablen MAX und CLASS_GUID initialisiert werden ?

class Widget 
{ 
    static int MAX;                   // Zeile 1 
    static final String CLASS_GUID;   // Zeile 2 

    Widget() { 
        // Zeile 3 
    } 

    Widget(int k) { 
        // Zeile 4 
    } 
} 

a. Die Zeilen 1 und 2 ändern zu:

   static int MAX = 111; 
   static final String CLASS_GUID = "XYZ123";

b. Die folgenden Zeilen sowohl nach Zeile 3 als auch nach Zeile 4 einfügen:

   MAX = 111; 
   CLASS_GUID = "XYZ123";

c. Die folgenden Zeilen nur nach Zeile 3 einfügen:

   MAX = 111; 
   CLASS_GUID = "XYZ123";

Frage 5

Welche der folgenden Aussagen über den Standard-Konstruktor einer Klasse sind richtig ?

a. Der Standard-Konstruktor wird automatisch vom Compiler erzeugt, falls für die Klasse keine Konstruktoren angegeben sind.

b. Der Standard-Konstruktor initialisiert sowohl Instanz- als auch Klassenvariablen.

c. Der Standard-Konstruktor wird vom Compiler automatisch erzeugt, falls für die Klasse nur Konstruktoren mit Parametern angegeben sind.

d. Der Standard-Konstruktor hat keine Parameter.

Frage 6

Was passiert beim Übersetzen der folgenden Datei ?

import java. util.*; 
package test; 
public class TestClass { 
   public OtherClass oc = new OtherClass(); 
} 

class OtherClass { 
    int value; 
} 
 

a. Das Kompilieren scheitert, da die Klasse OtherClass benutzt wird, bevor sie definiert ist.

b. Das Kompilieren scheitert, da jede Klasse in einer eigenen Datei definiert werden muss.

c. Das Kompilieren scheitert, da die package-Anweisung niemals nach den import-Anweisungen stehen darf .

d. Die Datei ist in Ordnung.

Frage 7

In welchen der genannten Fälle einer Variablendeklaration bleibt die Variable uninitialisiert, wenn sie nicht explizit initialisiert wird ?

a. Deklaration einer Instanzvariable vom Typ int.

b. Deklaration einer Klassenvariable vom Typ float.

c. Deklaration einer lokalen Variable vom Typ float.

d. Deklaration einer Klassenvariable vom Typ Object.

e. Deklaration einer Instanzvariable vom Typ Object.

Frage 8

Was passiert beim Übersetzen der folgenden Klasse ?

 public class Max { 
    public int max(int a, int b) { 
       return ... ; 
    } 
    public double max(double a, double b) { 
        return ... ; 
    } 
} 
 

(Anmerkung: Es soll angenommen werden, dass die hier ausgelassenen, mit „...“ gekennzeichneten Teile keine Fehler enthalten.)

a. Das Übersetzen schlägt fehl, weil zwei Methoden den gleiche Namen haben.

b. Das Übersetzen schlägt fehl, weil die Parameter der beiden gleichnamigen Methoden auch die gleichen Namen haben.

c. Das Übersetzen schlägt fehl, weil der Rückgabetyp der beiden gleichnamigen Methoden nicht gleich ist.

d. Das Übersetzen gelingt, da hier ein korrektes Überladen von Methoden stattfindet.

Frage 9

Was passiert beim Übersetzen der folgenden Klasse ?

public class Test { 
    public Test(String s) { 
        ... 
    } 
    public void test() { 
        ... 
    } 
    public static void main(String[] args) { 
        Test t = new Test(); 
        t.test(); 
   } 
} 
 

(Anmerkung: Es soll angenommen werden, dass die hier ausgelassenen, mit „...“ gekennzeichneten Teile keine Fehler enthalten.)

a. Das Übersetzen schlägt fehl, weil eine Methode den gleichen Namen wie der Konstruktor hat.

b. Das Übersetzen schlägt fehl, weil dem Konstruktor der Rückgabetyp fehlt.

c. Das Übersetzen schlägt fehl, weil der mit new verwendete Konstruktor nicht existiert.

d. Die Klasse kann fehlerfrei übersetzt werden.

Frage 10

Welchen Fehler weist der folgende Programmausschnitt auf ?

    ... 
    { 
        String[] sArray = { "Anja", "Peter", "Klaus" }; 
        // irgendwelche Anweisungen, die hier keine Rolle spielen ... 
        sArray = { "Dieter", "Ariane", "Michael" }; 
    } 
   ... 
 

a. Vor den geschweiften Klammern fehlt der Operator new.

b. In den eckigen Klammern muss die Länge 3 angegeben werden.

c. Das Setzen der Werte der Array-Elemente über die Kurzschreibweise ist nur bei der Initialisierung möglich, aber nicht bei einer einfachen Zuweisung.

d. Es liegt kein Fehler vor.

Frage 11

Welche Zahlenfolge gibt das folgende Programm aus ?

public class ArrayTest { 
     public static void main(String [] args) { 
         int [] iArray = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; 
         System.out.println(iArray[4]); 
         iArray = new int[20]; 
        System.out.println(iArray[4]); 
     } 
}  

a. Gar keine, denn es lässt sich wegen eines Fehlers nicht übersetzen.

b. 6, 0

c. 6, 6

d. 7, 0

e. 7, 7

Frage 12

Welche der folgenden Worte sind Modifier ?

a. main

b. boolean

c. private

d. String

e. protected

Frage 13

Woran erkennt man in Java die Deklaration einer Methode ?

a. Daran, dass der Name mit set... oder get... beginnt.

b. An der Kleinschreibung des Namens.

c. An den runden Klammern hinter dem Methodennamen.

d. An dem Access-Modifier vor dem Methodennamen.

Frage 14

Welche der folgenden Initialisierungen führen in einem Java-Programm zu einem Fehler beim Kompilieren ?

a. int intArray[] = new int[10];

b. int[] intArray = new int[10];

c. double doubleArray = new double[10];

d. byte byteArray[] = new int[12];

e. int twoDim[][] = new int[][7];