Title: Standard für Selbsttest Rekapitulation 1
Course: JAVA lernen und anwenden

Standardkategorie für Fragen, die im Kontext 'Selbsttest Rekapitulation 1' freigegeben sind.

Feedback shared by this category's questions, if right: Die Antwort ist richtig.
Feedback shared by this category's questions, if partly right: Die Antwort ist teilweise richtig.
Feedback shared by this category's questions, if wrong: Die Antwort ist falsch.

Q: Womit kann man Text in der Konsole ausgeben?
- System.programm.out.println("");
- System.programm.print("");
- System.out.print("");
- System.out.println("");
A: System.out.println("");

Q: Was ist eine Variable in Java?
- Ein Wert, der sich während der Ausführung des Programms ändern kann. (Eine Variable in Java ist ein Speicherplatz, der dazu dient, Werte während der Programmausführung zu speichern und zu verändern.)
- Eine Konstante, die während der Laufzeit des Programms festgelegt wird. (Eine Variable kann ihren Wert ändern, während eine Konstante einen festen Wert besitzt, der nicht verändert werden kann. Konstanten hätten das Schlüsselwort const, wozu wir später noch mal kommen.)
- Ein Datentyp, der nur in Methoden verwendet werden kann. (Eine Variable kann in verschiedenen Teilen des Codes verwendet werden, nicht nur in Methoden. Der Datentyp einer Variable kann (!) jedoch innerhalb einer Methode festgelegt werden.)
A: Ein Wert, der sich während der Ausführung des Programms ändern kann.

Q: Was ist ein Objekt in Java?
- Eine Variable, die keinen Wert enthält. (Ein Objekt ist keine Variable, sondern eine Instanz einer Klasse, die Daten und Verhalten zusammenfasst. Ein Objekt kann aber einer Variable zugewiesen werden.)
- Eine Instanz einer Klasse. (In Java wird ein Objekt durch Instanziierung einer Klasse erzeugt. Es repräsentiert eine spezifische Instanz oder ein Exemplar der Klasse und enthält Daten und Methoden, die in der Klasse definiert sind.)
- Ein Wert, der von einer Methode zurückgegeben wird. (Ein Objekt kann von einer Methode zurückgegeben werden, aber es ist nicht auf den Rückgabewert einer Methode beschränkt. Es handelt sich um eine Datenstruktur, die Eigenschaften und Verhalten vereint.)
A: Eine Instanz einer Klasse.

Q: Welche Art von Rückgabewert sollte man wählen, wenn man nicht möchte, dass etwas zurückgegeben wird?
- void (Void ist der richtige Rückgabewert, da es die Übersetzung "leer" oder "ohne Wert" repräsentiert und angibt, dass eine Methode keine Rückgabewerte zurückgibt.)
- public void (Nur void ist der Rückgabewert, der gewählt werden sollte. Das Schlüsselwort public bezieht sich auf die Sichtbarkeit der Methode, eine Eigenschaft, die wir in späteren Kapiteln besprechen werden.)
- null (null ist kein Rückgabetyp, da "null" eine spezielle Konstante in Java ist, die verwendet wird, um anzuzeigen, dass eine Variable oder ein Ausdruck keinen gültigen Wert oder keine Referenz auf ein Objekt enthält.)
- notype (Diesen Typ gibt es in Java nicht.)
A: void

Q: Welche der folgenden Aussagen über Klassen und Objekte in Java sind korrekt? (Eine oder mehrere Antworten sind korrekt)
- Eine Klasse ist eine abstrakte Vorlage, während ein Objekt eine konkrete Instanz dieser Klasse ist.
- Objekte, also Instanzen einer Klasse, können sowohl außerhalb als auch innerhalb einer Klasse existieren. (Die Definition eines Objektes ist, dass es aus einer Klasse instanziiert wird und damit außerhalb der Klasse exisitiert, aber die Werte (Attribute und Methoden) der Klasse dort außerhalb vertritt.)
- Eine Klasse kann mehrere Objekte erzeugen, während ein Objekt nur einer Klasse angehören kann. (Eine Klasse kann verwendet werden, um beliebig viele Objekte oder Instanzen zu erzeugen. Jedes Objekt gehört jedoch zu einer bestimmten Klasse und ist eine Instanz dieser Klasse.)
- Innerhalb einer Klasse kannst du auf alle ihre Variablen zugreifen, außerhalb ist das nur möglich, wenn du Methoden schreibst, die dir den Wert der Variablen zurückgeben. (Du kannst auf Variablen mit dem Punkt-Accessor über ein Objekt der Klasse zugreifen, wenn du dich nicht in der Klasse befindest (bspw. ronja.battery))
A: Eine Klasse ist eine abstrakte Vorlage, während ein Objekt eine konkrete Instanz dieser Klasse ist.; Eine Klasse kann mehrere Objekte erzeugen, während ein Objekt nur einer Klasse angehören kann.

Q: Welche Aussagen zur objekt-orientierten Programmierung (OOP) sind richtig?
- Mehrere Objekte, die aus derselben Klasse instanziiert wurden, können sich in ihrem Verhalten unterscheiden.
- Es ist nicht möglich, mehrere Objekte aus einer Klasse zu instanziieren.
- Mehrere Objekte, die aus derselben Klasse instanziiert wurden, können sich in ihrem Zustand unterscheiden.
- Alle Objekte, die aus derselben Klasse instanziiert wurden, sind per Definition absolut identisch.
A: Mehrere Objekte, die aus derselben Klasse instanziiert wurden, können sich in ihrem Verhalten unterscheiden.; Mehrere Objekte, die aus derselben Klasse instanziiert wurden, können sich in ihrem Zustand unterscheiden.

Q: Welche der folgenden Elemente müssen bei jeder Deklaration einer Variablen explizit angegeben werden?
- Wertzuweisung (Dieser wird erst bei der Initialisierung zugewiesen, oder zusammengesetzt mit der Deklaration bei der Definition.)
- Lebensdauer im Programm
- Datentyp
- Eindeutiger Bezeichner
A: Datentyp; Eindeutiger Bezeichner

Q: Welches der folgenden Code-Beispiele wird den String Hallo, Ich bin Duke. Von 2015 bis 2019, habe ich durchschnittlich 5.4 Fälle pro Jahr gelöst ausgeben?
- int start = 2014; int end = 2019; int cases = 27; System.out.println("Hallo, Ich bin Duke. Von " + start + " bis " + end + ", habe ich durchschnittlich " + (cases / (end - start))+ " Fälle pro Jahr gelöst"); (Hier sind sämtliche Variablen vertauscht, sodass nicht das Gewünschte errechnet wird. Außerdem sind alle Variablen vom Typ int, wodurch das Ergebnis einer Operation auf diesen Variablen auch vom Typ int ist.)
- int years = 5; int cases = 27; System.out.println("Hallo, Ich bin Duke. Von 2014 bis 2019, habe ich durchschnittlich " + (cases/years) + " Fälle pro Jahr gelöst"); (Da years und cases vom Typ int sind, wird auch das Ergebnis einer Operationen auf diesen Variablen vom Typ int sein, es sei denn es wird umgewandelt (was hier nicht der Fall ist).)
- int start = 2014; int end = 2019; double cases = 27; System.out.println("Hallo, Ich bin Duke. Von " + start + " bis " + end + ", habe ich durchschnittlich " +(cases / (end - start)) + " Fälle pro Jahr gelöst");
- int start = 2014; int end = 2019; int cases = 27; System.out.println("Hallo, Ich bin Duke. Von " + start + " bis " + end + ", habe ich durchschnittlich " + (cases / end - start) + " Fälle pro Jahr gelöst"); (Hier sind alle Variabeln vom Typ int, was dazu führt, dass auch Operationen auf diesen Variablen vom Typ sein werden, es sei denn, sie verwenden umgewandelt, was hier nicht der Fall ist. Daher wird der Wert, der theoretisch hinter dem Komma steht, abgeschnitten und das Ergebenis ist nur 5.)
A: int start = 2014; int end = 2019; double cases = 27; System.out.println("Hallo, Ich bin Duke. Von " + start + " bis " + end + ", habe ich durchschnittlich " +(cases / (end - start)) + " Fälle pro Jahr gelöst");

Q: Der folgenden Java-Code hat als Ergebnis für x den Wert 42. Wähle die richtige Begründung aus.

int a = 550;
int b = 13;
int x = a / b;
- In Java werden grundsätzlich alle Rechenergebnisse abgerundet.
- Laut Douglas Adams ist die 42 die Antwort auf alle wichtigen Fragen des Universums. (Generell natürlich richtig. Aber... ist das hier eine der wichtigen Fragen des Universums?)
- 13 * 42 = 550, also ist 550/13 = 42.
- Eigentlich hat 550 geteilt durch 13 das Ergebnis 42.307...Da aber sowohl a als auch b den Datentyp int haben, führt Java hier eine Integerdivision durch. Die 13 passt 42 mal in die 550, es bleibt ein Rest von 4.
A: Eigentlich hat 550 geteilt durch 13 das Ergebnis 42.307...Da aber sowohl a als auch b den Datentyp int haben, führt Java hier eine Integerdivision durch. Die 13 passt 42 mal in die 550, es bleibt ein Rest von 4.

Q: Seht euch die folgende Java-Klasse genau an. Welche der Antworten sind in Bezug auf diese Klasse richtig?

void Robot {
    String color = "Rot";
}
- Der Code ist korrekt und und wäre so als Teil eines Programms lauffähig.
- Das keyword zum Erzeugen einer Klasse ist class nicht void. So wie der Code ist, würde ein Fehler erzeugt werden.
- Wenn der Fehler behoben ist, werden alle Objekte, die anhand dieser Klasse erzeugt werden, den Farbwert (color) "Rot" haben.Richtige Antwort
- Der gegebene Code is keine richtige Klassendefinition weil die Klasse keine Methoden enthält. Für alle Klassen muss immer der Zustand und das Verhalten definiert werden. Eine Klasse ohne Methoden kann es nicht geben. (Zwingend muss eine Klasse gar nichts enthalten.)
A: Das keyword zum Erzeugen einer Klasse ist class nicht void. So wie der Code ist, würde ein Fehler erzeugt werden.; Wenn der Fehler behoben ist, werden alle Objekte, die anhand dieser Klasse erzeugt werden, den Farbwert (color) "Rot" haben.Richtige Antwort

Q: Die Klassen der folgenden Fragen ergeben zusammen ein kleines Java Programm. Das erwartete Verhalten des Programms ist, dass uns das Programm sagt (auf der Konsole ausgibt) was Duke für ein Auto fährt. Bitte wählt aus den Antworten die Anweisungen aus, die dazu führen, dass das Programm das gewünschte Verhalten erzeugt.Schaut euch dazu auch die andere, in der folgenden Aufgabe definierte, Klasse an. Fangen wir mal mit der Klasse Story an.

class Story {
    public static void main(String[] args) {
        Car dm = new Car();
        //select one of the options to insert here
    }
}
- System.out.println( "Duke rides a " dm.description() );
- System.out.println( "Duke rides a " + dm.getDescription() );
- System.out.println( "Duke rides a " dm.description() )
- System.out.println( "Duke rides a " + dm.getDescription() ) (Es fehlt das Semikolon.)
A: System.out.println( "Duke rides a " + dm.getDescription() );

Q: Nun zur Klasse Car. Bitte wählt aus den Antworten wieder die Anweisungen aus, die dazu führen, dass das Programm das (in der vorhergehenden Frage definierte) gewünschte Verhalten erzeugt.

class Car {
    int age = 10;
    String model = "Dukemobile";

    String getDescription() {
        //select one of the options to insert here
    }
}
- return model + ": " + age + " years old";
- System.out.println(model + ": " + age + " years old"); (Nicht das Verhalten, was wir wollen.)
- model + ": " + age + " years old";
- return age;
A: return model + ": " + age + " years old";

Q: Nehmen wir an, wir hätten eine Klasse Detective, damit uns Duke selbst sagen kann, welches Auto er fährt. Bitte wähle aus den Antworten wieder diejenige Anweisung aus, die dazu führt, dass das Programm das zuvor definierte, gewünschte Verhalten erzeugt.

class Detective {
    Car myCar = new Car();

    void answer() {
        //select one of the options to insert here
    }
}
- System.out.println("I drive a " + dm.description());
- System.out.println("I drive a " + myCar.getDescription())
- System.out.println("I drive a " + myCar.getDescription());
- return "I drive a " + myCar.getDescription();
A: System.out.println("I drive a " + myCar.getDescription());