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!
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:
Source:
Was ist die Kurzschreibweise für eine Schleife, die ein komplettes Array durchlaufen soll?
for (int zahl : lottoZahlen) {
...
}
...
}
Tags: Felder, VL04
Source:
Source:
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];
}
•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:
Source:
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];
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:
Source:
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");
}
/* ... 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:
Source:
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)
‐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:
Source:
Flashcard set info:
Author: P-H-I-L
Main topic: Informatik
Topic: Java
Published: 13.04.2010
Card tags:
All cards (135)
Felder (6)
Programmelemente (26)
Terminologie (8)
VL 05 (15)
VL 07 (11)
VL04 (6)
VL08 (20)
VL09 GUI (2)