OO - Objektorientierte Programmierung

Theoriemix Fragen aus den vergangenen OO-Prüfungen. HSR Hochschule für Technik Rapperswil.

Theoriemix Fragen aus den vergangenen OO-Prüfungen. HSR Hochschule für Technik Rapperswil.


N. S.
Diese Lernkarten behandeln grundlegende und fortgeschrittene Konzepte der objektorientierten Programmierung (OOP) auf Universitätsniveau. Sie decken Themen wie Methoden, Klassen, Objekte, Typen, und Deklarationen ab, wobei der Fokus auf der Implementierung und dem Verständnis von Code liegt. Die Karteikarten sind besonders nützlich für Studierende der Informatik, die ihre Kenntnisse in OOP vertiefen und praktische Beispiele sowie Erklärungen zu komplexen Konzepten wie Method Overloading und Overriding benötigen.
Karten
58
Lernende
1
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
23.06.2016 / 27.06.2016

Lernkarten

Ausdruck: s * 1

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: 1
Ergebnistyp: short

Ausdruck: i++

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: 2
Ergebnistyp: int

Ausdruck: --f

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: 2.0f
Ergebnistyp: float

Ausdruck: -3 / 2

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: -1
Ergebnistyp: int

Ausdruck: 1.0f + 2 / 0

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: ArithmeticException Div by Zero
Ergebnistyp: -

Ausdruck: a != 0 && b / a > 1

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: false
Ergebnistyp: boolean

Ausdruck: b / a > 1 && a != 0

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: ArithmeticExcpetion Div by Zero
Ergebnistyp: -

Ausdruck: x && y || !x && !y

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: false
Ergebnistyp: boolean

Ausdruck: (long)i == i

---

Gegeben sind diese Deklarationen:
short s = 1; int i = 2; float f = 3;
int a = 0, b = 1;
boolean x = true, y = false;

Ergebniswert: true
Ergebnistyp: boolean

Wieso sind Vergleiche mit == und != bei folgenden Typen problematisch? Erklären Sie den Grund.

Typ: Gleitkommazahlen (float, double)?
 

Numerische Fehler bei Gleitkommazahlen werden nicht berücksichtigt, z.B. 3 * 0.1 != 0.3.

Wieso sind Vergleiche mit == und != bei folgenden Typen problematisch? Erklären Sie den Grund.

Typ: String?

Zwei gleiche Texte können in verschiedenen String-Objekten gespeichert sein und == prüft nur Referenzgleichheit, z.B. "A" != new String("A").

Nenne Typen, bei denen der Vergleich mit == bzw. != problematisch ist. Und erkläre warum.

  • Gleitkommazahlen (float, double)
  • String
  • Wrapper Types

Erklärungen: 

  • Gleitkommazahlen (float, double): Numerische Fehler bei Gleitkommazahlen werden nicht berücksichtigt, z.B. 3 * 0.1 != 0.3.
  • String: Zwei gleiche Texte können in verschiedenen String-Objekten gespeichert sein und == prüft nur Referenzgleichheit, z.B. "A" != new String("A").
  • Wrapper Types, z.B. Boolean, Character, Byte, Short, Integer, Long, Float und Double. Auch hier können gleiche Werte in verschiedenen Wrapper-Objekten gespeichert, so dass == (Referenzvergleich) dann false ergibt.

Betrachten Sie folgende Deklarationen. (Siehe Bild):

Base a = new Sub();
Sub b = new Sub();

Welche Methode wird mit b.matches(a) aufgerufen? Was wird hier benutzt (Mehrfachnennung erlaubt)?

Betrachten Sie folgende Deklarationen. (Siehe Bild):

Base a = new Sub();
Sub b = new Sub();

Welche Methode wird mit a.matches(b) aufgerufen? Was wird hier benutzt (Mehrfachnennung erlaubt)?

Welche Ausgaben bewirken untenstehende Aufrufe? Was resultieren die Aufrufe?

Siehe Bild

NullPointerException ist eine Sub-Klasse von ?

RuntimeException

Ein ungültiger Array-Index-Zugriff verursacht die ?, welche auch eine Sub-Klasse von ? ist.

  1. ArrayIndexOutOfBoundsException
  2. RuntimeException

Implementieren Sie das Comparable-Interface für die Klasse Pair. Zwei Paare sollen primär nach deren ersten Komponenten (first) verglichen werden und sekundär nach der zweiten Komponente (second). Sie dürfen den Code ergänzen und abändern.

Siehe Bild.

Lernen