Anhang B: Übungsaufgaben

Die Übungsaufgaben in diesem Kapitel sollten am besten unter Zuhilfenahme der API-Dokumentation und des Compilers gelöst werden.


[ B.1 ], [ B.2 ], [ B.3 ], [ © ]

B.1. Multiple choice

Kreuzen Sie die korrekten Alternativen an. Es ist mindestens eine richtig.
  1. Welcher Befehl dient dazu, die fertig übersetzte Application "test" auszuführen?
    javac test.java
    java test.class
    java test
    java TEST

  2. Was ist ein gültiger Dateiname für eine Quelldatei, die die öffentlich Klasse "Config" enthält?
    test.java
    config.java
    Config.java
    Config.jav
    config.c

  3. Welches sind in Java gültige Bezeichner?
    störung
    double
    counter
    $test$
    %init
    _count
    "var"
    f22
    2x

  4. Welcher Ausdruck legt ein neues String-Objekt an und initialisiert es?
    String st="Dies ist ein Test.";
    String st=new String("Dies ist ein Test.");
    String st=new String("ein "+"test");
    String st;
    String st=null;

  5. Welcher Ausdruck legt eine Variable vom Typ int an und initialisiert sie?
    int i=new int(53);
    int i=25;
    int i=new int(4.2);
    int i=8+5;
    int i;

  6. Was sind gültige Datentypen in Java?
    int
    String
    byte
    word
    boolean
    File
    Double
    char
    Integer
    long

  7. Welche der folgenden Schleifen wird genau zehnmal ausgeführt?
    for (int i=0; i<10; i++) {}
    int i=11; while (--i>0) {}
    for (int i=1; i<=10; i++) {}
    for (int i=1; i<10; i++) {}
    int j=11; do { j--; } while (j>1);
    for (int k=0; k<13; k++) { if (k==9) break; }

B.2. Wahr oder falsch?

Diese Aufgaben können Sie auch über das WWW lösen. Klicken Sie hier hin, um Ihr Wissen über Java zu testen.
Entscheiden Sie sich, ob Sie den folgenden Aussagen zustimmen (wahr), oder nicht (falsch).

  1. Java ist eine Interpretersprache, d.h. der Quelltext wird während der Ausführung in Maschinenbefehle umgesetzt.
    wahr falsch

  2. Java ist wie C++ eine objektorientierte, höhere Programmiersprache.
    wahr falsch

  3. Bei der Eingabe eines Java-Programmes muß man darauf achten, keine zusätzlichen Zeilenumbrüche oder Leerzeichen zwischen den Befehlen einzufügen, da es sonst zu Fehlern kommen kann.
    wahr falsch

  4. Wenn die Kapazität eines "int" (32 bit) nicht ausreicht, kann man mit der Vorsilbe "long" einen 64 bit "long int" Datentypen vereinbaren.
    wahr falsch

  5. In Java kann man wegen der Einschränkungen des hier verwendeten ASCII- Zeichensatzes nicht alle nationalen Sonderzeichen verwenden.
    wahr falsch

  6. Wenn ein Java-Programm keine "import"-Befehle enthält, benötigt es keine anderen Packages und kann ohne die Standardklassen ausgeführt werden.
    wahr falsch

  7. Nach dem Übersetzen durch den Compiler wird das Java-Programm mit seinen Bibliotheken zu einer ausführbaren Datei (z.B. "test.exe") zusammengelinkt.
    wahr falsch

  8. Die in der Hauptklasse einer Application befindliche main-Methode muß zwingend als static deklariert werden, damit sie trotz einer beliebigen Anzahl von Instanzen nur einmal existiert.
    wahr falsch

  9. In einer Klasse als "private" deklarierte Methoden können ausschließlich von der Klasse selbst und deren Subklassen, nicht aber von solchen, die eine Instanz der Klasse nutzen, aufgerufen werden.
    wahr falsch

  10. Eine Klasse kann nur dann gleichzeitig "abstract" und "final" sein, wenn in Subklassen keine ihrer Methoden überschrieben wird.
    wahr falsch

  11. Der Befehl "i+=1" ist identisch mit den Befehlen "i++", "++i", "i=i+1" und "i-=-1". (Hierbei soll es sich um alleinstehende Befehle und nicht um Ausdrücke innerhalb eines Befehls handeln.)
    wahr falsch

  12. Im Unterschied zu C++ sind Strings in Java keine aus chars zusammengesetzten Felder, sondern vollwertige Objekte.
    wahr falsch

  13. Man kann Zeichenketten mit dem "+"-Operator verknüpfen.
    wahr falsch

  14. Greift man bei Feldern auf Elemente außerhalb des definierten Bereiches zu, kann das zu unvorhergesehenen Resultaten führen.
    wahr falsch

  15. Mit Applications kann man weder Benutzeroberflächen noch Menüs, o.ä. darstellen.
    wahr falsch

  16. Applications können auf beliebige lokale oder Netzressourcen zugreifen, soweit der Benutzer den nötigen Zugang dazu hat.
    wahr falsch

  17. Zur Ausführung von Applets benötigt man einen Java-kompatiblen WWW-Browser.
    wahr falsch

  18. Wird einer Methode eine Variable als Argument übergeben, so arbeitet diese mit einer lokalen Kopie der Variable.
    wahr falsch

  19. Wenn die Variable "i" vom Typ "int" ist, erzeugt folgender Ausdruck einen Compilerfehler: "if(i);".
    wahr falsch

  20. Eine Variable vom Typ "int" kann verlustfrei in den Typ "float" umgewandelt werden.
    wahr falsch

  21. Wenn man beim Aufruf einer Methode die Klammern hinter dem Namen wegläßt, wird diese wie eine Variable behandelt.
    wahr falsch

  22. Wenn eine Klasse eine Methode ihrer Superklasse überschreibt, kann sie auf die überschriebene Methode der Superklasse nicht mehr zugreifen.
    wahr falsch

  23. Wenn man vergißt, angeforderten Speicher bei Beenden eines Java-Programmes wieder freizugeben, kann das System aufgrund der nicht zugeordneten Ressourcen instabil werden.
    wahr falsch

  24. Ein "switch"-Block führt je nach Inhalt einer beliebigen Variable unterschiedlichen Programmcode aus.
    wahr falsch

  25. Mit einem "try"- und einem darauffolgenden "catch"-Block kann man gezielt Ausnahmen (Exceptions) behandeln.
    wahr falsch

  26. Eine Zuweisung, z.B. "a=25", liefert als "Nebenwirkung" den zugewiesenen Wert zurück.
    wahr falsch


B.3. Aufgaben

Die folgenden Aufgaben haben individuelle Aufgabenstellungen.
  1. Beschreiben Sie die Funktion jeder Zeile dieses einfachen Java-Programmes!
    /* eigentlich unnötig */   import java.lang.*;
    class hallo {
      public static void main(String argv[]) {
        System.out.println(argv.length);
      }
    }
    

  2. Schreiben Sie hinter jede Zeile das Ergebnis des jeweiligen Ausdruckes und dessen Datentyp! Verwenden Sie dabei die hexadezimale Schreibweise. Die Variable a wurde bereits als int vereinbart. Beispiel: int, 0x3F
    a = 0x1F ^ 0x27
    a ==(0xB8 & 0x7B)
    a ^= 0x21 | 0x4C

  3. Schreiben Sie hinter jede Zeile das Ergebnis des jeweiligen Ausdruckes (dezimal)! Die Variable a wurde bereits als int vereinbart.
    a = 12 % 10
    a *= 4
    a = ++a/3

  4. Schreiben Sie hinter jede Zeile das Ergebnis des jeweiligen Ausdruckes und dessen Datentyp!
    true&&(false||!false)
    12/4
    0x1F==31

  5. Schreiben Sie ein Programm was bei Eingabe einer englischen Zahl die entsprechende Ordnungszahl, z.B.: Eingabe "seven", Ausgabe "seventh", ausgibt. Berücksichtigen Sie dabei die Sonderfälle sowie Klein- und Großschreibung.

  6. Entwerfen Sie eine Klasse zur Verwaltung eines Bildpunktes. Ein Hauptprogramm soll den Punkt in verschiedenen Farben setzen, verschieben und löschen, sowie seine aktuelle Position erfragen können. Denken Sie daran, daß der Zugriff auf die Koordinaten nur über geeignete Methoden möglich sein soll. Die eigentliche Bildausgabe ist nicht nötig, dafür kann Pseudocode verwendet werden.

  7. In Ihrem Unternehmen soll ein Herstellungsprozess mit Hilfe einer Skriptdatei gesteuert werden. Diese Datei hat die folgende Form:

    [Überschrift] // z.B. Gültigkeitsbereich, beliebiger Name in eckigen Klammern
    ;Kommentar // durch Semikolon eingeleitete Zeilen sind Kommentare
    Parameter=Wert // z.B. Geschwindigkeit=125

    Sie sollen zuerst eine Methode schreiben, die zurückliefert, um was es sich bei einer übergebenen Zeichenkette handelt. Definieren Sie sich vorher alle möglichen Zustände klassenweit als Konstanten. Überlegen Sie sich nun, welche Abfragefunktionen sinnvoll wären. Für Fortgeschrittene: ein Parameter kann auch mehrere, durch Kommas getrennte Werte haben.


    «« [ Inhalt ] »»

    Copyright für Texte, Programme und Design 1997 by Dirk Schönfuß
    WWW: http://rcswww.urz.tu-dresden.de/~schoenfu
    e-mail: schoenfu@rcs.urz.tu-dresden.de