Klausur Flashcards

1
Q

Was ist ein Java-Compiler und was ist ein Java-Interpreter?

A

Java Compiler: Übersetzt den im Editor eingetippten Java-Quellcode in Java-Bytecode.

Java Interpreter: führt den Java-Bytecode auf der jeweiligen Rechner-Plattform aus. Hierzu übersetzt der Java-Interpreter den Java-Bytecode in Maschinencode und bringt diesen direkt zur Ausführung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist java und was ist javac?

A

Java ist eine objektorientierte Programmiersprache, während “javac” der Java-Compiler ist, der den Java-Quellcode in ausführbaren Bytecode übersetzt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist ein JDK und was ist eine JRE?

A

Ein JDK (Java Development Kit) und eine JRE (Java Runtime Environment) sind beide Softwarepakete, die von Oracle bereitgestellt werden und für die Entwicklung und Ausführung von Java-Anwendungen verwendet werden.

JDK wird zum Entwickeln von Java-Anwendungen verwendet, während JRE zum Ausführen von Java-Anwendungen benötigt wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Warum arbeitet Java mit einem zweistufigen Übersetzungskonzept?

A

Das zweistufige Übersetzungskonzept von Java ermöglicht die Portabilität der Java-Anwendungen auf verschiedenen Plattformen, indem der Java-Quellcode zunächst in Bytecode (unabhängig der Hardware) und dann zur Laufzeit in Maschinencode übersetzt wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist eine Klasse, was ist ein Objekt?

A

In Java sind Klassen Vorlagen, die beschreiben, welche Eigenschaften und Funktionen Objekte haben können. Objekte sind konkrete Instanzen dieser Klassen, die individuelle Werte für ihre Attribute speichern können. Klassen dienen als Bausteine zur Erzeugung von Objekten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist ein Datenfeld, was ist eine Methode?

A

Datenfeld = Variabel. Es speichert die Daten bzw die Eigenschaften die ein Objekt hat.
Eine Methode in Java ist eine Sammlung von Anweisungen, die eine bestimmte Aufgabe ausführt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Gibt es in Java Programmcode außerhalb einer Klasse?

A

Nein
In Java muss der Programmcode immer innerhalb einer Klasse platziert sein. Jede Java-Anwendung muss mindestens eine Klasse enthalten, die eine spezielle Methode namens main enthält. Diese main-Methode dient als Einstiegspunkt des Programms und wird beim Start der Anwendung aufgerufen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie sieht die Darstellung einer Klasse in der UML aus?

A

In der UML (Unified Modeling Language) wird eine Klasse mit einem Rechteck dargestellt. Das Rechteck enthält normalerweise drei Abschnitte:

Oberer Abschnitt: Der oberste Abschnitt des Rechtecks enthält den Namen der Klasse.
Mittlerer Abschnitt: Der mittlere Abschnitt enthält die Attribute oder Eigenschaften der Klasse. Diese werden in der Regel in der Form “Sichtbarkeit + Name: Typ” dargestellt. Die Sichtbarkeit kann entweder öffentlich (+), privat (-) oder geschützt (#) sein.
Unterer Abschnitt: Der untere Abschnitt enthält die Methoden oder Operationen der Klasse. Sie werden ebenfalls in der Form “Sichtbarkeit + Name(parameter): Rückgabetyp” angegeben.
Hier ist ein Beispiel für die Darstellung einer einfachen Klasse “Person” in der UML:
+——————+
Person
+——————+
| - name: String |
| - age: int |
+——————+
| + setName(name: String): void |
| + setAge(age: int): void |
| + getName(): String |
| + getAge(): int |
+——————+

Person |

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie sieht die Darstellung eines Objektes in der UML aus?

A

In der UML (Unified Modeling Language) wird ein Objekt durch ein Rechteck mit dem Namen des Objekts dargestellt. Zusätzlich wird der Klassenname des Objekts angegeben, zu dem es gehört, durch eine gestrichelte Linie mit einem Pfeil, der von dem Objekt zur Klasse zeigt.

Hier ist ein Beispiel für die Darstellung eines Objekts “person” der Klasse “Person” in der UML:

+———————–+
person
+———————–+
|———————–|
| Person |
+———————–+

|

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie wird ein Objekt in Java erzeugt?

A

Ein Objekt kann in Java nur durch den new-Operator erzeugt werden.

Person person = new Person();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Warum sollten Datenfelder private sein?

A

Datenversteckung: Durch das Deklarieren von Datenfeldern als private werden sie vor direktem Zugriff von außerhalb der Klasse geschützt. Dadurch wird eine unsachgemäße Manipulation oder Änderung der Daten vermieden. Der Zugriff auf die Daten sollte stattdessen über Getter- und Setter-Methoden kontrolliert und validiert werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Gibt es auch Datenfelder die public sind?

A

Ja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Warum sind Methoden typischerweise public?

A

Methoden werden typischerweise als public deklariert, um den externen Zugriff auf die Funktionalität einer Klasse zu ermöglichen und die Wiederverwendbarkeit des Codes zu fördern. Durch die öffentliche Deklaration können andere Klassen die Methode aufrufen, um bestimmte Aufgaben auszuführen. Es ermöglicht auch die Erweiterbarkeit der Klasse durch Vererbung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Gibt es auch Methoden, die private sind? Warum?

A

Private Methoden werden in Java verwendet, um Hilfsfunktionen oder interne Abläufe einer Klasse zu implementieren, die von anderen Klassen oder Objekten nicht aufgerufen werden sollen. Sie dienen der Datenkapselung, verbessern die Codeorganisation und -lesbarkeit, ermöglichen die Wiederverwendbarkeit im Kontext der Klasse und gewährleisten Sicherheit und Integrität.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie wird eine Methode zu einem Objekt aufgerufen?

A

objektname.methodenname(argumente);

person.getName();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche besondere Aufgabe hat die Methode main() in einem Java-Programm und warum ist die Methode main() public und static?

A

Die Methode main() hat die besondere Aufgabe, als Einstiegspunkt des Java-Programms zu dienen. Sie wird automatisch von der JVM aufgerufen, wenn das Programm gestartet wird.

Die Methode main() ist public, damit sie von der JVM aufgerufen werden kann, und static, damit sie unabhängig von einer Objektinstanz aufgerufen werden kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was ist eine Referenzvariable? Wie unterscheiden sich Referenzvariable und Objekt?

A

Eine Referenzvariable in Java enthält einen Verweis auf ein Objekt, während das Objekt selbst die tatsächlichen Daten und Verhaltensweisen enthält. Die Referenzvariable ermöglicht den Zugriff auf und die Interaktion mit dem Objekt.

so wie p1 die variable für person sein kann

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Ordnen Sie die Begriffe Superklasse, Basisklasse, abgeleitete Klasse, Kindklasse, Elternklasse, Subklasse, ableitende Klasse den Klassen Person und Ausleiher zu.

A

Person: Superklasse, Elternklasse
Ausleiher: Abgeleitete Klasse, Kindklasse, Subklasse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wie wird eine Vererbungsbeziehung in Java programmiert?

A

durch das wort extends:

public class Superklasse {
// Code der Superklasse
}

public class Unterklasse extends Superklasse {
// Code der Unterklasse
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was ist ein Paket in Java, wie wird es programmiert und warum gibt es Pakete?

A

Pakete sind eine Gruppierung von Klassen. Es wird durch das Schlüsselwort package in der Datei-Deklaration angegeben. Pakete dienen der Organisation des Codes, der Vermeidung von Namenskonflikten und der Steuerung des Zugriffs auf Klassen. Sie verbessern die Lesbarkeit, Wartbarkeit und Strukturierung von Java-Projekten.

package meinPaket;

public class MeineKlasse {
// Code der Klasse
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Wie kann man auf Klassen innerhalb von Paketen zugreifen?

A

Import-Anweisung: Durch die Verwendung von Import-Anweisungen können Klassen aus anderen Paketen direkt referenziert werden. Beispiel: import meinPaket.MeineKlasse;

Vollqualifizierter Klassenname: Alternativ können Sie den vollqualifizierten Namen der Klasse verwenden, der den Paketnamen und den Klassennamen enthält. Beispiel: meinPaket.MeineKlasse obj = new meinPaket.MeineKlasse();

Für Klassen im selben Paket ist kein spezieller Import erforderlich, sie können direkt aufgerufen werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Was ist die Java-Klassenbibliothek?

A

Die Java-Klassenbibliothek, auch als Java API bekannt, ist eine umfangreiche Sammlung vordefinierter Klassen und Schnittstellen in Java. Sie bietet vorgefertigte Funktionen und Dienstprogramme für verschiedene Bereiche.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Warum kann auf die Klasse System aus der Java-Klassenbibliothek in einem Java-Programm zugegriffen werden, ohne eine import-Vereinbarung zu verwenden?

A

Die Klasse System aus der Java-Klassenbibliothek kann in einem Java-Programm ohne explizite Import-Anweisung verwendet werden, da sie zum Standardpaket java.lang gehört, das automatisch importiert wird. Dadurch ist der Zugriff auf die Klasse System ohne zusätzlichen Import möglich.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Was ist ein Schlüsselwort?

A

Ein Schlüsselwort in Java ist ein reserviertes Wort mit vordefinierter Bedeutung in der Programmiersprache. Es darf nicht zur Benennung von Variablen, Klassen oder Methoden verwendet werden. Beispiele für Schlüsselwörter sind public, private, class, if, for, while, return usw.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Was sind die Style-Guide-Konventionen für Variablennamen, Datenfeldnamen, Methodennamen, Klassennamen, Schnittstellennamen, Paketnamen und zusammengesetzte Namen?

A
  • Variablennamen, Datenfeldnamen und Methodennamen werden klein geschrieben: vorname oder ausgeben().
    − Klassennamen und Schnittstellennamen beginnen mit einem Großbuchstaben gefolgt von Kleinbuchstaben: Person oder Ausgebbar.
    − Paketnamen werden klein geschrieben: entitäten.
    − Werden Namen für Variablen, Datenfelder, Methoden, Klassen und
    Schnittstellen aus mehreren Wörtern zusammengesetzt, so wird der erste Buchstabe des zweiten Wortes groß geschrieben: TestPerson oder getVorname().
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Werden Style-Guide-Konventionen vom Compiler geprüft?

A

Nein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Wie sieht ein Zeilenkommentar, Kommentarblock, Dokumentationskommentar in Java aus?

A

Ein Zeilenkommentar in Java beginnt mit // und erstreckt sich bis zum Ende der Zeile. Ein Kommentarblock beginnt mit /* und endet mit */ und kann über mehrere Zeilen gehen. Ein Dokumentationskommentar beginnt mit /** und wird für die automatisierte Generierung von API-Dokumentationen verwendet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Welchen Vorteil bietet der Dokumentationskommentar?

A

Der Dokumentationskommentar (Javadoc) bietet den Vorteil, automatisch generierte API-Dokumentationen zu erstellen, verbessert die Lesbarkeit und Verständlichkeit des Codes, ermöglicht schnelles Auffinden von Informationen und integriert sich gut in Entwicklungsumgebungen (IDEs).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Erklären Sie den Unterschied zwischen Datentyp und Variable anhand des Datentyps int.

A

int ist der datentyp x z.b. ist die variable. Der Datentyp legt den Inhalt der Variable fest.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Welche Typen sind durch die Programmiersprache Java vorgegeben und von welchen Typen kann ein Programmierer selbst Datentypen definieren?

A

Die Programmiersprache Java stellt eine Reihe von vordefinierten (primitiven) Datentypen zur Verfügung. Diese umfassen:

Ganzzahlige Typen: byte, short, int, long
Gleitkommazahlen-Typen: float, double
Zeichentyp: char
Boolescher Typ: boolean

Durch Klassen kann der Programmierer selbst Datentypen festlegen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Von einfachen Datentypen kann man Variable anlegen, von Referenztypen kann man Variable und Objekte anlegen. Was ist die Variable (Referenzvariable) beim Referenztyp?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Kann eine Referenzvariable auf unterschiedliche Objekte zeigen?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Auf Objekte welchen Typs kann eine Referenzvariable zeigen?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Wie werden ein Array von einfachen Datentypen und ein Array von Referenztypen in Java angelegt?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Wie kann man einem Array-Feld einen Wert zuweisen?

A

int[] numbers = new int[5];
numbers[0] = 10; // Wert 10 dem ersten Element im Array zuweisen
numbers[1] = 20; // Wert 20 dem zweiten Element im Array zuweisen
numbers[2] = 30;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Was ist der Unterschied zwischen den Datentypen int und Integer? Welchen Datentyp verwenden Sie, wenn Sie Berechnungen durchführen wollen? Warum?

A

Wenn Sie Berechnungen durchführen möchten, verwenden Sie den primitiven Datentyp int, da er effizienter ist. Verwenden Sie die Integer-Wrapper-Klasse, wenn Sie zusätzliche Funktionen benötigen oder mit Sammlungen arbeiten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Von einfachen Datentypen kann man Variable anlegen, von Referenztypen kann man Variable und Objekte anlegen. Was ist die Variable (Referenzvariable) beim Referenztyp?

A

Bei Referenztypen in Java bezieht sich die Variable, die für den Referenztyp deklariert ist, auf ein Objekt im Speicher. Diese Variable wird auch als Referenzvariable bezeichnet, da sie die Adresse oder den Verweis auf das tatsächliche Objekt enthält.

Im Gegensatz zu primitiven Datentypen, bei denen die Variable den tatsächlichen Wert enthält, enthält eine Referenzvariable den Verweis auf den Speicherort des Objekts. Das Objekt selbst wird an einem anderen Ort im Speicher erstellt und kann über die Referenzvariable erreicht und manipuliert werden.

Mit einer Referenzvariable können Sie auf die Methoden und Eigenschaften des Objekts zugreifen und diese ändern. Es ist wichtig zu beachten, dass die Referenzvariable nicht das eigentliche Objekt ist, sondern nur auf dieses verweist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Kann eine Referenzvariable auf unterschiedliche Objekte zeigen?

A

Ja, eine Referenzvariable in Java kann während der Laufzeit auf unterschiedliche Objekte zeigen. Das bedeutet, dass Sie den Wert einer Referenzvariable ändern können, um auf ein anderes Objekt zu verweisen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Auf Objekte welchen Typs kann eine Referenzvariable zeigen?

A

Eine Referenzvariable in Java kann auf Objekte des gleichen Typs oder auf Objekte einer beliebigen Untertyp-Hierarchie zeigen.

Wenn eine Klasse von einer anderen Klasse erbt (Superklasse - Unterklassen-Beziehung), kann eine Referenzvariable des Superklassentyps verwendet werden, um Objekte sowohl der Superklasse als auch der Unterklassen zu referenzieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Wie werden ein Array von einfachen Datentypen und ein Array von Referenztypen in Java angelegt?

A

einfacher Datentyp:

<Datentyp>[] <Arrayname> = new <Datentyp>[<Größe>];
Beispiel:

int[] numbers = new int[5];

Referenztypen:

<Klassentyp>[] <Arrayname> = new <Klassentyp>[<Größe>];
Beispiel:

String[] names = new String[3];
</Größe></Klassentyp></Arrayname></Klassentyp></Größe></Datentyp></Arrayname></Datentyp>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Was ist eine Selektion und welche Ausprägungen der Selektion gibt es in Java?

A

In der Programmierung bezieht sich die Selektion auf die Möglichkeit, Entscheidungen in einem Programm zu treffen und unterschiedliche Aktionen basierend auf bestimmten Bedingungen auszuführen:

if-else/if/if-else/if
switch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Was ist eine Iteration und welche Ausprägungen der Iteration gibt es in Java?

A

In der Programmierung bezieht sich die Iteration auf die wiederholte Ausführung eines Codeblocks, um eine bestimmte Aufgabe zu erfüllen.

for schleife
while schleife
do while schleife
for each schleife

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Die Variable a soll den Wert 1 haben, welchen Wert hat b nach der Zuweisung: b = a++; und welchen Wert hat b nach der Zuweisung b = –a;?

A

1, 0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Wissen Sie, wie man in Java über die Felder eines Arrays mit Hilfe einer for-Schleife und mit Hilfe einer for-each-Schleife iteriert?

A

for-Schleife:

int[] array = {1, 2, 3, 4, 5};

for (int i = 0; i < array.length; i++) {
int element = array[i];
// Code, der mit dem Element des Arrays arbeitet
}

for-each-Schleife:
int[] array = {1, 2, 3, 4, 5};

for (int element : array) {
// Code, der mit dem Element des Arrays arbeitet
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Was ist ein formaler Übergabeparameter?

A

public void sayHello(String name) {
System.out.println(“Hello, “ + name + “!”);
}
In diesem Beispiel ist name ein formaler Übergabeparameter vom Typ String. Wenn die Methode sayHello aufgerufen wird, wird ein Wert vom Typ String an den Parameter name übergeben. Innerhalb der Methode kann auf den Wert des Parameters name zugegriffen und damit gearbeitet werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Was ist ein formaler Übergabeparameter?
* Wo ist ein formaler Übergabeparameter sichtbar?
* Was ist ein aktueller Übergabeparameter?
* Wie hängen formale und aktuelle Übergabeparameter zusammen?
* Was wird beim Aufruf einer Methode mit einem formalen Übergabeparameter eines Referenztyps kopiert? Das Objekt oder die Referenzvariable?
* Was bedeutet Polymorphie von Methoden?
* Wann spricht man von überladenen Methoden?
* Kann man zwei Methoden überladen, die sich nur durch den Rückgabetyp unterscheiden?
* Wie kann man prüfen, ob an die main()-Methode eines Java-Programmes ein Wert übergeben wurde?

A
47
Q

Wo ist ein formaler Übergabeparameter sichtbar?

A

Ein formaler Übergabeparameter ist nur innerhalb des Methodenkörpers sichtbar, in dem er deklariert wurde.

48
Q

Was ist ein aktueller Übergabeparameter?

A

public void sayHello(String name) {
System.out.println(“Hello, “ + name + “!”);
}

public static void main(String[] args) {
String myName = “Alice”;
sayHello(myName); // Hier ist “myName” der aktuelle Übergabeparameter
}
In diesem Beispiel wird die Methode sayHello mit dem aktuellen Übergabeparameter myName aufgerufen. Der Wert von myName wird als Argument an den formalen Übergabeparameter name übergeben, wenn die Methode aufgerufen wir

49
Q

Wie hängen formale und aktuelle Übergabeparameter zusammen?

A

Formale Übergabeparameter sind in der Methodendeklaration angegeben und dienen als Platzhalter für die Werte oder Referenzen, die bei einem Methodenaufruf übergeben werden. Aktuelle Übergabeparameter sind die tatsächlichen Werte oder Referenzen, die bei einem Methodenaufruf an die formalen Übergabeparameter übergeben werden.

formale Übergabeparameter: num1
aktueller Übergabeparamter : 5

50
Q

Was wird beim Aufruf einer Methode mit einem formalen Übergabeparameter eines Referenztyps kopiert? Das Objekt oder die Referenzvariable?

A

Beim Aufruf einer Methode mit einem formalen Übergabeparameter eines Referenztyps wird die Referenzvariable kopiert, nicht das Objekt selbst.

51
Q

Was bedeutet Polymorphie von Methoden?

A

Polymorphie von Methoden ermöglicht es, dass verschiedene Klassen mit demselben Methodennamen unterschiedliche Implementierungen haben. Dadurch kann eine Methode je nach Objekttyp unterschiedliche Aktionen ausführen.

52
Q

Wann spricht man von überladenen Methoden?

A

Man spricht von überladenen Methoden, wenn in einer Klasse oder einem Interface mehrere Methoden mit demselben Namen vorhanden sind, aber sich in den Parametern unterscheiden. Die Parameter können sich in der Anzahl, Reihenfolge oder dem Datentyp unterscheiden. Durch die Überladung können Methoden mit demselben Namen verschiedene Aktionen ausführen, abhängig von den übergebenen Argumenten.

z.B. println( int x)
println (char)

53
Q

Kann man zwei Methoden überladen, die sich nur durch den Rückgabetyp unterscheiden?

A

Nein

54
Q

Wie kann man prüfen, ob an die main()-Methode eines Java-Programmes ein Wert übergeben wurde?

A

Um zu prüfen, ob der main()-Methode Argumente übergeben wurden, kann man die Länge des args-Arrays überprüfen. Wenn die Länge größer als 0 ist, wurden Argumente übergeben.

55
Q

Was ist eine Klassenvariable?

A

Eine Klassenvariable ist eine Variable, die von allen Instanzen einer Klasse gemeinsam genutzt wird. Sie wird mit dem Schlüsselwort “static” markiert und behält denselben Wert für alle Instanzen bei.
Sie kann ohne ein Objekt funktionieren und wenn Objekte auf sie zugreifen hat sie für alle objekte den glei hen wert

56
Q

Was ist eine Instanzvariable?

A

Eine Instanzvariable wird für jedes objekt angelegt und hat deshalb au h für jedes objekt einen aderen wert.
Datenfelder die die Werte von objekten speichern

57
Q

Was ist eine Instanzmethode?

A

Eine Instanzmethode ist eine Methode, die an ein Objekt einer Klasse gebunden ist und auf den Zustand dieser Objekt zugreifen kann.

58
Q

Was ist eine Klassenmethode

A

Eine Klassenmethode ist eine Methode, die auf Klassenebene definiert ist und von allen Instanzen einer Klasse gemeinsam genutzt wird. Sie wird mit dem Schlüsselwort “static” markiert und arbeitet mit den Klassenvariablen.

59
Q

Welches Schlüsselwort wird für die Definition einer Klassenvariable oder einer Klassenmethode benötigt?

A

static

60
Q

Eine Klasse Buch soll eine Klassenvariable bestand besitzen. Es werden 10 Objekte der Klasse Buch angelegt. Wie oft existiert die Klassenvariable bestand?

A

einmal

61
Q

Erklären Sie, woher eine Instanzmethode weiß, auf welchen Objektindividuellen Instanzvariablen sie arbeiten soll?

A

mit dem Schlüsselwort this

62
Q

Eine Instanzmethode besitzt einen formalen Übergabeparameter, der den gleichen Namen hat wie eine Instanzvariable. Ist dies sinnvoll? Wie kann in diesem Fall auf die verdeckte Instanzvariable zugegriffen werden?

A

Ja es ist möglich. Es ist nicht sinnvol.
Um auf die verdeckte Instanzvariable zuzugreifen, kann das Schlüsselwort “this” verwendet werden.

63
Q

Was ist ein Konstruktor, wann wird dieser aufgerufen und was wird üblicherweise in einem Konstruktor gemacht?

A

Ein Konstruktor ist eine spezielle Methode einer Klasse, die verwendet wird, um ein Objekt zu initialisieren. Er wird automatisch beim Erstellen eines neuen Objekts aufgerufen. In einem Konstruktor werden üblicherweise die Instanzvariablen des Objekts initialisiert und weitere Initialisierungen durchgeführt.

public class MyClass {
private int value;

// Konstruktor
public MyClass(int value) {
    this.value = value; // Initialisierung der Instanzvariable mit dem übergebenen Wert
} }
64
Q

Eine Klasse kann mehrere Konstruktoren besitzen. Wie kann innerhalb eines Konstruktors ein anderer Konstruktor derselben Klasse aufgerufen werden?

A

this

65
Q

Welchen Unterschied gibt es zwischen Instanzvariablen, die private sind, und Instanzvariablen, die protected sind?

A

Private Instanzvariablen sind nur innerhalb der Klasse sichtbar und zugänglich, während geschützte Instanzvariablen zusätzlich in Unterklassen sichtbar sind.

66
Q

Wie kann ein Konstruktor einer Elternklasse im Konstruktor der Kindklasse aufgerufen werden? Welche Vorteile ergeben sich durch diese Möglichkeit?

A

Der Konstruktor einer Elternklasse kann im Konstruktor der Kindklasse mit dem Schlüsselwort super aufgerufen werden. Dadurch können die geerbten Eigenschaften der Elternklasse initialisiert werden, bevor die spezifischen Initialisierungen der Kindklasse durchgeführt werden. Dies fördert die Wiederverwendung von Code und ermöglicht eine konsistente Initialisierung der Vererbungshierarchie.

67
Q

Erläutern Sie, was damit gemeint ist, wenn in einer Kindklasse die Aufrufschnittstelle der Elternklasse erweitert wird.

A

Die Erweiterung der Aufrufschnittstelle einer Elternklasse in einer Kindklasse bedeutet, dass die Kindklasse zusätzliche Methoden oder Funktionen hinzufügt, die in der Elternklasse nicht vorhanden sind. Dadurch können Objekte der Kindklasse sowohl die Funktionen der Elternklasse als auch die neuen Funktionen der Kindklasse bereitstellen. Dies ermöglicht eine größere Vielseitigkeit bei der Verwendung der Kindklasse.

68
Q

Für was wird ein cast-Operator benötigt?

A

Ein Cast-Operator wird verwendet, um den Datentyp eines Ausdrucks oder einer Variablen umzuwandeln. Dadurch können Zuweisungen oder Operationen zwischen verschiedenen Datentypen durchgeführt werden, wenn der Compiler eine explizite Konvertierung verlangt.

69
Q

Gegeben sei eine Klasse Ausleiher, die von der Klasse Person ableitet. Erklären Sie, inwiefern sich ein Objekt der Klasse Ausleiher polymorph verhalten kann.

A

Ein Objekt der Klasse Ausleiher kann sich polymorph verhalten, indem es sowohl die Methoden und Eigenschaften der Klasse Ausleiher als auch die geerbten Methoden und Eigenschaften der Klasse Person nutzen kann. Dies ermöglicht eine flexible und erweiterbare Verwendung des Objekts, da es je nach Kontext sowohl als Ausleiher als auch als Person betrachtet werden kann.

70
Q

Erklären Sie, was mit dem “Überschreiben von Methoden” gemeint ist.

A

Das “Überschreiben von Methoden” bezieht sich auf das Ersetzen einer Methode in der abgeleiteten Klasse, die bereits in der Superklasse vorhanden ist. Dadurch kann das Verhalten der Methode in der abgeleiteten Klasse angepasst werden.

71
Q

Erläutern Sie für den Fall einer überschriebenen Methode, welche Rolle der Typ einer Referenzvariablen und welche Rolle der Typ eines Objektes spielt.

A

Der Typ der Referenzvariable bestimmt, welche Methoden und Eigenschaften direkt auf die Variable angewendet werden können. Der Typ des Objekts, auf das die Variable verweist, bestimmt jedoch zur Laufzeit, welche Implementierung einer überschriebenen Methode tatsächlich aufgerufen wird.

72
Q

Auf welche Objekte kann eine Referenzvariable vom Typ Object zeigen? Begründung!

A

Eine Referenzvariable vom Typ Object kann auf jedes Objekt in Java zeigen, da die Klasse Object die oberste Klasse in der Vererbungshierarchie ist.

73
Q

Wie kann in einer überschreibenden Methode die überschriebene Methode aufgerufen werden?

A

In einer überschreibenden Methode kann die überschriebene Methode durch den Einsatz des Schlüsselworts “super” und dem Methodennamen aufgerufen werden. Der Ausdruck “super.methodName()” ruft die entsprechende Methode in der Elternklasse auf. Dies ermöglicht es, den Code der Elternklasse aus der überschreibenden Methode heraus auszuführen und zusätzliche Funktionalitäten hinzuzufügen.

74
Q

Was ist eine Ausnahme in Java?

A

Von einer Ausnahme spricht man, wenn die Abarbeitung einer Methode versagt und eine Ausnahmebehandlung (Fehlerbehandlung) erforderlich wird

75
Q

Welches Ziel wird mit einem Exception-Handler in Java verfolgt?

A

Ein Exception-Handler hat das Ziel, eine Ausnahme zu “entschärfen”, d. h. eine Methode vom Ausnahmezustand in den Normalzustand zu überführen.

76
Q

Wie ist eine try-Anweisung in Java aufgebaut?

A

Die try-Anweisung besteht
− aus einem try-Block,
− aus einem oder mehreren catch-Konstrukten
− und aus einem optionalen finally-Konstrukt.

77
Q

Was ist der Unterschied zwischen einer “Checked Exception” und einer “Unchecked Exception”?

A

Checked Exception
− muss vom Programmierer behandelt werden.
− Compiler überprüft, ob für eine „Checked Exception“ eine entsprechende Ausnahmebehandlung existiert.

Unchecked Exception
− muss vom Programmierer nicht behandelt werden.
− Compiler überprüft nicht, ob eine entsprechende Ausnahmebehandlung
existiert.

78
Q

Für welchen Zweck wird eine throws-Klausel in der Methodendeklaration benötigt?

A

Eine throws-Klausel in der Methodendeklaration zeigt an, dass die Methode eine bestimmte Art von Ausnahme auslösen kann und dass der Aufrufer diese Ausnahme behandeln oder weitergeben muss.

79
Q

Wie kann man eine Ausnahme selbst definieren und auswerfen?

A

Um eine benutzerdefinierte Ausnahme in Java zu erstellen und auszuwerfen, erstellen Sie eine Klasse, die von der Klasse Exception oder einer ihrer Unterklassen erbt. Werfen Sie die Ausnahme, indem Sie eine Instanz der benutzerdefinierten Ausnahmeklasse mit dem Schlüsselwort “throw” erzeugen. Beispiel:

public class MeinFehler extends Exception {
// Konstruktor und andere Methoden hier
}

public class Beispiel {
public static void main(String[] args) {
try {
throw new MeinFehler(“Fehlermeldung”);
} catch (MeinFehler e) {
// Ausnahmebehandlung hier
}
}
}
In diesem Beispiel wird die benutzerdefinierte Ausnahmeklasse “MeinFehler” erstellt und eine Instanz davon mit “throw” ausgeworfen. Die Ausnahme wird dann mit einem catch-Block behandelt.

80
Q

Für was braucht man die package-Deklaration?

A

Die package-Deklaration in Java wird verwendet, um den Namen des Pakets anzugeben, zu dem eine Klasse gehört. Sie organisiert den Code, vermeidet Namenskonflikte und ermöglicht die Kontrolle des Zugriffs auf Klassen.

81
Q

Für was braucht man die package-Deklaration?
* Für was braucht man die import-Vereinbarung?
* Ein Paket bildet einen Namensraum. Was bedeutet dies?
* Können in einer Quellcode-Datei mehrere Klassen sein? Was ist zu berücksichtigen?
* Welche Klassen und Schnittstellen können mit einer import-Vereinbarung in anderen Klassen sichtbar gemacht werden?
* Ist es möglich auf Klassen in anderen Paketen zuzugreifen, ohne die import-Vereinbarung zu verwenden?
* Was ist die Schnittstelle einer Klasse?
* Was ist eine Schnittstelle (ein Schnittstellen-Typ) in Java?
* Welche Vorteile bringt ein Schnittstellentyp mit sich.
* Aus welchen Bestandteilen besteht eine Schnittstellen-Definition?
* Was ist bei Methodendeklarationen in Schnittstellen erlaubt?
* Wie implementiert man Schnittstellen in Klassen
* Was passiert, wenn nicht alle Methoden einer Schnittstelle implementiert werden?
* Was ist eine abstrakte Basisklasse?
* Was ist der Unterschied zwischen einer abstrakten (Basis)klasse und einer Schnittstelle?

A
82
Q

Für was braucht man die import-Vereinbarung?

A

Die import-Vereinbarung in Java wird verwendet, um den Zugriff auf Klassen oder Pakete außerhalb des aktuellen Pakets zu ermöglichen. Sie ermöglicht es, Klassen aus anderen Paketen zu verwenden, ohne den vollständigen Paketnamen jedes Mal angeben zu müssen. Dadurch wird der Code lesbarer und es werden Namenskonflikte vermieden.

83
Q

Ein Paket bildet einen Namensraum. Was bedeutet dies?

A

Ein Paket bildet einen Namensraum, was bedeutet, dass die darin enthaltenen Klassen und Ressourcen in einem isolierten Bereich organisiert sind, um Namenskonflikte zu vermeiden und den Code besser zu organisieren.

84
Q

Können in einer Quellcode-Datei mehrere Klassen sein? Was ist zu berücksichtigen?

A

Ja, in einer Quellcode-Datei können mehrere Klassen definiert sein. Eine Klasse muss jedoch als öffentlich (public) deklariert sein und der Dateiname muss mit dem Namen dieser öffentlichen Klasse übereinstimmen. Die anderen Klassen dürfen nicht öffentlich (public) deklariert sein und haben eine andere Sichtbarkeit.

85
Q
A
86
Q

Ist es möglich auf Klassen in anderen Paketen zuzugreifen, ohne die import-Vereinbarung zu verwenden?

A

Ja, es ist möglich, auf Klassen in anderen Paketen zuzugreifen, ohne die import-Vereinbarung zu verwenden, indem der vollqualifizierte Klassenname verwendet wird. Dabei wird der Paketname vor den Klassennamen geschrieben, gefolgt von einem Punkt.

87
Q

Was ist die Schnittstelle einer Klasse?

A

Die Schnittstelle einer Klasse definiert, welche Methoden eine Klasse bereitstellt und welche Verhaltensweisen sie implementiert. Sie beschreibt die öffentlichen Methoden, die von anderen Klassen verwendet werden können, um mit Objekten dieser Klasse zu interagieren. Die Schnittstelle definiert den Vertrag oder das Verhaltensmuster, das eine Klasse erfüllen muss, um als bestimmter Typ betrachtet zu werden.

88
Q

Was ist eine Schnittstelle (ein Schnittstellen-Typ) in Java?

A
89
Q

Was ist eine Schnittstelle (ein Schnittstellen-Typ) in Java?

A
90
Q

Welche Vorteile bringt ein Schnittstellentyp mit sich.

A

Ein Schnittstellentyp bietet die Vorteile der Abstraktion, Mehrfachvererbung, Austauschbarkeit, Vertragsbindung und verbesserten Codeorganisation.

91
Q

Aus welchen Bestandteilen besteht eine Schnittstellen-Definition?

A

Eine Schnittstellen-Definition besteht aus dem Schlüsselwort “interface”, dem Namen der Schnittstelle, den Methodensignaturen (ohne Implementierung) und optionalen Konstantendeklarationen.

92
Q

Was ist bei Methodendeklarationen in Schnittstellen (interfaces) erlaubt?

A

In Schnittstellen sind nur Methodendeklarationen erlaubt, d.h., es werden die Methodennamen, Parameterlisten und Rückgabetypen festgelegt, jedoch ohne die Implementierung der Methoden. Es sind keine Methodenrümpfe (Bodies) oder Methodeninhalte erlaubt.

93
Q

Wie implementiert man Schnittstellen in Klassen

A

Um eine Schnittstelle in einer Klasse zu implementieren, verwendet man das Schlüsselwort “implements” gefolgt vom Namen der Schnittstelle. Die Klasse muss dann alle Methoden der Schnittstelle implementieren, indem sie die Methodendeklarationen der Schnittstelle in der Klasse mit der entsprechenden Logik füllt. Dies stellt sicher, dass die Klasse die Vertragsbedingungen der Schnittstelle erfüllt. Mehrere Schnittstellen können durch Komma getrennt angegeben werden, falls eine Klasse mehrere Schnittstellen implementieren soll.

94
Q

Was passiert, wenn nicht alle Methoden einer Schnittstelle implementiert werden?

A

Wenn nicht alle Methoden einer Schnittstelle in einer Klasse implementiert werden, führt dies zu einem Compiler-Fehler. Die Klasse wird als fehlerhaft markiert, da sie den Vertrag der Schnittstelle nicht vollständig erfüllt. Es ist erforderlich, dass alle Methoden der Schnittstelle in der Klasse implementiert werden, andernfalls kann die Klasse nicht kompiliert werden.

95
Q

Was ist eine abstrakte Basisklasse?

A

Eine abstrakte Basisklasse ist eine Klasse, die als Vorlage für abgeleitete Klassen dient, aber selbst nicht direkt instanziiert werden kann. Sie enthält mindestens eine abstrakte Methode, die in den abgeleiteten Klassen implementiert werden muss. Eine abstrakte Basisklasse kann auch konkrete Methoden enthalten, die von den abgeleiteten Klassen geerbt und verwendet werden können. Abstrakte Basisklassen dienen dazu, gemeinsame Eigenschaften und Verhaltensweisen für verwandte Klassen zu definieren und Code-Wiederverwendung zu ermöglichen.

96
Q

Was ist der Unterschied zwischen einer abstrakten (Basis)klasse und einer Schnittstelle?

A

Abstrakte Basisklasse
▪ kann Variablen, Konstanten, implementierte und abstrakte Methoden enthalten.

Schnittstelle
▪ kann nur Konstanten und abstrakte Methoden enthalten.
▪ kann von jeder beliebigen Klasse implementiert werden

97
Q

Was ist ein konkreter Datentyp?

A

Ein konkreter Datentyp ist ein Datentyp, der tatsächliche Werte oder Objekte repräsentiert und spezifische Operationen auf diesen Werten oder Objekten ausführt. Im Gegensatz zu abstrakten Datentypen, die abstrakte Konzepte darstellen, können konkrete Datentypen direkt instanziiert und verwendet werden. Beispiele für konkrete Datentypen in Java sind int, double, String und ArrayList.

98
Q

Welchen Vorteil bringt die Generizität mit sich?

A

Generizität ermöglicht den Einsatz von parametrisierten Typen, was zu flexiblerem und sichererem Code führt.

99
Q

Was ist ein generischer Datentyp?

A

Bei generischen Datentypen ist der Datentyp selbst eine Variable

100
Q

Wie kann man die zulässigen aktuellen Typ-Parameter bei einer generischen Klasse einschränken?

A

Man kann die zulässigen aktuellen Typ-Parameter bei einer generischen Klasse mithilfe von sogenannten “Bounds” einschränken. Dabei kann man entweder eine konkrete Klasse oder eine Schnittstelle als Bound festlegen.

101
Q

Erläutern Sie welche zwei Möglichkeiten es bei der Implementierung einer generischen Schnittstelle gibt.

A

Konkrete Implementierung: Man gibt den konkreten Typ für den Typ-Parameter bei der Implementierung der Schnittstelle an. Dadurch wird die Schnittstelle mit einem spezifischen Datentyp verwendet.
Beispiel:

public class MeinKlasse implements MeineSchnittstelle<String> {
// ...
}
Weitergabe des Typ-Parameters: Man gibt den generischen Typ-Parameter der Schnittstelle an die implementierende Klasse weiter. Dadurch bleibt die Schnittstelle selbst generisch und kann mit verschiedenen Datentypen verwendet werden.
Beispiel:</String>

public class MeinKlasse<T> implements MeineSchnittstelle<T> {
// ...
}</T></T>

102
Q

Für welchen Zweck gibt es die generische Schnittstelle Comparable<T>?</T>

A

Die generische Schnittstelle Comparable<T> ermöglicht das Vergleichen von Objekten. Sie definiert die Methode compareTo(), um die Reihenfolge von Objekten festzulegen. Durch die Implementierung der Schnittstelle können Objekte nach einem bestimmten Kriterium sortiert oder angeordnet werden.</T>

103
Q

Wann verwenden Sie in Ihrem Programm – anstatt eines Arrays – ein Objekt von einer Collection-Klasse?

A

Eine Collection-Klasse wird anstelle eines Arrays verwendet, wenn flexiblere und erweiterbare Datenstrukturen benötigt werden. Im Gegensatz zu Arrays bieten Collection-Klassen eine automatische Größenanpassung, das Hinzufügen und Entfernen von Elementen zur Laufzeit, Such- und Sortierfunktionen sowie viele weitere nützliche Methoden zur Verwaltung von Elementen. Collection-Klassen sind besonders nützlich, wenn die Anzahl der Elemente variabel ist oder häufige Änderungen an der Datenstruktur vorgenommen werden müssen.

104
Q

In welchem Paket befinden sich die Collection-Klassen?

A

Die Collection-Klassen befinden sich im Java-Paket “java.util”.

105
Q

Warum sind die Collection-Klassen generisch?

A

Die Collection-Klassen sind generisch, um die Typsicherheit und die Wiederverwendbarkeit des Codes zu verbessern. Durch die Verwendung von Generics können bestimmte Typen von Objekten festgelegt werden, die in einer Collection gespeichert werden dürfen. Dies hilft Compiler-Fehler zu erkennen und ermöglicht es Entwicklern, die Verwendung der Collection-Klassen sicherer und effizienter zu gestalten, da unnötige Typkonvertierungen vermieden werden können.

106
Q

Erläutern Sie ausführlich, was sich hinter der Anweisung System.out.println() verbirgt.

A

gibt text aus nach dem text kommt ein absatz

107
Q

Was ist ein Stream?

A

Ein Stream ist eine geordnete Folge von bytes. Die entweder ausgeht oder eingeht

108
Q

In welchem Paket befinden sich die Stream-Klassen?

A

Die Stream-Klasse befinden sich im Paket “java.util.stream”.

109
Q

Erklären Sie die Funktionsweise der Processingstream-Klassen.

A

Processing Streams sind Klassen in Java, die eine effiziente und deklarative Verarbeitung von Datenströmen ermöglichen. Sie unterstützen Operationen wie Filtern, Transformieren und Aggregieren von Daten. Processing Streams können sequenziell oder parallel verarbeitet werden und bieten eine elegante Syntax für die Datenverarbeitung.

110
Q

Erklären Sie, was bei der Erzeugung eines Objektes einer Processingstream-Klasse zu berücksichtigen ist.

A

Bei der Erzeugung eines Objektes einer Processingstream-Klasse in Java müssen Sie eine Datenquelle angeben und Verarbeitungsoperationen darauf anwenden. Schließlich muss eine Terminaloperation aufgerufen werden, um das Ergebnis zu erhalten.

111
Q

Was ist der Unterschied zwischen Byte- und Characterstream-Klassen?

A

Byte-Stream-Klassen arbeiten auf Byte-Ebene für die Verarbeitung von binären Daten, während Character-Stream-Klassen auf Zeichenebene für die Verarbeitung von Textdaten arbeiten und Zeichenkodierungen unterstützen.

112
Q

Was versteht man unter einer Objektserialisierung.

A

Objektserialisierung bezieht sich auf den Prozess, bei dem ein Objekt in eine sequenzielle Bytefolge umgewandelt wird, um es in Dateien, im Netzwerk oder in persistentem Speicher zu speichern. Dadurch kann das Objekt später wiederhergestellt und verwendet werden, indem es aus der Bytefolge zurück in ein Objekt deserialisiert wird. Die Objektserialisierung ermöglicht die Übertragung und Speicherung von komplexen Objektstrukturen und unterstützt die Persistenz von Daten über längere Zeiträume hinweg.

113
Q
A
114
Q

Was ist der Unterschied zwischen leichtgewichtigen und schwergewichtigen GUI-Komponenten?

A

Leichtgewichtige GUI-Komponenten werden von der Java-Laufzeitumgebung bereitgestellt und sind plattformunabhängig, während schwergewichtige GUI-Komponenten von externen Bibliotheken oder Frameworks stammen und spezifisch für eine Plattform sind. Leichtgewichtige Komponenten sind schneller und ressourcenschonender, während schwergewichtige Komponenten erweiterte Funktionen bieten.

115
Q

Wie ist das Architekturmuster MVC in einer Swing-GUI-Komponente abgebildet?

A

MVC in Swing-GUI:

Model: Daten und Geschäftslogik
View: Darstellung der Benutzeroberfläche
Controller: Interaktionen zwischen Model und View, meist durch Event-Handler

116
Q

Worauf muss man beim einem selbst-geschriebenen Controller achten, um Maus- oder Tastatur-Ereignis abzufangen?

A

Um Maus- oder Tastaturereignisse in einem selbstgeschriebenen Controller in Swing abzufangen, muss die Controller-Klasse entsprechende Listener-Interfaces implementieren und sich bei den relevanten Komponenten registrieren. Die Ereignisse werden dann in den Listener-Methoden behandelt, in denen die gewünschte Logik ausgeführt wird.

117
Q

Wie kann man einem GUI-Container andere GUI-Komponenten hinzufügen

A

Mit der add methode

ZB
frame.add (pane1, BorderLayout North)