Begriffe&Co Flashcards

(130 cards)

1
Q

Attribut

A

objektlokale Variable

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

Zustand

A

programmtechnisch realisiert durch Attribute, Belegung

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

Klassenattribut

A

Attribut einer Klasse, deklariert mit static

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

Nachricht

A

Information, die an ein Objekt versandt wir dun vom Objekt verstanden sowie verarbeitet werden kann (Methode)

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

Methode

A

Programmcode zur Reaktion auf Nachrichten

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

Lebensdauer

A

zeitliche Existenz eines Objekts

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

Konstruktor

A

spezielle Methode zur Objektinitialisierung

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

Identität

A

Objekte sind unterschiedlich - sie haben eine Identität

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

Objekt

A

Einheit Daten und Code, Instanz einer Klasse

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

Referenz

A

Adresse für ein Objekt

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

Instanz

A

konkretes Objekt einer Klasse, erzeugt durch new

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

this

A

impliziter Parameter, self-Objekt

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

alias

A

weitere Referenz auf ein Objekt

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

formaler Parameter

A

an eine Methode übergebene Parameter

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

Signatur einer Methode

A

Modifikatoren Ergebnistyp Methodenname(Parameterliste) throws Deklaration

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

Deklaration

A

Festlegung Typ und Name (z.B. Variable)

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

Variable

A

Speicher für Werte

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

static

A

Schlüsselwort, Modifikator, statische Deklaration

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

final

A

Schlüsselwort, Modifikator, nach Initialisierung unveränderlich

Dies bedeutet insbesondere, dass die entsprechende Klasse, Variable oder Methode bei einer Vererbung nicht überschrieben werden darf. Eine final Methode ist damit für alle Subklassen festgelegt, eine finale Klasse darf nicht vererbt werden, und eine finale Variable ist nach der Initialisierung konstant.

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

Feld

A

Array, Datentyp zur Speicherung von gleichen Datentypen

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

Initialisierung

A

Erstmalige Belegung einer Variable

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

Klassifizierung

A

Hierarchische Strukturierung, Zuordnung von Objekten

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

Klasse

A

Beschreibung der Eigenschaften, die ein Objekt der Klasse hat

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

abstrakte Klasse

A

Klasse mit unvollständiger Implementierung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
innere Klasse
Klasse, die innerhalb einer anderen Klasse deklariert ist
26
anonyme Klasse
(lokale) klasse ohne Namen (Deklaration innerhalb eines Blocks)
27
package
Schlüsselwort, Festlegung eines Namenspace für Klassen
28
(block)lokale Variable
Variable in einem Block(Sichtbarkeitsbereich)
29
Laufzeitumgebung
Ablaufumgebung für kompilierte Java Programme (Bytecode)
30
Zuweisung
Wert eines Ausdrucks wird in einer Variablen gespeichert
31
Typen
Menge von Werten (Basisdatentyp, Objekt, null)
32
Typisierung
Zuordnung von Datentypen an Variablen, Sicherstellung der korrekten Verwendung
33
Typsicherheit
Aufgabe des Compilers, Sicherstellung der Verwendung von Typen
34
Polymorphie
Programmteile sind für mehrere Typen einsetzbar
35
Subtyping
Ordnung auf den Datentypen ->Vererbung
36
Interface
Schlüsselwort zur Deklaration eines Schnittstellentyps
37
dynamisches Binden
Methodenzuordnung, die erst zur Laufzeit stattfindet
38
Cast
Typkonvertierung, in Java eher Zusicherung Datentyp
39
Deklarationstyp
Datentyp bei der Deklaration (-> im Compiler)
40
Enum
Datentyp, Aufzählungstyp
41
Exception
Datentyp, Ausnahmen
42
Vererben
Übertragen von Programmteilen an abgeleitete Klassen
43
Überschreiben
Methoden mit gleichem Namen (SuperklasseSubklasse)
44
Überladen
Mehrere Methoden mit gleichem Namen und unterschiedlicher Signatur
45
``` ZugriffsModifikatoren public - wer kann sehen? Klasse A selbst Klasse B im gleichen Paket Subklasse C im gleichen Paket Subklasse D in einem anderen Paket Klasse E in einem anderen Paket ```
alle
46
``` ZugriffsModifizierer protected - wer kann sehen? Klasse A selbst Klasse B im gleichen Paket Subklasse C im gleichen Paket Subklasse D in einem anderen Paket Klasse E in einem anderen Paket ```
Klasse A selbst Klasse B im gleichen Paket Subklasse C im gleichen Paket Subklasse D in einem anderen Paket, wenn von A geerbt
47
``` ZugriffsModifizierer ohne - wer kann sehen? Klasse A selbst Klasse B im gleichen Paket Subklasse C im gleichen Paket Subklasse D in einem anderen Paket Klasse E in einem anderen Paket ```
paketlokal, dh. Klasse A selbst Klasse B im gleichen Paket Subklasse C im gleichen Paket
48
``` ZugriffsModifizierer private - wer kann sehen? Klasse A selbst Klasse B im gleichen Paket Subklasse C im gleichen Paket Subklasse D in einem anderen Paket Klasse E in einem anderen Paket ```
nur Klasse a selbst
49
native
Der Modifier native dient der Einbindung von plattformspezifischem Binärcode. Native Methoden einer Klasse werden ähnlich wie bei abstrakten Methoden im Klassenrumpf nur deklariert, die Implementierung befindet sich aber in einer externen Bibliothek, z.B. in einer DLL (dynamic link libary), die etwa in C implementiert sein könnte
50
Serialisierung
- Die Umwandlung einer Objektdarstellung im Speicher in einem Byte-Strom nennt sich Serialisierung. - Diese benötigt man, wenn man Objekte in eine Datei speichern oder über ein Netzwerk transportieren möchte.
51
Transistent
Die bei einer Serialisierung nicht bennötigten Referenzvariablen sollte man mit dem Modifier transistent kennzeichnen. Damit zeigt man für den Fall der Serialisierung an, dass das Feld kein Bestandteil des persistenten Zustands eines Objektes ist und somit nicht übertragen werden muss.
52
volatile
kritische Variable - Mit dem Modifier volatile kann man bei einem Feld (Instanz- oder Klassenvariable) angeben, dass dieses in synchronisierten Threads benutzt wird und daher von Compiler-Optimierungen auszuschließen ist. - Java ermöglicht, dass Threads, die auf gemeinsame Variablen zugreifen, von diesen Variablen private Arbeitskopien halten. Diese Arbeitskopien brauchen mit den Orginalfassungen im gemeinsamen Hauptspeicher nur an vorgeschriebenen Synchronisationspunkten abgestimmt zu werden (beim Sperren oder Freigeben von Objekten). Neben der Sperre der Variablen zur exklusiven Nutzung durch einen Thread, gibt es die Möglichkeit, das Datenfeld als volatile zu deklarieren. In diesem Fall muss ein Thread seine Arbeitskopie des Datenfeldes mit der Orginalfassung bei jedem Zugriff auf die Variable abstimmen
53
CORBA
common object request broker architecture - Corba-Programme sind verteilte Anwendungen, wobei der Zugriff auf Remote-Komponenten transparent erfolgt, d.h. der Anwender wie auch der Programmierer brauchen nicht darauf zu achten, dass das angesprochene Business-Objekt(nicht) lokal vorhanden ist. Die gesamte Infrastruktur (Lokalisierung von Objekten, Transaktionssicherheit, Persistenz, Umwandlung in verschiedene Datenformate, Schnittstellen zu unterschiedlichen Programmiersprachen,...) wird bereitgestellt. - Auf der Client- und auf der Serverseite ist ein ORB vorhanden, der wie ein Software-Bus funktioniert und die Daten zwischen Clients und ein oder mehreren Servern überträgt. Dabei spielt die Programmiersprache keine Rolle, da das Übertragungsprotokoll IIOP (Internet Inter-ORB Protocol) eine eigene Datenrepräsentation benutzt. Über den „Naming Service“ kann der Client das gewünschte Server-Objekt lokalisieren.
54
Socket
- Ein Socket ist ein Kommunikationsendpunkt eines Rechners und identifiziert sich durch die IP-Adresse des Rechners und eine Portnummer. - Ein Objekt der Klasse Socket ermöglicht es, Objekte, die als Input- bzw. Output-Stream referenziert werden, über TCP oder darauf aufsetzende Protokolle zu übertragen.
55
RMI remote method invocation
- ist der Java-Mechanismus zur Erstellung von verteilten Anwendungen - Aufwendige Applikationslogik und große Klassen müssen nicht auf dem Client geladen und dort ausgeführt werden, sondern verbleiben auf einem leistungsstarken Applikationsserver. Auf der Client-Seite liegt kein vollständiges Objekt, sondern nur ein Stellvertreterobjekt, das Stub (Stummel) oder Proxy genannt wird. Das Gegenstück Skeleton, befindet sich auf dem Server
56
Unterschied equals und ==
Der Unterschied ist, dass equals die Inhalte der Objekte vergleicht und == nachprüft, ob es sich um das selbe Objekt handelt.
57
Wodurch zeichnen sich Programmgerüste aus?
Ein Programmgerüst ist ein erweiterbares und anpassbares System von Klassen, das für einen allgemeinen, übergeordneten Aufgabenbereich eine Kernfunktionalität mit entsprechenden Bausteinen bereitstellt.
58
Was bedeutet anpassbar im Bezug auf AWT als Framework
Das AWT erlaubt die Anpassung der vordefinierten Komponenten, um z.B. die Darstellung auf dem Display des Benutzers oder das Verhalten der Komponenten anzupassen.
59
Was bedeutet erweiterbar im Bezug zur AWT als Framework
Das AWT erlaubt die Definition eigener Komponenten, die selbst bei der Implementierung verschiedener Benutzeroberflächen wiederverwendet werden können
60
Was bedeutet „System von Klassen“ im Bezug auf die AWT als Framework?
Die einzelnen Klassen des AWT sind eng miteinander gekoppelt. Um ihre eigene Aufgabe zu erledigen, müssen sie in der Regel viele Nachrichten mit Instanzen anderer Klassen austauschen, da sie von ihren Funktionalitäten abhängig sind.
61
Was bedeutet „allgemeiner, übergeordneter Aufgabenbereich“ im Bezug auf die AWT als Framework?
Das AWT unterstützt die Implementierung von Benutzeroberflächen im Allgemeinen, ohne Details z.B. zu ihrem Aufbau festzulegen.
62
Was bedeutet Kernfunktionalität im Bezug auf die AWT als Framework?
Das AWT selbst bietet keine vordefinierte Benutzeroberfläche an, sondern lediglich die Bestandteile, um Elemente zu definieren, zu positionieren oder die Interaktion der Elemente festzulegen. Erst durch eine individuelle Konfiguration von Instanzen verschiedener Klassen entsteht eine darstellbare Benutzerschnittstelle
63
aktueller Parameter
Parameter, der durch einen Methodenaufruf übergeben wird
64
formaler Parameter
Referenzparameter, der in der Methodensignatur deklariert ist
65
Warum muss die main-Methode als Klassenmethode(also mit dem Schlüsselwort static) deklariert werden?
Beim Start eine Java-Programms existieren zunächst keinerlei Objekte. Die Existenz eines Empfängerobjekts ist aber Voraussetzung, um eine Instanzmethode (also eine nicht-statische Methode) der jeweiligen Klasse aufzurufen. Eine statische Methode hingegen kann auch ohne Empfängerobjekt aufgerufen werden und steht damit sofort beim Start des Programms zum Aufruf zur Verfügung
66
Warum ist das Schlüsselwort void in der main-methode notwendig?
Eine Main-Methode darf keinen Rückgabewert haben. An die Stelle des Ergebnisstyps tritt dann das Schlüsselwort void.
67
Wozu dient der Parameter args in der main-Methode? Warum ist er mit einem String-Array typisiert?
Beim Start eines Java-Programms mit Hilfe des Betriebssystems können dem Programm eine beliebige Anzahl von Argumenten (Programmparameter) übergeben werden. Jedes Argument besteht aus einer Zeichenkette und wird über die entsprechende Stelle des Arrays verfügbar gemacht.
68
Aus welchen Einheiten besteht ein Java Programm und woher können sie stammen?
Ein Java Programm besteht aus einer Menge von Klassen. Dies können einserseits benutzergeschriebene Klassen, andererseits Bibliotheksklassen sein.
69
Welche Möglichkeiten gibt es, Klassen zu organisieren? Welche Vorteile hat eine sorgfältige Organisation der Klassen?
In Java können Klassen in sogenannten Paketen organisiert werden. Jedes Paket besitzt einen eindeutigen Namen und enthält Übersetzungseinheiten, die jeweils einer Datei mit der Namenserweiterung java entsprechen. Vorteile: 1. Erleichterung des Verständnisses von und der Orientierung in der Implementierung des Softwaresystems. 2. Verbesserung der Wartbarkeit, indem eine Organisation gewählt wird, die die Abhängigkeiten der Klassen wiederspiegelt. 3. Steuerung der Zugriffsrechte, indem der Zugriff auf Einheiten eines Pakets aus anderen Paketen heraus durch die gezielte Definition von Sichtbarkeiten unterbunden wird. 4. Getrennte Übersetzbarkeit von Teilmengen der Einheiten, aus denen das Softwaresystem besteht.
70
Wahr oder Falsch | Die Modularisierung von Programmen ist vor allem für die Ausführungsgeschwindigkeit des Programms von Bedeutung
falsch
71
Wahr oder Falsch Es ist unter anderem auch deswegen wichtig, die Teile eines Programmes zu organisieren, damit ein Entwickler sich in der Implementierung leicht zurecht finden kann
wahr
72
Wahr oder Falsch | Die Dauer der Übersetzung kann durch die Wahl einer geeigneten Modularisierung des Programms verkürzt werden
wahr
73
Wahr oder Falsch Die Syntax für Pakete in Java lautet package einName {/* Deklaration der Elemente des Pakets}
falsch
74
Wahr oder Falsch | Java erlaubt es, ein und dieselbe Klasse gleichzeitig in mehreren Paketen zu platzieren
falsch
75
Wahr oder Falsch Wenn in Java in einer Klasse c des Pakets p eine andere Klasse D aus dem Paket q verwendet werden soll, dann muss diese stets importiert werden.
falsch
76
Wahr oder Falsch Mit einem Wildcardzeichen können mit einer einzelnen import-Anweisung alle öffentlichen Typen eines Paketes importiert werden
wahr
77
Wahr oder Falsch Eine als private deklarierte Klasse c des Pakets p kann in einer Klasse eines anderen Pakets q verwendet werden, wenn sie mit voll qualifiziertem Namen importiert wird
falsch
78
Wahr oder Falsch | import-Anweisungen dürfen an einer beliebigen Stelle innerhalb einer Java-Klasse stehen
falsch
79
Wahr oder Falsch Wenn zwei Klassen p.C und q.C den gleichen Namen C haben, können diese in einem dritten Paket r nich parallel verwendet werden.
falsch
80
Wahr oder Falsch? | Das Schlüsselwort this darf unmittelbar innerhalb einer statischen Methode nicht verwendet werden
Wahr
81
Wahr oder Falsch? | Das Schlüsselwort this darf unmittelbar innerhalb eines Konstruktors nicht verwendet werden
falsch
82
Wahr oder Falsch? Eine abstrakte Klasse braucht nicht alle Methoden zu implementieren, die durch die von ihr implementierten Interfaces vorgegeben sind
wahr
83
Wahr oder Falsch? | Alle Methoden eines Interface sind (gegebenenfalls implizit) public
wahr
84
Wahr oder Falsch? Auf als protected deklarierte Attribute und Methoden darf ausschießlich aus demselben Typen und den Subtypen des jeweiligen Typs zugegriffen werden
falsch
85
Wahr oder Falsch? Der Bytecode eines kompilierten Java-Programmes ist unabhängig von der jeweiligen Rechnerarchitektur und des Betriebssystems, auf welchem das Programm laufen kann
wahr
86
Wahr oder Falsch? Die virtuelle Maschine ist unabhängig von der jeweiligen Rechnerarchitektur und des Betriebssystems, auf welchem sie läuft
falsch
87
Wahr oder Falsch? Ein als final deklariertes Attribut referenziert nach der erstmaligen Initialisierung stets über die gesamte Programmdauer inweg dasselbe Objekt
wahr
88
Wahr oder Falsch? Eine als final deklarierte Methode liefert nach der ersten Ausführung stets über die gesamte Programmdauer hinweg denselben Wert als Rückgabewert
falsch
89
Wahr oder Falsch? | Weder eine abstrakte Klasse noch ein Interface lässt sich instanziieren
wahr
90
Wahr oder Falsch? | Kommunikation über Nachrichten ist asynchron
wahr
91
Wahr oder Falsch? | Entfernte Methodenaufrufe zählen zu den synchronen Kommunikationsmitteln
wahr
92
Wahr oder Falsch? | Ein Vorteil von Stromklassen ist, dass sie releativ einfach hintereinandergeschachtelt werden können
Wahr
93
Wahr oder Falsch? | Bei einer Serialisierung ist di eAusgabe eine Menge von Klassen, die innerhalb eines Objektgeflechts erreichbar sind
falsch
94
Wahr oder Falsch? | An welche von zwei (passenden) überladenen Methoden ein Methodenaufruf bindet, wird zur Laufzeit entschieden
falsch
95
Wahr oder Falsch? | Es kann nur an überschreibene Methoden dynamisch gebunden werden
wahr
96
Wahr oder Falsch? | Innerhalb einer statischen Methode kann niemals eine nichtstatische Methode aufgerufen werden
falsch
97
Wahr oder Falsch? | in Java hat (außer object) jede Klasse genau einen unmittelbaren Supertypen
falsch
98
``` Wahr oder Falsch? Das Programm class x {Object o = „x“;} kompiliert fehlerfrei ```
wahr
99
``` Wahr oder Falsch? Das Programm class x {String o = new Object();} kompiliert fehlerfrei ```
falsch
100
Zugriffsmethoden
Getter und setter
101
Erklären Sie kurz den Begriff „Überschreiben von Methoden“
Eine von einer Superklasse an die Subklasse verebte Methode kann in der Subklasse durch eine Methode gleicher Signatur ersetzt werden. Dabei „überschreibt“ die Subklassen-Methode die Superklassen-Methode und kann eine komplett neue Implementierung besitzen.
102
Welches Java-Schlüsselwort muss wie verwendet werden, wenn Sie aus einer überschreibenden Methode auch auf die Implementierung der überschriebenen Methode zugreifen wollen?
Dies ist in Java durch Voranstellen des Schlüsselworts super möglich. Eine Methode m der Superklasse kann mittels super.m() aus dem Rumpf der überschreibenden Methode aufgerufen werden.
103
Aus welchen Elementen kann eine Interface-Deklaration bestehen?
 (teilweise optionale) Zugriffsmodifikatoren;  Name des Interfaces;  eine optionale Liste von Typparametern, ggf. mit Schranken;  eine optionale Liste von Namen von Interfaces (als Supertypen), die dieses Interfaces erweitert;  benannte Konstanten, d.h. final deklarierte statische Felder;  erweiterte Methodensignaturen, die durch Klassen, die dieses Interface als Supertyp deklarieren, implementiert werden müssen.
104
Einer Ihrer Kollegen sagt Ihnen: „Interfaces in Java sind überflüssig. Statt ihnen könnte man in Java genauso abstrakte Klassen verwenden.“ Was sagen Sie dazu? Begründen Sie!
Zwar ist es möglich, abstrakte Klassen zur Deklaration der öffentlichen Schnittstelle von Objekten zu verwenden; allerdings erlaubt Java aufgrund der fehlenden Mehrfachvererbung nicht, zu einer Klasse mehrere (abstrakte) Superklassen zu spezifizieren. In der Konsequenz könnte jede Klasse nur einen direkten Supertyp haben. Dahingegen können zu einer Klasse mehrere Interfaces als Supertypen spezifiziert werden, sodass eine Klasse auch mehrere direkte Supertypen haben kann.
105
Statischen Methoden fehlt ebenso wie statischen inneren Klassen eine Eigenschaft, die den nichtstatischen Methoden bzw. nichtstatischen inneren Klassen implizit gegeben ist. Welche ist das?
Nichtstatische Methoden und nichtstatische innere Klassen haben eine implizite Referenz (bei Methoden auch impliziter Parameter genannt) auf das this-Objekt (auch self-Objekt genannt).
106
Unbennante Konstanten
Werte, Zeichen, z.B. 42, "Hallo"
107
Wozu dienen Interfaces?
Durch ein Interface kann eine öffentliche Schnittstelle als Typ definiert werden. Klassen können Interfaces als Supertypen angeben und damit zusagen, dass ihre Instanzen diese Schnittstelle bedienen können.
108
Wozu dienen abstrakte Klassen?
Abstrakte Klassen dienen dazu, von mehreren Subtypen gemeinsam genutzte Teile der Implementierung an einer Stelle zusammenzufassen und Programme dadurch pflegeleichter zu machen.
109
Wieso erlaubt der Java-Compiler es nicht, eine Methode einer abstrakten Klasse sowohl abstract als auch private zu deklarieren?
Eine Methode, welche abstract deklariert ist, verfügt über keine Implementierung. Durch ihre Deklaration wird gewissermaßen bekannt gegeben, dass eine Methode mit dieser Signatur auf dem Objekt aufgerufen werden kann. Welcher Code beim Aufruf ausgeführt werden soll, ist jedoch nicht definiert und muss erst in den Subklassen festgelegt werden. Dies geschieht, indem die abstrakte Methodendeklaration überschrieben und eine Implementierung angegeben wird. Methoden, welche private deklariert sind, sind jedoch in den Subklassen nicht sichtbar, sodass sie insbesondere auch nicht zum Überschreiben zur Verfügung stehen. Für abstract deklarierten Methoden mit private Sichtbarkeit könnte so niemals eine Implementierung angegeben werden und die abstrakte Klasse wäre nutzlos.
110
Anstatt eines Interfaces könnte man auch eine abstrakte Klasse deklarieren, in der alle Methoden öffentlich und abstrakt sind. Wieso kann man in Java auf Interfaces dennoch nicht verzichten?
Zu jeder Klasse kann jeweils nur genau eine Superklasse angegeben werden. Ohne Interfaces könnte eine Klasse so lediglich einen einzigen direkten Supertyp haben. Dies bedeutet jedoch eine zu starke Einschränkung für die Entwicklung großer Softwaresysteme. Durch Interfaces ist es hingegen möglich, zu jeder Klasse mehrere Supertypen anzugeben, sodass Instanzen einer Klasse gleichzeitig mehrere Supertypen haben können, die selbst in keiner Subtypbeziehung zueinander stehen. Damit stellen sie eine wichtige Voraussetzung für die Umsetzung von Polymorphie in Java dar.
111
Wahr oder falsch | static und final können niemals gemeinsam verwendet werden.
Falsch
112
Wahr oder falsch | Jede beliebige Klasse darf auch static deklariert werden.
Falsch
113
Wahr oder falsch | Ein Attribut, welches final deklariert ist, muss stets an der Deklarationsstelle initialisiert werden.
Falsch
114
Wahr oder falsch | Eine Methode, die final deklariert ist, kann in Subklassen der definierenden Klasse nicht überschrieben werden.
Wahr
115
Wahr oder falsch Wird eine Klasse als final deklariert, bedeutet dies, dass sie ausschließlich über final deklarierte Attribute verfügen darf.
Falsch
116
Wahr oder falsch | Attribute, die in einem Interface deklariert werden, sind implizit static und final.
Wahr
117
Wahr oder falsch | Ein typisches Beispiel für eine final deklarierte Klasse des JDK ist java.lang.Object.
Falsch
118
Wahr oder falsch In der Implementierung von anonymen Klassen, die innerhalb von Methodenrümpfen definiert werden, darf nur dann auf lokale Variablen des Rumpfes zugegriffen werden, wenn diese Variablen final sind.
Wahr
119
Wahr oder falsch | Methoden, die static deklariert sind, werden nicht dynamisch gebunden.
Wahr
119
Wahr oder falsch Jeder Konstruktor ist implizit static. Man kann das Schlüsselwort static also auch explizit bei jeder Konstruktordeklaration mit angeben.
Falsch
119
Ein C++-Entwickler vermisst die Polymorphie, die in C++ mit Mehrfachvererbung einhergeht, in Java. Welche Alternative bzw. welchen Kompromiss können Sie ihm in Java anbieten?
(Abs. 3.3.2) In Java gibt es keine Mehrfachvererbung – eine Klasse kann jeweils nur eine Klasse als ihre Superklasse deklarieren. Um dennoch zu einer Klasse mehrere Supertypen anzugeben, müssen diese als Interfaces definiert werden, von denen Klassen beliebig viele implementieren dürfen. So ist es möglich, dass Instanzen einer Klasse gleichzeitig mehrere, in keiner Subtypbeziehung stehenden Typen haben können.
120
Ein C#-Entwickler vermisst Methodentypen, um einen Algorithmus als aktuellen Parameter einer anderen Methode anzugeben. Welche Alternative bzw. welchen Kompromiss können Sie ihm in Java anbieten?
(Abs. 3.2.6.3) In Java ist es nicht möglich, eine Methode direkt zu referenzieren. Um einen Algorithmus dennoch in einer Variable referenzieren zu können, kann man eine Schnittstelle definieren, die genau eine Methode deklariert. Verschiedene Klassen (typischerweise anonyme Klassen) können diese Schnittstelle implementieren und jeweils eine individuelle Implementierung dieser Methode bereitstellen. An den Stellen, an denen in anderen Programmiersprachen einen Zeiger auf eine Methode verwendet wird, wird nun eine Referenz auf eine Instanz einer solchen Klasse übergeben.
120
.
.
121
Was bezeichnet this im Rumpf einer Methode?
this bezeichnet im Rumpf einer Methode das Objekt, dem die Nachricht geschickt wurde, die zur Ausführung der Methode führte, auch als "impliziter Parameter" des Methodenaufrufs bezeichnet.
122
Was bezeichnet this innerhalb eines Konstruktors?
In einem Konstruktor bezeichnet this das Objekt, das gerade initialisiert wird.
123
An welchen Stellen im Programm ist ein Aufruf this() möglich und was bedeutet er?
Der Ausdruck this() ruft einen anderen (in diesem Fall parameterlosen) Konstruktor desselben Objekts auf. Er muss der erste Ausdruck innerhalb eines Konstruktors sein.
124
Warum führt die Verwendung von this innerhalb des Rumpfs einer statischen Methode (mit Ausnahme von Konstruktoren) zu einem Compilerfehler?
this bezeichnet im Rumpf einer Methode das Objekt, dem die Nachricht geschickt wurde. Statische Methoden werden aber nicht auf einem konkreten Objekt, sondern nur auf einer Klasse (bzw. Typ) aufgerufen, weswegen die Verwendung von this hier keinen Sinn ergibt.
125
Was können abstrakte Klassen an Subklassen vererben?
Abstrakte Methoden ebenso wie jede andere Deklaration, die auch von nicht abstrakten Klassen vererbt wird (Attribute, Methoden, innere Klassen…)
126
Wozu können abstrakte Klassen verwendet werden?
Abstrakte Klassen können verwendet werden, um gemeinsame Implementierungsteile zukünftiger Subtypen an einer Stelle zusammenzufassen und damit die Programme kleiner und pflegeleichter zu machen.
127
Beispiel: while-Schleife, die Iterable ausnutzt.
Iterator iterator = liste.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); }