CoboCards App FAQ & Wishes Feedback
Language: English Language
Sign up for free  Login

Get these flashcards, study & pass exams. For free! Even on iPhone/Android!

Enter your e-mail address and import flashcard set for free.  
Go!
All main topics / Informatik / Java

Java (135 Cards)

Say thanks
1
Cardlink
0
Was versteht man unter Programmiertechnik?
Methoden und Prinzipien zur Erstellung von Computerprogrammen.
Tags: Terminologie
Source: VL 1, Haase, Programmiertechnik 1, Einführung
2
Cardlink
0
Warum wird Event-Handling beim Graphical User Interface verwendet?
Event Handling wird zur Interaktion zwischen Nutzer und Applikation verwendet. Der Computer muss auf die Nutzereingaben wie das drücken der ESCAPEtaste reagieren können.
Tags: VL 09 GUI Event-Handling
Source:
3
Cardlink
0
Wie sieht die Abrufabfolge beim Event-Handling aus?
- Während eine Oberfläche angezeigt wird, liegt Programmsteuerung bei Java-Fenstersystem

- Tritt das Event ein, informiert das Fenstersystem zuerst die Komponente (z.B. Button)
‐ die Komponente informiert anschließend alle ihre angemeldeten  Listener

- Programmsteuerung wird an unseren Code abgegeben
‐ am Ende von  actionPerformed kehrt Programmsteuerung zurück zum Fenstersystem
Tags: VL09 GUI
Source:
4
Cardlink
0
Was ist ein Event?
Ein Event ist eine Aktion, die der Nutzer beim Arbeiten mitgrafischen Oberflächen auslösen kann.
Tags: VL 09 GUI Event-Handling
Source:
5
Cardlink
0
Was ist eine Ergebnisquelle?
Eine Ereignisquelle auch Event Source ist  jede beliebige Komponente einer grafischen Oberfläche.
Tags: VL 09 GUI Event-Handling
Source:
6
Cardlink
0
Welche Implementierungsmöglichkeiten gibt es  beim Listener?
1.Realisierung der Listener-Klasse als innereKlasse
2.Realisierung der Listener-Klasse als anonymeKlasse
3.Container-Klasse wird selbst zur Listener-Klasse
4.Realisierung der Listener-Klasse als separate Klasse
Tags: VL 09 GUI Event-Handling
Source:
7
Cardlink
0
Welche Komponenten sind am Event-Handling beteiligt?
1.  Quelle das heißt GUI
2. Event : der Nutzer interagiert, z.b. durch klicken eines        Taste/Buttons
3. Listener: Swing/AWT stellt  Listener-Interfaces zur Verfügung
Tags: VL09 GUI
Source:
8
Cardlink
0
Inwieweit hilft Swing bei der Unterstützung beim Event-Handling?
1. Schritt : Button wird vom Nutzer angeklickt
2. Schritt: nimmt das Event entgegen(=> Java Fenstersystem )
3. Schritt: leitet Event weiter
4. Schritt: die Komponente Button informiert dann den Listener
5. Schritt: der Listener implementiert
Tags: VL 09 GUI Event-Handling
Source:
9
Cardlink
0
Welche Aufgaben gibt es beim Event-Handling?
Eine Aufgabe ist das ein passendes Listener-Interface implementiert werden muss.

Eine weitere Aufgabe ist das der Listener bei einer Komponente z.b. Button angemeldet werden muss.
Die Komponenten informieren alle angemeldeten Listener, wenn Event auftritt.
Tags: VL 09 GUI Event-Handling
Source:
10
Cardlink
0
Was ist ein Getter(Get bzw. Gib-Methode)?
Ein Getter ist ein Zugriffsmethode, die eine Eigenschaft eines Objekts abfragt, auch Abfragemethode genannt.
Tags: VL 06 Einführung in die OOP
Source:
11
Cardlink
0
Was ist ein Setter( Set bzw. Setze-Methode )?
Ein Setter ist eine Zugriffsmethode, die eine Eigenschaft eines Objekts(Werte von Instanzvariablen) ändert. Es liefert keine Werte zurück.
Tags: VL 06 Einführung in die OOP
Source:
12
Cardlink
0
Was sind die Aufgaben und Vorteile eines Java-Compilers?
- Hinweisen auf Syntaxfehler
- Optimierung des Quelltextes
- Übersetzung von Java-Quelltext (Input) in Bytecode (Output)
- Liefert ein maschinennahes Zwischenformat
- ist plattformunabhängig und damit portabel
Tags:
Source: VL 1
13
Cardlink
0
Was ist ein Interpreter?
Ein Programm, das Quellcode während der Laufzeit einliest, analysiert und ausführt.
Tags:
Source: VL 1
14
Cardlink
0
Was sind einige Vorteile von Java als Interpretersprache?
- Keine direkte Ausführung auf echter Maschine
- Interpretation auf virtueller Maschine bewirkt, die Unabhängigkeit von der Maschine
- Java-Bytecode-Interpreter = Java-Virtuelle-Maschine (JVM)
- Effizienzsteigerung durch Just-in-time-compilation (JIT)
Tags:
Source: VL 1, Prof. Dr. Maic Masuch, Einführung in die Programmierung SS2010, Einführung
15
Cardlink
0
Was ist ein Computerprogramm?
Folge von Anweisungen, die auf einem Computer zur Ausführung gebracht werden können, um eine bestimmte Funktionalität zu erzeugen.
Tags: Terminologie
Source: VL 1, Haase, Programmiertechnik 1, Einführung
16
Cardlink
0
Was ist ein Programm?
Eine Folge von Anweisungen
Tags: Terminologie
Source: VL 1
17
Cardlink
0
Was ist ein Algorithmus?
Eine fest definierte Folge von (einfachen) Anweisungen zur Lösung eines konkreten Problems. (Vgl. Kochrezept)
Tags: Terminologie
Source: VL 1
18
Cardlink
0
Was sind die Eigenschaften bzw. Anforderungen an einen Algorithmus?
- Bestimmtheit
- Effektivität
- Input
- Output
- Endlichkeit
Tags: Terminologie
Source: VL 1, Schiedermeier
19
Cardlink
0
Was versteht man unter Datenstruktur? Nenne Beispiele!
Vorgegebener Aufbau zur Speicherung von Daten.

- legt Möglichkeiten für Zugriff und Verwaltung fest
- Beispiele: Graph, Liste, Baum
- legt fest WIE etwas gespeichert wird, nicht WAS
Tags: Terminologie
Source: VL 1
20
Cardlink
0
In welchen Punkten unterscheiden sich menschliche Sprache und Computersprache?
Tags: Terminologie
Source: VL 1, Prof. Dr. Maic Masuch, Einführung in die Programmierung SS2010, Einführung
21
Cardlink
0
Warum nutzt man Programmiersprachen?
- Komplexe Befehle lassen sich nicht / schwer in Maschinensprache programmieren.
- Das Übersetzen der menschlichen Sprache in Maschinensprache wäre zu komplex und nicht eindeutig.
Tags:
Source: VL 1
22
Cardlink
0
Wofür ist Ada Lovelace berühmt.
Schreiben des ersten Computeralgorithmus (1843).
Tags:
Source: VL 1
23
Cardlink
0
Was zeichnet Assemblersprachen aus?
- hardwareabhängig
- wenig Abstraktion (d.h. nah an der Maschinensprache)
Tags:
Source: VL 1
24
Cardlink
0
Was ist Java?
a) Entwicklungsplattform
    zur Entwicklung und Ausführung von Programmen

b) objektorientierte Programmiersprache
Tags:
Source: VL 1
25
Cardlink
0
Was sind die Vorteile von Java?
- einfache, klare, objektorientierte Konzepte
- die Programmiersprache des Internets (Web-Services, E-Commerce, E-Banking, Applets, Servlets,...)
- große Auswahl an Programmbibliotheken für
  - grafische Benutzeroberflächen
  - Computerkommunikation
  - verteilte Anwendungen
  - Datenbanken
- hohe praktische Relevanz
- plattformunabhängig
Tags:
Source: VL 1, Prof. Dr. Maic Masuch, Einführung in die Programmierung SS2010, Einführung
26
Cardlink
0
Wofür eignet sich Java weniger?
- hohe Echtzeitperformance (Computerspiele,...)
- individuelle Benutzungsinterfaces
- Zugriff auf Hardware
- CD auswerfen
- Zugriff auf USB
- Bildschirm auf der Textkonsole löschen, Curser positionieren und Farben setzen
- Verknüpfungen löschen
Tags:
Source: VL 1, Prof. Dr. Maic Masuch, Einführung in die Programmierung SS2010, Einführung
27
Cardlink
0
Wie ist der Weg vom Programm zur Ausführung (unter Verwendung von Java)?
1. Programmierung
   -> Java Code
2. Übersetzung durch Compiler
   -> Bytecode
3. Interpretation durch Interpreter
   -> Ausführung
Tags:
Source: VL 1
28
Cardlink
0
Was ist ein Compiler?
=Übersetzer

Programm, das ein Quellprogramm in ein Zielprogramm (Assemblersprache, Bytecode oder Maschinensprache) übersetzt (Kompilierung).
Tags: Terminologie
Source:
29
Cardlink
0
Woraus besteht ein Java-Programm?
aus einer oder mehreren Klassen
Tags: Programmelemente
Source: VL 2
30
Cardlink
0
Wie ist eine Java-Klasse aufgebaut?
- als Block
- besteht aus beliebig vielen Membern
- Member kann Methode oder Variable sein

Man kann sich eine Klasse als "Gerüst" oder "Schablone" vorstellen.
Tags: Programmelemente
Source: VL 2
31
Cardlink
0
Was ist der Unterscheid zwischen Methoden und Variablen?
Methode = Verhalten einer Klasse (Was kann die Klasse?)
Variable = Daten einer Klasse (Was weiß die Klasse?)
Tags: Programmelemente
Source: VL 2
32
Cardlink
0
Was sind die Eigenschaften von Instanzen?
- Von einer Klasse können beliebig viele Instanzen erzeugt werden.
- Daten sind je Instanz variabel -> Variablen
- Verhalten ist für alle Instanzen einer Klasse gleich -> Methoden
Tags: Programmelemente
Source: VL 2
33
Cardlink
0
Was bezeichnen NAMEN in einem Programm? Woraus bestehen sie? Was ist bei der Namensvergabe zu beachten?
- bezeichnen "Dinge", z.B. Variablen, Methoden, Typen

- bestehen aus
   - Buchstaben
   - Ziffern
   - '_' und '$'

- zu beachten:
   - Erster Buchstabe muss Zeichen, Buchstabe, '_' oder '$' sein
   - case-sensitive (Groß-/Kleinschreibung beachten!)
Tags: Programmelemente
Source: VL 2
34
Cardlink
0
Was sind Schlüsselwörter und was kennzeichnet sie?
- spezielle Namen
- sind von Java reserviert und dürfen nicht für eigene Namen genutzt werden
- werden zur Einleitung oder Hervorhebung von Programmteilen genutzt (int, class, new, void, for,...)
- werden in Java immer klein geschrieben
Tags: Programmelemente
Source: VL 2
35
Cardlink
0
Nenne einige Java-Schlüsselwörter!
Tags: Programmelemente
Source: VL 2
36
Cardlink
0
Wie ist eine Variable aufgebaut?
<TYP>  <BEZEICHNER> = <WERT>

Die Wertzuweisung ist dabei optional.
Tags: Programmelemente
Source: VL 2
37
Cardlink
0
Was ist die Aufgabe der Typ-Deklaration und welche Arten von Typen gibt es?
Legt fest, von welcher Art die Daten sein können, die eine Variable annimmt.

Tags: Programmelemente
Source: VL 2
38
Cardlink
0
Was sind primitive Datentypen und welche gibt es?
in Java integrierte Schlüsselwörter.


Eselsbrücke für die Reihenfolge der Zahlentypen:
Beiß kurz ins lange Floß - zweimal!
Tags: Programmelemente
Source: VL 2
39
Cardlink
0
Was kennzeichnet Zeichen?
- Primitiver Typ char basiert auf Unicode
- wird mit einfachen Hochkommata '...' initialisiert
- zur Verwaltung einzelner Zeichen gedacht
Tags: Programmelemente
Source: VL 2
40
Cardlink
0
Was kennzeichnet eine statische Typisierung?
- Java ist statisch typisierte Sprache (mögliche Werte sind vorbestimmt)
- größere Fehlersicherheit
- höhere Laufzeiteffizienz
- geringere Flexibilität
- aufwendige Compiler
- Es gibt auch dynamisch typisierte Sprachen (Ruby, PHP).
Tags: Programmelemente
Source: VL 2
41
Cardlink
0
Was ist bei der Wahl eines Bezeichners für eine Variable zu beachten?
- beliebiger, eindeutiger Name
- kein Java-Schlüsselwort verwenden
- Kann $, _ und Ziffern enthalten, sollte aber vermieden werden
- Immer mit einem Buchstaben beginnen
Tags: Programmelemente
Source: VL 2
42
Cardlink
0
Was versteht man unter Variablendeklaration?
- Vorgang der Variable einen Typ zuzuordnen
- legt Wertebereich und Typ fest
- Aufbau:
- macht Variable im Programm bekannt
Tags: Programmelemente
Source: VL 2
43
Cardlink
0
Was ist ein Literal? Nenne Beispiele für unterschiedliche Typen!
Konstanter Ausdruck
- kann verwendet werden, um Variable zu initialisieren
- Wert, der einer Variablen zugewiesen wird

Tags: Programmelemente
Source: VL 2
44
Cardlink
0
Was kennzeichnet einen String?
- kein primitiver Typ, sondern Referenzdatentyp
- Verwaltung nicht änderbarer Zeichenketten
   Sammlung von Zeichen des Typs char
- Deklaration analog zu Variablen des primitiven Typs
- Initialisierung mit Anführungszeichen "..."
Tags: Programmelemente
Source: VL 2
45
Cardlink
0
Was sind Operatoren, Operanden und Operationen?
- Operatoren verknüpfen Operanden
- Operanden sind Variablen oder Literale
- Operation = Anwendung eines Operators auf mindestens einen Operanden
- jede Operation liefert einen Ergebniswert
- Operatoren sind typisiert, d.h. erwarten einen Operanden eines bestimmten Typs
Tags: Programmelemente
Source: VL 2
46
Cardlink
0
Welche Operatorengruppen gibt es in Java?
- arithmetische Operatoren
- Vergleichsoperatoren
- logische Operatoren
- bitweise Operatoren
- Zuweisungsoperatoren
- bedingte Operatoren
- New-Operator
Tags: Programmelemente
Source: VL 2
47
Cardlink
0
Von welchen Operatoren-Arten spricht man abhängig von der Anzahl der Operanden?
- unäre (Bsp.: Vorzeichenoperatoren)
- binäre
- ternäre
Tags: Programmelemente
Source: VL 2
48
Cardlink
0
Welche arithmetischen Operatoren gibt es?
Tags: Programmelemente
Source: VL 2
49
Cardlink
0
Von welchem Datentyp sind Operanden und Ergebnis bei arithmetischen Operationen?
Operanden:
- entweder numerisch
(byte, short, int, long, float, double)
- oder (Ausnahmefall) char

Ergebisse:
- immer numerisch
(double, float, long, int)
Tags: Programmelemente
Source: VL 2
50
Cardlink
0
Welche logischen Operatoren gibt es?
Was ist ihr Zweck?
Von welchem Typ sind Operanden und Ergebnis?

- zum Vergleich von Wahrheitswerten

- Operanden- + Ergebnistyp: boolean
Tags: Programmelemente
Source: VL 2
51
Cardlink
0
Wodurch zeichnen sich Vorzeichenoperatoren aus?
Zeige ein Beispiel!
- unäre Operatoren (beziehen sich auf einen Operator)
- wie in Mathematik (Plus/Minus-Zeichen)


Beispiel:

float hoehe = 1.25f;                      / / ist identisch mit...
float hoeheAlternativ=+1.25f      / /...dieser Variante

int negativHohe=-hoehe;           / /Operant ist hier eine Variable
int temperatur=-5;                      / /... hier das Literal 5

-binäre Operatoren (zwei Operanden)
- Platzierung zwischen Operanden (wie in Mathe)

Beispiel:
int summe = 3 + 4;   / / 3 + 4 wird berechnet und summe zugewiesen
int produt = summer * summe;    / /operanden sind diesmal Variablen
52
Cardlink
0
Was ist der Modulo-Operator?
Modulo-Operator (%) bestimmt ganzzahligen Divisionsrest

ACHTUNG: Modulo-Rechnung und Division können dasselbe Ergebnis erzielen, sind aber grundlegend verschieden!
Tags: VL Programmelemente
Source:
53
Cardlink
0
Was sind Inkrement/Dekrementoperatoren?
- implizite Wertveränderung einer Variablen
zb:

   int zaehler = 0;
   zaehler = zahler + 1; is das selbe wie zaehler++

- kann nicht auf Literale angewandt werden, nur auf Variablen!

- können vor und nach Operand platziert werden
- Verarbeitungsreihenfolge ist aber unterschiedlich!
- Preinkrement/dekrement ändert Wert nachdem Weiterverarbeitung

Tags: VL Programmelemente
Source:
54
Cardlink
0
Welche Vergleichsoperatoren gibt es?
Was ist ihr Zweck?
Von welchem Typ sind Operanden und Ergebnis?

- binäre Operatoren
- zum Wertevergleich

- Operanden
  entweder numerisch
  oder char

- Ergebnis
  immer boolean
Tags: Programmelemente
Source: VL 2
55
Cardlink
0
Welche Zuweisungsoperatoren gibt es?
Was ist ihr Zweck?
Von welchem Typ sind Operanden und Ergebnis?

- binäre Operatoren
- Kurzschreibweise
- Operatoren sind
  - numerisch
  - char
  - Objektreferenzen (nur einfache Zuweisung!)
Tags: Programmelemente
Source: VL 2
56
Cardlink
0
Wie bestimmt sich die Auswertungsreihenfolge bei mehreren Operatoren?
- durch Assoziativität (bei Operatoren gleicher Priorität)

- durch Prioritäten:
Tags: Programmelemente
Source: VL 2
57
Cardlink
0
Welche Arten von Typumwandlungen gibt es? Wie unterscheiden sie sich?
Implizite Typumwandlung
Werte kleineren Typs werden an Werte größeren Typs übergeben
-> automatische Konvertierung durch Java

Explizite Typumwandlung
- Konversion von Werten größeren Typs in kleineren Typ wird erzwungen.
- Kann zu Informationsverlust führen.
Tags: Programmelemente
Source: VL 2
58
Cardlink
0
Wie sind Klassen und Methoden strukturiert?
- in Blöcken
- "Methoden-Böcke"  können sich gegenseitig aufrufen
- "main" ruft den ersten Methoden-Block auf.
- Methoden = untergeordnete Struktureinheiten einer Klasse


Tags: VL 03 Kontrollstrukturen
Source:
59
Cardlink
0
Warum nutzen wir Methoden?
1) Wiederverwendbarkeit
2) Definition benutzerspezifischer Operationen
3) Strukturierung von Programmen
4) Lokalität
Tags: VL03 Kontrollstrukturen
Source:
60
Cardlink
0
Wie heißt der Teil einer Methode, die auszuführende Anweisungen beinhaltet?
Die Anweisungen, die in einer Methode ausgeführt werden sollen, stehen im sog. Rumpf.

Tags: VL 03 Kontrollstrukturen
Source:
61
Cardlink
0
Woraus bestehen Klassen?
Klassen bestehen aus verschiedenen Membern.

Diese Member können METHODEN (Verhalten) oder VARIABLEN (Daten) sein
Tags: VL 03 Kontrollstrukturen S. 5
Source:
62
Cardlink
0
Was sind die wichtigsten Dinge, die man über MAIN-METHODEN wissen sollte?
- JVM startet ein Programm immer in der main-Methode
- main-Methode ist eine Ausnahme, da sie von der JVM aufgerufen wird
- Signatur (Aufbau) ist entscheidend, damit die JVM die Methode findet!

             public static void main (String[ ] args) {
              }

(Signatur ist hier alles vor der ersten geschweiften Klammer)

- main-Methode: immer innerhalb einer Klasse
- Klasse mit main-Methode = "Start-Klasse"

NUR Start-Klassen besitzen "main" !!!
Tags: VL 03 Kontrollstrukturen
Source:
63
Cardlink
0
Wie ist eine Methode aufgebaut?
Was bedeuten die einzelnen Komponenten von Kopf u. Rumpf?
Als Beispiel eine main-Methode:
      public static void main (String[] args) {
      // Inhalt
       }


- Signatur der Methode ( auch Kopf genannt)
- Signatur indentifiziert Methode eindeutig
(gilt für alle Methoden in Java)


-Rumpf beinhaltet Anweisungen
(gilt auch für alle Methoden in Java)

public an erster Stelle
= Modifizierer (Schlüsselwort)
macht Methode öffentlich
d.h. können von anderen Klassen aufgerufen werden
      main sollte ausschließlich von JVM aufgerufen werden

static an zweiter Stelle
= Modifizierer (Schlüsselwort)
macht Methode statisch verfügbar
d.h. Aufrufer (bei main-Methode: JVM) kann Methode aufrufen, ohne Objekt der Klasse erzeugen zu müssen

void an dritter Stelle
= spezieller primitiver Datentyp(Schlüsselwort)
Rückgabetyp der Methode
d.h Methode gibt einem Aufruf keine Antwort
      Methoden können ihrem Aufrufer prinzipiell eine Antwort geben
Hier benötigt der Aufrufer (bei einer main-Methode ist der Aufrufer die JVM) keine Antwort; also ist der Rückgabetyp "void".
(void = engl. = Lücke)

main an vierter Stelle
= Bezeichner der Methode (quasi reservierter Begriff)
- keine andere Methode darf main heißen !!!

Parameterliste in runden Klammern nach Methoden-Bezeichner
main hat einen Parameter namens args(argument string)
JVM kann bei Programmstart Informationen an Programm geben
Tags: VL 03 Kontrollstrukturen
Source:
64
Cardlink
0
Was sind Kontrollstrukturen  bzw. was sind ihre Aufgaben?
- steuern Ablauf, d.h  legen Ausführungsreihenfolge fest
- sind zusammengesetzte Anweisungen, bestehend aus mehreren einfachen, untergeordneten Anweisungen
- gehören zu wichtigsten Bestandteilen der Programmierung

=> Basis für jede Programm
65
Cardlink
0
Welche  zwei Arten von Kontrollstrukturen gibt es und was unterscheidet sie?
Verzweigungen
   welche Programmstrukturen werden ausgeführt ( "wenn-sonst")

Schleifen
   Anweisungen werden wiederholt abgearbeitet ("solange-bis")
66
Cardlink
0
Welche zwei Arten von Verzweigungsanweisungen gibt es in Java und was unterscheidet sie?
if- Anweisung :
mächtiger als switch-case

switch-case- Anweisung:
performanter, in bestimmten Fällen eleganter
67
Cardlink
0
Aus welchen Elementen besteht eine if-Anweisung? Welche ergänzenden Konstrukte sind möglich?
   if( <Bedingung> ) {
         <Anweisung>
    }

if-Schlüssel leitet if-Anweisung ein

<Bedingung> Ausdruck, der von Compiler ausgewertet wird
entweder "true" oder "false"  -> "boolscher Ausdruck"
steht immer in runden Klammern

<Anweisung>: was soll gemacht werden, wenn Bedingung zutrifft?
in geschweiften Klammern als Block gekennzeichnet


Beispiel:

if( Kamin.temperatur <100) {
   brennholz = neuesBrennholz();
   Kamin.nachlegen(brennholz);
   Kamin.Luftzufuhr.oeffnen();
                                            }



if -Anweisung kann weitere Alternativzweige besitzen

else-if-Schlüsselwörter leiten weiteren Zweig ein


if-Anweisung kann am Ende Standardverhalten haben

else-Schlüsselwort leitet Standardverhalten-Zweig ein
keine Bedingung !!! Wird immer ausgeführt, wenn keine der vorherigen Bedingungen zutrifft.
<Anweisung>: Was soll gemacht werden, wenn Bedingung zutrifft?

If-Anweisung ist selbst auch eine Anweisung.
Schachtelung bei if-Anweisungen möglich!

68
Cardlink
0
Aus welchen Elementen besteht eine switch-case-Anweisung?
      switch  ( <Schalter> ) {
          case <Konstante>:
                   <Anweisung>
       }

switch-Schlüssel leitet Anweisung ein

Schalter-Ausdruck definiert den Schalter, der den Ablaufsteuert
in runden Klammern
muss immer Variable vom Typ int sein ( byte, short, char und enum auch möglich- werden vom Compiler in int überführt)

case-Blöcke = einzelne Fallunterscheidungen
wird ausgeführt, wenn der Schlater den Wert der case-Konstante hat
in geschweiften Klammern

Standardfall (vgl. else-Zweig) durch default abgedeckt

Fälle müssen mit break ( Schlüsselwort) explizit beendet werden, ansonsten werden alle nachfolgenden Fälle mit abgearbeitet.
69
Cardlink
0
Was passiert, mit Fällen ohne break?
switch-case hat "Durchfall"
-> Fall Through

d.h die nachfolgenden Fälle werden mit abgearbeitet
70
Cardlink
0
Ist es möglich switch-case-Anweisungen in if-Anweisungen zu überführen?
ja!

Jede switch-case-Anweisung kann in eine gleichbedeutenden if-Anweisung überführt werden.

Andersrum ist es jedoch nicht möglich, da eine if-Anweisung zu kompiliziert und verschachtelt agieren kann um sie auf eine "einfache" switch-case-Anweisung runter zu brechen.
Tags: VL 03 Kontrollstrukturen
Source:
71
Cardlink
0
Was sind Schleifen ?
Kontrollstrukturen zur wiederholten Ausführung von Anweisungen

Anweisungen werden solange wiederhoilt, bis eine bestimmte Bedingung nicht mehr erfüllt ist

Alle Schleifen müssen eine Bedingung enthalten!
72
Cardlink
0
Welche 3 Möglichkeiten ginbt es in Java eine Schleife zu definieren?
while-Schleife (Prä-Bedingung)

do-while-Schleife (Post-Bedingung)

for-Schleife (Prä-Bedingung, zwei Varianten)
73
Cardlink
0
Wozu werden Schleifen benötigt?
zur kompakten Darstellung umfangreicher Aufgaben

Beispiel:

auflisten von Zahlen von 1 bis 100

was ist praktischer?
100 Befehle schreiben - oder - Verwendung einer Schleife
Bei einer Zählung von 1 bis 1000 wären es ohne Schleife 900 Zeilen mehr zu schreiben ... mit einer Schleife nur 1 Zeichen ;)
Tags: VL 03 Kontrollstrukturen
Source:
74
Cardlink
0
Aus welchen 3 Elementen besteht die while-Schleife? Wie läuft die Schleife ab?
              while ( <Bedingung> ) {
                        <Anweisung>
              }

while-Schlüsselwort leitet while-Schleife ein

Bedingung: vom Compiler ausgewertet
entwerder true oder false
in runden Klammern

Anweisung
Was soll gemacht werden, wenn Bedingung zutrifft?
in geschweiften Klammern als Block gekennzeichnet

1) Schleife wird betreten
2) nach letzer Anweisung springt Schleife zurück zu Bedingung
3) Verlassen der Schleife, wenn Zustand des Progammes bezüglich der Bedingung irgendwann geändert wird



Tags: VL 03 Kontrollstrukturen
Source:
75
Cardlink
0
Aus welchen 3 Elementen besteht eine do-while Schleife?
        do { 
                <Anweisung>
              }
              while ( <Bedingung> );


do-while-Schlüsselwort leitet Schleife ein
while steht hinter Anweisungsblock vor der Bedingung
Semikolon am Ende!!

Anweisung
Was soll gemacht werden, wenn Bedingung zutrifft?
in geschweiften Klammern als Block gekennzeichnet

Bedingung: vom Compiler ausgewertet
entweder true oder false
in runden Klammern

Bedingung wird am Ende der Schleife geprüft
-> jede do-while-Schleife wird mindestens ein mal durchlaufen



76
Cardlink
0
Aus welchen 5 Elementen besteht die for-Schleife?
       for (<Initialisierung>; <Bedingung>; <Fortschaltung>) {
            <Anweisung>
        }

for-Schlüsselwort leitet for-Schleife ein

Initialisierung  von Zähler-Variable
- immer nur einmal ausgeführt
- es können mehrere Initialisierungen vorgenommen werden
- Variablen müssen vom selben Typ sein
- nicht zwingend erforderlich!

Bedingung: boolscher Ausdruck

Fortschaltung Anweisung die nach Schleifeninhalt ausgeführt wird
- meist zur Fortschaltung der Zähler-Variable
- nicht zwingend erforderlich!

Anweisung: Was soll gemacht werden, wenn Bedingung zutrifft?
in geschweiften Klammern als Block

77
Cardlink
0
Wozu benötigen wir Sprünge ?
Schleifen springen automatisch am Anweisungsende zur Bedingung.
Sprünge können aber auch erzwungen werden.
Tags: VL 03 Kontrollstrukturen
Source:
78
Cardlink
0
Welche 2 Möglichekeiten von Sprüngen gibt es ?
break

continue

- beides eigenständige Anweisungen
- dürfen nur im Schleifenrumpf verwendet werden (Ausnahmen in switch-case-Anweisungen)

79
Cardlink
0
Was bewirkt break?
die Schleife wird sofort verlassen

Programm beginnt mit der ersten Anweisung nach der Schleife

Schleifenabbruch mit break sollte möglichst vermieden werden, stattdessen lieber geeignete Abbruchsbedingungen
80
Cardlink
0
Wann ist break vertretbar?
bei Abbruch wegen Fehlern

bei mehreren Aussprüngen an verschiedenen Stellen der Schleife

bei echten Endlosschleifen ( zB in Echtzeitsystemen )
81
Cardlink
0
Was unterscheidet primitive von Referenzdatentypen?
primitive Typen (Werttypen, einfache Datentypen):
byte, short, int, long, float, double, char, boolean
Variable primitiven Typs enthält Wert direkt.

Referenzdatentypen
◦Felder
◦Klassen
->ermöglichen es, neue, komplexere Typen zu definieren
Variable eines Referenztyps,enthält Verweis auf ein Objekt.

• Definition
‐Werttypen haben feste Größe -> Definition erledigt Compiler
◦z.B.: int -> 4 Byte
‐Referenztypen müssen explizit mit new-Operator definiert werden!
◦Ausnahme: Direkte Feldinitialisierung!
Tags: Felder, VL04
Source:
82
Cardlink
0
Was ist die Kurzschreibweise für eine Schleife, die ein komplettes Array durchlaufen soll?
for (int zahl : lottoZahlen) {
   ...
}
Tags: Felder, VL04
Source:
83
Cardlink
0
Was sind die Unterschiede zwischen flacher Kopie und tiefer Kopie?
Flache Kopie:
•Zuweisungsoperator (=) kopiert lediglich Verweis auf Feld, nicht den Inhalt
•Beispiel:
char[] film = { 'a', 'v', 'a', 't', 'a', 'r'};
char[] spiel = film;

•Beide Referenzvariablen (film und spiel) verweisen auf selbes Objekt und den selben Speicherbereich
•Änderungen am Feld über eine Referenz beeinflussen Inhalt für beide Referenzen!

Tiefe Kopie:
•Um eine "echte" Kopie zu erstellen, muss elementweise kopiert werden.
•Dazu muss mit new-Operator neuer Speicherbereich reserviert werden!
•Änderungen an Original haben keine Auswirkungen auf Kopie.
•Beispiel:
char[] film = { 'a', 'v', 'a', 't', 'a', 'r'};
char[] spiel = new char[6];

for (int i = 0; i < spiel.length; i++) {
spiel[i] = film[i];
}
Tags: Felder, VL04
Source:
84
Cardlink
0
Wie legt man die Feldlänge durch direkte Initialisierung fest?
Beispiel:
boolean[][] konjunktion= { {false, false, false},
                                              {false, true, false},
                                              {true, false, false},
                                              {true, true, true} };


‐Länge der Felder wird implizitdurch Anzahl der Elemente festgelegt.
‐In diesem Fall handelt es sich um eine 4x3 Matrix: 4 Zeilen, 3 Spalten.

entspricht:
boolean[][] konjunktion= new boolean[4][3];
Tags: Felder, VL04
Source:
85
Cardlink
0
Wie durchläuft man ein mehrdimensionale Array?
boolean[][] konjunktion= new boolean[4][3];

/* ... Initialisierung ... */

äußere Schleife zerlegt Matrix in Zeilen (-> Referenzen!)
for (boolean[] zeile : konjunktion) {
innere Schleife durchläuft jede Zeile elementweise
for (boolean element : zeile) {
GraphicIO.output(element+"\t");
}

Zeilenumbruch am Ende jeder Zeile
GraphicIO.output("\n");
}
Tags: Felder, VL04
Source:
86
Cardlink
0
Was ist Eclipse?
•Eclipse ist integrierte Entwicklungsumgebung
‐Programm, das bei der Entwicklung von Programmen hilft
•vereint Entwicklungskomponenten
‐Texteditor
‐Compiler
‐Interpreter
‐Debugger
•unterstützt Entwickler
‐visuell: Code-Highlighting
‐Tipparbeit: Code-Completion
•sehr mächtig, da modular (viele Funktionalitäten)
Tags: Felder, VL04
Source:
87
Cardlink
0
Was ist UML?
UML steht für Unified Modeling Language.

UML ist eine formale Beschreibungssprache zur Spezifikation, Visualisierung, Konstruktion und Dokumentation von Modellen für Softwaresysteme.

Teile der UML sind z.B.
- Klassendiagramm
- Sequenzdiagramm: Laufzeitbeschreibung eines Programms (-> Objekte!)
Tags: Einführung in die OOP, VL 05
Source:
88
Cardlink
0
Wie ist ein UML-Klassendiagramm aufgebaut?
Ein UML-Diagramm besteht aus einem Bezeichner (Name der Klasse), den Daten (Variablen der Klasse) und dem Verhalten (Methoden der Klasse)

Die Sichtbarkeit wird mit Minus & Plus dargestellt  (minus=private, plus=public).

Tags: VL 05
Source:
89
Cardlink
0
Was ist eine gerichtete Assoziation?
Eine gerichtete Assoziation ist eine Klasse, die eine andere Klasse referenziert.
Die Assoziation funktioniert nur in eine Richtung, d.h. Daten fließen nur in eine Richtung.
Tags: Einführung in die OOP, VL 05
Source:
90
Cardlink
0
Was ist eine Aggregation?
“besteht aus”-Beziehung zwischen Ganzem( Raute) und seinen Teilen.
Tags: Einführung in die OOP, VL 05
Source:
91
Cardlink
0
Was ist eine Vererbung?

Vererbung ist eine Beziehung zwischen generellen und speziellen Klassen. Dabei zeigt der Pfeil von der Subklasse auf die Klasse.
Tags: Einführung in die OOP, VL 05
Source:
92
Cardlink
0
Was ist eine Realisierung?
Sie ist eine Beziehung zwischen Spezifikation und der Umsetzung.
Eine Klasse ist Interface, die andere die realte Umsetzung
Tags: Einführung in die OOP, VL 05
Source:
93
Cardlink
0
Was ist ein Objekt? Und was ist der Unterschied zu Klassen?
Klasse gibt mögliche Daten und Verhalten vor
‐beschreibt statische Struktur einer "Sache"
‐statische Struktur ist Referenzdatentyp!

Objekte sind Instanzen der Klasse
‐mit konkreten Daten (z.B. ist Farbe grün)
‐existieren nur während Programm läuft
‐beschreibt einen konkreten Gegenstand
‐das Objekt einfachGruen ist vom Typ Wecker
-Zugriff auf Objekte ist nur durch bestimmte interne Schnittstellen möglich.
Tags: Einführung in die OOP, VL 05
Source:
94
Cardlink
0
Was sind der Grundgedanke und die Vorteile der OOP?
‐Unterteilung eines großen Problems in Teilprobleme (Objekte)
‐Teilprobleme weiter unterteilen, usw.
-> klare Struktur
-> einfache Aufteilung der Arbeit
-> gute Pfleg- und Erweiterbarkeit
-> Teillösungen lassen sich wiederverwenden
Tags: Einführung in die OOP, VL 05
Source:
95
Cardlink
0
Wie werden neue Objekte erzeugt?
Die Definition der Objekte erfolgt durch eine Kombination aus new-Operator und Konstruktor-Aufruf

Deklaration der Referenz
Wecker einfachGruen;

Definition mit new-Operator und Konstruktor-Aufruf
einfachGruen= newWecker();
Tags: Einführung in die OOP, VL 05
Source:
96
Cardlink
0
Was sind Konstruktoren?
Konstruktoren sind Methoden, die immer den Namen ihresTyps tragen. Wobei Rückgabetyp und Bezeichner ein und dasselbe bzw. verschmolzen sind und die neuen Platz im Speicher für ein Objekt "ihres" Typs reservieren.

Die Besonderheit bei Standardkonstruktoren ist, dass sie leere Parameterlisten enthalten.

Außerdem erzeigt ein Konstruktur ein neues Objekt und der Konstruktor kann überladen werden (mehrere Konstruktoren in einer Klasse)
Tags: Einführung in die OOP, VL 05
Source:
97
Cardlink
0
Wofür benutzt man das Schlüsselwort this?
Das Schlüsselwort this wird immer verwendet, um Instanzmember anzusprechen.
Es ist eine Referenz, welche auf das aktuelle Objekt (Exemplar) zeigt.
This wird benötigt, wenn die Instanzvariable von der lokalen Variable verdeckt wird.
Tags: Einführung in die OOP, VL 05
Source:
98
Cardlink
0
Wie lauten die 4 Säulen der objektorientierten Programmierung?
Tags: Einführung in die OOP, VL 05
Source:
99
Cardlink
0
Wozu benötigen wir Kapselung und wie wird sie realisiert?
Kapselung wird als Schutz des inneren Zustands vor unerwünschtem Zugriff gebraucht. (durch private Member)

Durch öffentliche Member werden Schnittstellen vorgegeben, die den Zugriff erlauben.

Schnittstellen sind durchlässige Stellen der "Kapsel", die Kommunikation zwischen den Objekten erlauben.
Tags: VL 05
Source:
100
Cardlink
0
Wie sehen die Sichtbarkeiten von Membern aus?

Z. 2: package-private (Standardeinstellung)
Tags: Einführung in die OOP, VL 05
Source:
101
Cardlink
0
Welche Zugriffsmethoden gibt es bei der Kapselung?
•Akzessoren (auch: Get-bzw. Gib-Methoden): "Zugreifer"
‐fragen Informationen einer Klasse ab
‐lesender Zugriff

•Mutatoren (auch: Set- bzw. Setze-Methoden): "Veränderer“
‐verändern Werte von Instanzvariablen und somit Zustand eines Objekts
‐liefern keine Werte zurück (Rückgabetyp void)
‐erhalten zu setzenden Wert als Parameter
Tags: Einführung in die OOP, VL 05
Source:
102
Cardlink
0
Was bewirkt continue ?
der reguläre Ablauf der Schleife wird unterbrochen und der nächste Schleifendurchgang wird sofort gestartet

sofortige Neuprüfung der Abbruchbedingungen

Ausführung von Anweisungen innerhalb einer Schleife kann teilweise ausgesetzt werden
103
Cardlink
0
Wie nennt man den Kopf einer Methode?
Der Kopf der Methode heißt Signatur und identifiziert die Methode EINDEUTIG!

Hier der nicht grünmarkierte Bereich ;)
Tags: VL 03 Kontrollstrukturen
Source:
104
Cardlink
0
Was sind Super- und Subklassen?
Generalisierende, allgemeinere Klasse heißt Superklasse
- enthält alle gemeinsamen Attribute

untergeordnete Klasse heißt Subklasse
- enthält nur individuelle Attribute und Methoden



Pfeil kann als "ist-ein"-Beziehung gelesen werden
Tags: Generalisierung und Vererbung, VL 07
Source:
105
Cardlink
0
Wozu nutzen wir Generalisierungen?
Bilden gemeinsamer Schnittstellen

Effizienz
Gemeinsame Attribute und Methoden nicht mehrfach implementiert

hierarchische Struktur sorgt für mehr Übersicht

Lesbarkeit
trotz Auslagerung von Codeteilen in Superlassen ist Verteilung durch klare Beziehungen nachvollziehbar

Struktur erweiterbar:
neue Klassen können einfach eingegliedert werden
Tags: Generalisierung und Vererbung, VL 07
Source:
106
Cardlink
0
Wo besteht der Unterschied zwischen Generalisierung und Spezialisierung ?
Generalisierung
- vom Besonderen zum Allgemeinen
- Gemeinsamkeiten in Superklasse auslagern
- Subklassen von Superklassen ableiten (-> Vererbung)

Spezialisierung
vom Allgemeinen zum Besonderen
- neue Subklassen erzeugen
- von Superlasse erben lassen



107
Cardlink
0
Was ist Vererbung und welche Arten gibt es?
Weitergabe von Daten, Verhalten und Benutzbarkeit einer Superklasse an Subklasse

in OOP zwei Arten von Vererbung
  °Implementierungsvererbung (-> Daten und Verhalten)
  °Schnittstellenvererbung (-> Benutzbarkeit)

in Java zwei Arten von Vererbung
- Schlüsselwort extends => alles wird vererbt
  ° Daten
  ° Verhalten
  ° Benutzbarkeit

- Schlüsselwort implements
=> lediglich Schnittstellenvererbung
Tags: Generalisierung und Vererbung, VL 07
Source:
108
Cardlink
0
Wie funktioniert die Vererbung mit "extends"?
Subklasse erbt konkrete Implementierung der Superklasse

bindet Klassen dicht aneinander
- Änderung der Superklasse wirkt sich auf alle Subklassen aus
- Erweiterung der Superklasse muss für alle Subklassen auch gültig sein

Jede Klasse hat maximal eine Superklasse (Einfachvererbung), kann aber beliebig viele Subklassen haben


Syntax
Neu deklarierte Klasse erweitert durch Schlüsselwort extends andere Klassen und erbt von ihr

vererbte Eigenschafte müssen nicht neu deklariert werden


Beispiel
public class Banane extends Obst{
     //...
}
Tags: Generalisierung und Vererbung, VL 07
Source:
109
Cardlink
0
Was wird mit extends vererbt? Gibt die verschiedenen Sichtbarkeiten an!
Subklasse hat Zugriff auf alle öffentlichen und geschützten Member

Private und package-private (default) sind nicht aufgreifbar

Tags: Generalisierung und Vererbung, VL 07
Source:
110
Cardlink
0
Was ist die Klasse "Object" ?
der "big Daddy "

implizite Basisklasse aller Klassen in Java

ohne extends-Anweisung*+ hinter Klassenname erbt Klasse automatisch von Object

alle Klassen ** haben  - direkt oder indirekt - Object als Basisklasse
- erben Reihe von Methoden, u.a toString()


Beispiel

public class Lebensmittel {
    // Klasse erbt von Object, da keine explizite extends-Anweisung
}
Tags: Generalisierung und Vererbung, VL 07
Source:
111
Cardlink
0
Was sind Superkonstruktoren ?
Bei Objekterzeugung zunächst von oben nach unten ausgeführt
- notwendig, um alle Eigenschaften (auch die geerbten) zu initialisieren



Auch parametrisierte Konstruktoren rufen Standard-Konstruktor der Superklasse auf.

Wenn Superklasse keinen Standard-Konstruktor hat, muss expliziter Aufruf erfolgen

public class Obst {
     ....
           public Obst(Color farbe, boolean istReif) {
              
...
           }
}


public class Apfel extends Obst {
     //...
          public  Apfel(boolean hatWurm) {
               super(Color.green, true);
          }
}
Tags: Generalisierung und Vererbung, VL 07
Source:
112
Cardlink
0
Was sind Finale Klassen ?
Um Vererbung zu verhindern hat Java Schlüsselwort final

Manche Klassen sollten vor Vererbung geschützt werden

Syntax:

public final class SecuritySystem{
}
Tags: Generalisierung und Vererbung, VL 07
Source:
113
Cardlink
0
Was sind die Vorteile der Implementierungsvererbung?
Gemeinsame Eigenschaften müssen nur einmal modelliert werden
-> Wiederverwendbarkeirt

erleichert Fehlersuche und -korrektur - > kann zentral durchgeführt werden

reduziert Programmieraufwand und Coderedundanz
Tags: Generalisierung und Vererbung, VL 07
Source:
114
Cardlink
0
Welche Nachteile hat die Implementierungsvererbung?
kein Allheilnittel
- wahre Welt nicht immer hierarchisch
- Vererbung oft inflationär eingesetzt

starke Kopplung zwischen Super- und Subklassen
- Änderung an Super- wirkt sich auf Subklasse aus
- auch über viele Ebenen hinweg

viel Fehlerpotential
- falscher Featureeinsatz
- kaum Schutz vor Fehlverwendung
Tags: Generalisierung und Vererbung, VL 07
Source:
115
Cardlink
0
Was sind abstrakte Klassen und welche Eigenschaften haben sie?
Generalisierungen führen oft zu Klassen, die nie selbst initialisiert werden.

Schlüsselwort abstract verhindert Initialisierbarkeit
- können nicht mit new erzeugt werden

Abstrakte Klassen
- können nicht erzeugt werden
- können abstrakte Methoden beinhalten
- können konkrete Methoden beinhalten

Abstrakte Methoden
- haben keinen Rumpf
- müssen in Subklasse implementiert werden
- spielen bei Polymorphismus noch eine große Rolle
- können nicht in konkreten Klassen definiert werden
Tags: Generalisierung und Vererbung, VL 07
Source:
116
Cardlink
0
Was bedeutet "Program to Interfaces" ?
Programmiere an eine Schnittstellen, nicht an eine Implementierung!

Programmteile (Modul) sollten nur die Schnittstellen voneinander kennen , nicht die Implementierung

"Baukastenprinzip"



Analogie:
USB-Schnittstelle an Computer
- alles mögliche kann angeschlossen werden
( Stcik. Drucker, Maus...)

- dem PC ist das egal
---> lose Kopplung

Gegenbeispiel:
Mikrofon-Eingang
- hier kann auch Lautsprecher angeschlossen werden
-> Schnittstelle passt !
- Lautsprecher realisiert Schnittstelle "Aufnahme" aber nicht!
- so kann nichts aufgenommen werden !

Modul Computer ist von Implementierung des angeschlossenen Gerätes (Mikrofon) abhängig
=> Enge Kopplung
Tags: Interfaces und Polymorphismus, VL08
Source:
117
Cardlink
0
Wieso ist eine enge Kopplung schlecht ?
- Software ist nie "fertig"
- Anforderungen können sich jeder Zeit ändern
- Software wird ständig erweitert/ verändert
- Enge Kopplung zwischen Klassen erschwert Erweiterbarkeit/ Veränderbarkeit
- kleine Änderung kann aufgrund enger Kopplung ganze Systeme lahm legen

     "Domino-Effekt"
- Lose Kopplung wünschenswert

-> Interfaces
Tags: Interfaces und Polymorphismus, VL08
Source:
118
Cardlink
0
Was ist eine Kopplung?
Grad der Abhängigkeit zwischen Teilen eines Programms
Tags: Interfaces und Polymorphismus, VL08
Source:
119
Cardlink
0
Was ist eine Vererbung mit "extends"
entspricht einer engen Kopplung

- Klassen nehmen in vielen Details Bezug aufeinander

Problem: Änderungen an Basisklasse können Funktionalität von Subklasse beeinträchtigen.
Tags: Interfaces und Polymorphismus, VL08
Source:
120
Cardlink
0
Was ist eine Vererbung mit  "implements" ?
- Klassen innerhalb einer Anwendung (fast) unabhängig voneinander
- Verzicht auf vererbte Funktionalität ermöglicht flexiblen Programmentwurf
- Implementierungen sind gezwungen, Interface-Methoden zu überschreiben, bleiben dabei aber austauschbar
- immer zu bevorzugen !!!
Tags: Interfaces und Polymorphismus, VL08
Source:
121
Cardlink
0
Welche Schwächen hat die Vererbung mit "extends"?
Objekte können oft mehr als einer Kategorie zugeordnet werden. Das ist mit extends nicht möglich, weil jede Klasse maximal eine Superklasse hat.

Tags: Interfaces und Polymorphismus, VL08
Source:
122
Cardlink
0
Soll "extends" ganz gemieden werden ?
NEIN

Implementierungsvererbung mit bedacht einsetzen!
- bei wahrer Spezialisierung einer Klasse
- Wenn Programm nicht erweiterbar sein soll
- Wenn große Coderedundanzen vorhanden
Tags: Interfaces und Polymorphismus, VL08
Source:
123
Cardlink
0
Was sind Interfaces ?
zusätzliche Sprachfeature in Java
- "Klasse " ohne Daten und Implementierung

Sammlung abstrakter Methoden und (ggf.) Konstanten

enthält Keine Konstruktoren
-> keine Objekterzeugung möglich
Tags: Interfaces und Polymorphismus, VL08
Source:
124
Cardlink
0
Was sind die Eigenschaften von Interfaces?
Realisierung loser Kopplung

beinhalten ausschließlich öffentliche , abstrakte Methoden sowie Konstanten

können sich gegenseitig erweitern (extends)

können nicht erzeugt werden

Klassen können beliebig viele Interfaces implementieren
Tags: Interfaces und Polymorphismus, VL08
Source:
125
Cardlink
0
Wie werden Interfaces deklariert?
mit Schlüsselwort interface statt class

Konvention: Interface-Bezeichner beginnen immer mit Großem   "I" gefolgt von weiterem Großbuchstaben

Methoden sind implizit abstrakt und öffentlich
( public abstract)
- Modifizierer können weggelassen werden
- deklariert nur Kopf einer Methode ohne Rumpf
- Am Ende abgeschlossen durch Semikolon


Interface für strombetriebene Geräte:
public interface IStrombetrieben{
   
<RÜCKGABETYP><BEZEICHNER> ( <PARAMETER>);
      void einschlaten (int spannung);
      void ausschalten();
}
Tags: Interfaces und Polymorphismus, VL08
Source:
126
Cardlink
0
Wie werden Interfaces implementiert?
mit Schlüsselwort "implements"

Beispiel:

Mixer hat (mind) selbe Schnittstelle wie IStrombetrieben

public class Mixer implements IStrombetrieben{
     private boolean istAn = false;
     private static final int
          MAXIMALE_SPANNUNG = 240;

     public void einschlaten(int spannung){
          if(spannung <= MAXIMALE_SPANNUNG) {
               this.istAn = true;
          }
     }
    
     public void ausschalten(){
          this. istAn = false;
     }
}

Tags: Interfaces und Polymorphismus, VL08
Source:
127
Cardlink
0
Was ist bei der Nutzung von Interfaces zu beachten?
Interface kann als Vertrag betrachtet werden.

Interface-Entwickler legt einzuschaltende Schnittstelle fest

Interface-Nutzer ist verpflichtet, alle Methoden des Interfaces zu implementieren
- falls nicht, gibt Compiler Fehlermeldung aus
- Interface-Entwickler kann sich frühzeitig auf Schnittstelle verlassen -> Polymorphismus
Tags: Interfaces und Polymorphismus, VL08
Source:
128
Cardlink
0
Was ist Polymorphismus?
Objekt kann zu Laufzeit Verhalten ändern

Wir unterscheiden:

Überladen von Methoden (statischer Polymorphismus)
z.B.
- beim Überladen von Konstruktoren (VL05)
- Überladene Funktionen in java-API oder GraphicIO


Überschreiben von Methoden (dynamischer Polymorphismus)
Tags: Interfaces und Polymorphismus, VL08
Source:
129
Cardlink
0
Was bedeutet "Überladen von Methoden"?
- Methoden eines Objektes tragen gleichen Namen und gleichen Rückgabetyp
- müssen unterschiedliche Parameterliste haben
- Methoden befinden sich in gleicher Klasse oder Subklasse.
- Methodensignatur unterscheidet sich lediglich in Parameterliste
-Compiler vergleicht bei Aufruf übergebene Parameter mit Methodensignatur und wählt die am besten passende Methode
- Methoden können beliebig oft überladen werden
-GraphicIO setzt stark auf Überladen von Methoden!
=> Gute Quelle!

Beispiel für unterschiedliche Parameteranzahl:



Beispiel für unterschiedliche Parametertypen:

public void print(int intValue) {
     ...
}

public void print(String stringValue) {
    
...
}

public void printTest(){
     print(137);                    wählt erste "print"-Methode
     print("TEST");             
wählt zweite "print"-Methode
}
Tags: Interfaces und Polymorphismus, VL08
Source:
130
Cardlink
0
Was ist dynamischer Polymorphismus?
Polymorphismus im engeren Sinn

beruht auf 3 Prinzipien
- Überschreiben von Methoden
- Substitutionsprinzip
- späte Bindung/ dynamische Bindung
Tags: Interfaces und Polymorphismus, VL08
Source:
131
Cardlink
0
Was bedeutet "Überschreiben von Methoden"?
- Subklasse erbt Methoden der Superklasse
-Methode, welche in Superklasse definiert ist, wird in Subklasse überschrieben
- komplett gleiche Signatur (Name und Parameterliste), nur Rumpf wird geändert
- Subklasse blendet geerbtes Verhalten aus.

Verhalten kann so genauer an Subklasse angepasst werden.

Ausnahme :
Methoden nicht überschreibbar, wenn sie mit private, final, oder static definiert wurden.
Tags: Interfaces und Polymorphismus, VL08
Source:
132
Cardlink
0
Was ist das Substitutionsprinzip?
Objekttypen:
polymorphe Referenzen - können potentiell verschiedene Typen annehmen .
- den deklarierten Typ und alle seine Subtypen

Objekt von Typ kann also zur Laufzeit substituiert (ersetzt) werden
- Figur kann Kreis, Rechteck, Dreieck oder Kugel sein
- Figur kann sich also entsprechend unterschiedlich verhalten


Erlaubt, weil Subklasse das Verhalten der Superklasse erbt!
Tags: Interfaces und Polymorphismus, VL08
Source:
133
Cardlink
0
Wie unterscheiden sich statischer Typ und Laufzeittyp?
‐ statischer Typ legt Zugriffsmöglichkeiten auf Methoden fest

‐ Methode einer Klasse kann nur von Objekt mit statischem Typ dieser Klasse aufgerufen werden

Beispiel
Kugel kugel;  Deklaration legt statischen Typ fest
kugel = new Kugel() ; Definition legt Laufzeittyp fest

‐ Kugel ist statischer Typ und Laufzeittyp

Figur andereKugel; statischer Typ ist Figur andereKugel
= new Kugel(); Laufzeittyp ist Kugel
andereKugel.rolle(); NEIN! Figur kennt "rolle" nicht!
Tags: Interfaces und Polymorphismus, VL08
Source:
134
Cardlink
0
Wie verläuft die dynamische Methodensuche?
Aufruf der Methode eines Objekts stößt Methodensuche an

Fall1
Klasse des Objektes hat KEINE Superklasse -> in Klassendefinition des Objekts beschriebene Methode wird ausgeführt.

Fall 2
Klasse des Objekts hat Superklasse
a) Klasse des Objekts hat gewünschte Methode überschrieben
->
überschriebene Methode (und nur diese!) wird aufgerufen

b) Klasse des Objekts hat gewünschte Methode NICHT überschrieben -> Methodensuche wird bei Superklasse fortgeführt, usw.
Tags: Interfaces und Polymorphismus, VL08
Source:
135
Cardlink
0
Welche Vorteile hat Polymorphismus?
Bessere Abbildung der Wirklichkeit:
ermöglicht variable Anpassung des Verhaltens von Methoden an Kontext

ermöglicht hohe Wiederverwendbarkeit

lose Kopplung

Austausch von Objekten führt zu Verhaltensänderung
- ein und derselbe Code kann unterschiedliche Aufgaben abarbeiten
- für Entwurfsmuster sehr wichtig
Tags: Interfaces und Polymorphismus, VL08
Source:
Flashcard set info:
Author: P-H-I-L
Main topic: Informatik
Topic: Java
Published: 13.04.2010
 
Card tags:
All cards (135)
Einführung in die OOP (13)
Felder (6)
Generalisierung und Vererbung (11)
Interfaces und Polymorphismus (20)
Programmelemente (26)
Terminologie (8)
VL 03 Kontrollstrukturen (9)
VL 03 Kontrollstrukturen S. 5 (1)
VL 05 (15)
VL 06 Einführung in die OOP (2)
VL 07 (11)
VL 09 GUI Event-Handling (6)
VL Programmelemente (2)
VL03 Kontrollstrukturen (1)
VL04 (6)
VL08 (20)
VL09 GUI (2)
Report abuse

Cancel
Email

Password

Login    

Forgot password?
Deutsch  English