Klausurfragen - Teil 3 Flashcards
(12 cards)
Erklären Sie Schlüsselwort final in der Variablendeklaration
- final bei Variablen bedeutet, dass eine Variable nur einmal einen Wert zugewiesen bekommen kann.
- Primitive Datentypen: Der Wert kann nicht geändert werden.
- Objektreferenzen: Die Referenz bleibt unveränderlich, aber das Objekt selbst kann geändert werden
Was bedeutet die Aussage: “Strings sind immutable”?
“Strings sind immutable” bedeutet, dass ein einmal erstelltes String-Objekt nicht verändert werden kann.
Deklarieren Sie einen zwei-dimensionalen Array.Datentyp von Integer-Zahlen mit 3 Zeilen und
2 Spalten, und speichern Sie eine beliebige Integer-Zahl an die linke obere Stelle
‘’’
int[][] array = new int[3][2]; // 3 Zeilen, 2 Spalten
array[0][0] = 42; // Speichert eine beliebige Zahl an die linke obere Stelle
‘’’
Was sind die charakterisierenden Eigenschaften einer Objektorientierung?
- Kapselung (Encapsulation)
- Vererbung (Inheritance)
- Polymorphie (Polymorphism)
- Abstraktion (Abstraction)
In Java kann eine Klasse nur von einer anderen Klasse erben (im Gegensatz zu C++).
Nenne Vor- und Nachteile.
Vorteile:
- Kein Diamond-Problem
- Einfachere Wartung und Lesbarkeit
- Weniger Fehler durch komplexe Vererbungen
Nachteile:
- Weniger Flexibilität
- Erfordert Interfaces oder Komposition als Workarounds
Was versteht man unter Up- bzw. Down-Casting?
Up-Casting:
- Unterklasse -> Oberklasse (automatisch möglich)
- Beispiel:
‘’’
Buch buch = new Buch();
Medium medium = buch; // Up-Cast
‘’’
Down-Casting:
- Oberklasse -> Unterklasse (muss explizit gecastet werden)
- Beispiel:
‘’’
Medium medium = new Buch();
Buch buch = (Buch) medium; // Down-Cast
‘’’
Was ist eine abstrakte Methode und was ist eine abstrakte Klasse?
- Abstrakte Methode: Eine Methode ohne Implementierung, die in Unterklassen überschrieben werden muss.
- Beispiel:
‘’’
abstract class Tier {
abstract void makeSound(); // Keine Implementierung
}
‘’’ - Abstrakte Klasse: Eine Klasse, die nicht direkt instanziiert werden kann.
- Beispiel:
‘’’
abstract class Tier {
abstract void makeSound();
void sleep() { System.out.println(“Schlafen”); } // Konkrete Methode
}
‘’’
Nennen Sie 4 charakterisierende Merkmale von Interfaces
- Abstrakte Methoden
- Mehrfachvererbung möglich
- Enthalten nur Konstanten
- Seit Java 8: Default und statische Methoden
Wie sieht der Header der Equals Methode aus?
public boolean equals(Object obj)
Weiteres Beispiel:
‘’’
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // Prüft Referenzgleichheit
if (obj == null || getClass() != obj.getClass()) return false; // Prüft Typ
MyClass other = (MyClass) obj;
return this.value == other.value; // Vergleicht Werte
}
‘’’
Wie sieht der Header der HashCode Methode aus?
public int hashCode()
Weiteres Beispiel:
‘’’
@Override
public int hashCode() {
return Objects.hash(value1, value2); // Erzeugt Hash basierend auf Attributen
}
‘’’
Schreibe ein try-with-resources statement
‘’’
try (BufferedReader reader = new BufferedReader(new FileReader(“datei.txt”))) {
String line = reader.readLine();
System.out.println(line);
} catch (IOException e) {
e.printStackTrace();
}
‘’’
was ist f?
float d = 2.345F;
int e = (int) d;
float f = (float) e;
- float d = 2.345F;
→ d speichert 2.345 als float. - int e = (int) d;
→ Casting von float zu int entfernt die Nachkommastellen.
→ e wird 2 (keine Rundung, sondern Abrunden). - float f = (float) e;
→ e wird zurück in float konvertiert.
→ f = 2.0F.
Ergebnis:
f hat den Wert 2.0F.