Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java...
Transcript of Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java...
Kapitel 01 Java
- 1 -
Funktionsweise von Java
- 2 -
Anwender
Programm
ierer
Programm
ierer
package kapitel01;public class Test{ public static void main(String[] args) { System.out.println("Hallo");
}}
Schreibt Quellcode
Java-Com
piler
Java Virtual Machine
(JVM)
Speichert unter
Startet
HalloStartet
Erzeugt .class Datei
Erzeugt die Ausgabe
Wird kom
piliert von
Wird ausgeführt von
Test.class
Test.java
Compiler
- 3 -
Java Compiler
Test.class
Test.java
Fehlermeldung mit nützlicher Information
Test.java ist syntaktisch korrekt
Test.java ist syntaktisch falsch
JVM
- 4 -
Test.class
Kein Laufzeitfehler
Laufzeitfehler
Java Virtual Machine
(JVM)
Das Program
m w
ird norm
al beendet
Führt dasProgram
m aus
Löst eine Ausnahm
e aus
Mindm
ap
- 5 -
Kapitel 1
Java wurde1995 von Sun M
icrosystems entw
ickelt
Java ist eine objektorientierte Programm
iersprache
Mehrere Varianten
Funktionsweise von Java
Struktur einer Klasse
Java Standard Edition SE
Java Enterprise Edition EE
Java Micro Edition M
E
Desktop-Anw
endungen
Webanw
endungen
Anwendungen für M
obiltelefoneund kleine G
eräte
Virtuelle Maschine
für Java (JVM)
Java Com
pilerPrüft syntaktische Korrektheit
Stellt Laufzeitfehler fest
Erzeugt Bytecode-Datei
Klassenname
Instanzvariablen zum Speichern von D
aten
Konstruktoren zum Erzeugen von O
bjekten
Methoden zum
Manipulieren der D
aten
Führt Bytecode-Dateien aus
Kapitel 02 Ein Schnelleinstieg in Java
- 6 -
Mindmap
- 7 -
Kapitel 2
Erstes Java Programm verstehen
Typische Fehler
Objekt
Variable
Liste (ArrayList<T>)
Eigene Klassen definieren
Konstruktor
Bedingungen und Schleifen
Daten von der Konsole einlesen
Vererbung
main-Methode und System.out.println
Fehlender Strichpunkt
Umlaute und Sonderzeichen im Quelltext
Öffnende Klammern nicht geschlossen
Code außerhalb der Klasse
Kapselt Daten und Methoden, die darauf operieren
Wird als Instanz einer Klasse bezeichnet
Platzhalter: Speichert Daten eines bestimmten Typs
Speichert eine Folge von Objekten des gleichen Typs
public class MeineKlasse{…}
Zum Erzeugen von Objekten
Ändern den Kontrollfluss des Programms
if-then-else Anweisung
Scanner s = new Scanner(System.in);String name = s.nextLine();double preis = s.nextDouble();
Klasse A erbt von Klasse B
A verfügt über alle Variablen und Methoden von B
Methode Mechanismus zum Verarbeiten der Daten
for-, while-Schleifen
Fehlendes Anführungszeichen
Kapitel 03 Klassen und Objekten
- 8 -
Syntax von Methoden
- 9 -
Syntaxeiner
Methoden-deklaration
Modifikatoren(optional)
Rückgabetyp(obligatorisch)
Methodenname(obligatorisch)
Parameterliste(obligatorisch)
Methodenrumpf
Zugriffsrechte/Sichtbarkeit
Statische Methoden
void
Primitiver Typ oder Klassentyp
Aussagekräftiger Name
Kann leer sein
KannmehrereParameterenthalten
{ Anweisung1; ... Anweisungn;}
Unveränderbare Methoden
static
final
In runde Klammern eingeschlossen
Folge von Anweisungen
In geschweifte Klammern eingeschlossen
Oft Verb (+ Substantiv)
Runde Klammerndürfen nicht fehlen
Durch Kommas getrennt
()
(Param1,..., Paramn)
Obligatorisch für konkrete Methoden,optional für abstrakte Methoden
Abstrakte Methoden abstract
Rückgabewert von M
ethoden
- 10 -
Methode
Liefert nichts zurück
Liefert einen Wert
vom Typ X zurück
Rückgabetyp
ist void
Rückgabetyp
ist X
Setter-Methode
Methode, die den
Objektzustand ausdruckt
Methode, die den
Objektzustand ändert
Getter-M
ethode
Validierungs-Methode
Methode, die einen
Wert berechnet
JUnit Test (vgl. 11.10)
Eigenschaften von Objekten
- 11 -
Jedes Objekt hat
Identität
Zustand
Verhalten
Eindeutige Speicheradresse
Aktuelle Werte seiner Instanzvariablen
Methoden des O
bjekts
Konstruktor
- 12 -
1 public class Student {2 private String name;3 private String matrikelnummer;4 private int semester;5 6 // Konstruktor I7 public Student(String name, String matrikelnummer, int semester) {8 this.name = name;9 this.matrikelnummer = matrikelnummer;10 this.semester = semester;11 }1213 // Konstruktor II14 public Student(String name, String matrikelnummer) {15 this(name, matrikelnummer, 1); 16 }1718 // Konstruktor III17 public Student(String name) {18 this(name, null, 0); 19 }2021 // Methode zum Drucken eines Studenten22 public void printStudent(){23 System.out.println(“Student<name: “ + name 24 + “, matrikelnummer: “ + matrikelnummer25 + “, semester: “ + semester + “>”);26 }2728 public static void main(String[] args) {29 Student obj1 = new Student("Sepp”);30 Student obj2 = new Student("Anne", "67342");31 Student obj3 = new Student("Sara", "76345",5);32 Student obj4 = new Student("Alex", "12345",1);3334 obj1.printStudent();35 obj2.printStudent();36 obj3.printStudent();37 obj4.printStudent();38 }39 }
obj1: Student
this.name = “Seep”
this.matrikelnummer = null;
this.semester = 0
Konstruktor III
obj2: Student
this.name = “Anne”
this.matrikelnummer = “67342”
this.semester = 0
Konstruktor II
obj3: Student
this.name = “Sara”
this.matrikelnummer = “76345”
this.semester = 5
Konstruktor I
obj4: Student
this.name = “Alex”
this.matrikelnummer =“12345”
this.semester = semester = 1
Konstruktor I
Mindm
ap Konstruktor
- 13 -
Konstruktor
Deklaration
Modifikatoren Klassennam
e (Parameterliste) {
Anweisungen
}public Student (String name) {
this.name = name;
}
AufrufKlassennam
e obj = new Klassennam
e(Werte)
;
Student s = new Student(“Sara”);
Mindmap Zugriffsrecht
- 14 -
Modifikatorfür
Zugriffsrecht
private Sichtbarkeit: eigene Klasse
Default(kein Modifikator) Sichtbarkeit: Klasse + Paket
protectedSichtbarkeit:Klasse + Paket + Unterklassen
public Überall sichtbar
Mindmap
- 15 -
Kapitel 3
Typ
Methode
Objekt
Konstruktor
Regeln zum Klassendesign
Modifikator für Zugriffsrecht
Primitiver Typ
Referenztyp
Variable
Speichert Daten
DeklarationModifikator Datentyp Variablenname;
ZuweisungVariablenname = Wert;
Operiert auf Daten und modifiziert Objektzustände
Rückgabetyp: X
Ist Instanz einer Klasse
Rückgabetyp: void Methode liefert nichts zurück
Methode liefert einen Wertvom Typ X zurück
Modifikatoren Typ Methodenname (Parameterliste) { Anweisungen}
Charakteristika
Identität
Zustand
Verhalten
private int alter;
alter = 25;
Klasse
Legt Struktur von Objekten fest
Bestimmt das Verhalten von Objekten
Wird zum Erzeugen von Objekten verwendet
Kapitel 04 Mehr zu Klassen und Objekten
- 16 -
Mindmap Software-Design
- 17 -
Software-Design
Klasse identifizieren
Lebewesen (Person, Tier)
Organisation (Firma, Uni)
Konzept (Name, Speisekarteneintrag)
Klasse definieren public Klassenname { ... }
ObjekteigenschaftendurchInstanzvariablenabbilden
String-Variablen für Namen, Zeichenketten
boolean-Variablen für Wahrheitswerte
int- und double-Variablen für Zahlen
Konstruktorendefinieren
Default KonstruktorKlassenname () { Anweisungen}
Konstruktor(en)mit Parametern
Klassenname (Parameter) { Anweisungen}
Verhalten durchMethoden abbilden
Schreibzugriff aufInstanzvariablen Setter-Methoden
Lesezugriff aufInstanzvariablen Getter-Methoden
Business-Methoden und Programmlogik
Gegenstand (Speisekarte, Fahrzeug)
Mindmap Sofwareentwurf groß
- 18 -
Software fürPrüfungsamt
entwerfen
Methodendefinieren
Eigenschaftenfestlegen
Klassen identifizieren und benennen
Klasse: Student
Konstrukturendefinieren
Setter-Methoden
Business-Methoden
public void setName (String name) { this.name = name;}
public boolean wechsleStudienfach (...){ ...}
Klasse: Pruefungsamt
Student
Semesteranzahl
Name
Matrikelnummer
Prüfungsamt
Studenten
Defaultpublic Pruefungsamt () { ...}
Mit Parameternpublic Student (...) { ...}
Getter-Methodenpublic String getName () { return name;}
private Name name;
private String matrikelnummer;
private int semester;
private ArrayList<Student> studenten;
Mindm
ap Softwareentw
urf klein
- 19 -
Software für
Prüfungsamt
entwerfen
Methoden
definieren
Eigenschaftenfestlegen
Klassen identifizieren und benennen
Klasse: Student
Konstrukturendefinieren
Setter
Business-M
ethoden
void setName (String name) {
this.name = name;
}
Student findeStudent (...){
...
}
Klasse: Pruefungsamt
Student
Semesteranzahl
Nam
e
Matrikelnum
mer
Prüfungsamt
Studenten
Default
Pruefungsamt () {
...
}
Mit Param
eternStudent (...) {
...
}
Getter
String getName () {
return name;
}
Name name;
Mindm
ap
- 20 -
Kapitel 4
StatischeVariablen
StatischeM
ethoden
Rekursive
Methoden
Software-D
esign
Existieren unabhängig von den Instanzen der Klasse
Beispiel für Verwendung
Zählen von Instanzen
Können ohne Instanz der Klasse ausgeführt werden
Typischer Einsatz
Lese-/Schreibzugriff aufstatische Variablen
Hilfsm
ethoden
Direkt
Indirekt
Eine Methode ruft sich selber auf
Methode a ruft M
ethode b aufund b ruft a auf.
static Typ M
ethodenname (Param
eterliste) { Anw
eisungen}
Mathem
atische Funktionen
Modifikatoren static Typ Variablennam
e;
Kapitel 05 Primitive Typen
- 21 -
Mindmap
- 22 -
Kapitel 5
PrimitiveDatentypen
Typumwandlung
Arithmetische Operationen
Vergleichsoperationen
Bitweise Operationen
Auswertung von Operationen
Casting
Boxing und Unboxing
+, -, *, /, %
&, |, ^, ~
<<, >>, >>>
Priorität
Beeinflussung durch Klammern
Zahlen
Gleitkommazahlenfloat
double
Ganze Zahlen
byte
short
int
long
ZeichenUnicode
char
Wahrheitswerte boolean
++, --Postfix
Präfix
Für Zahlen <, <=, >, >=
Logische Operationen
Für alle Werte ==, !=
Für Boole’sche Werte
Assoziativität
Strikt
Nicht Strikt &&, ||
&, |, !
Kapitel 06 Referenztypen
- 23 -
Mindmap Eindimensionale Arrays
- 24 -
EindimensionalesArray
Iteration
For-each Schleife
for-Schleife
Folge von Elementen gleichen Typs
DeklarationTyp[] name;
int[] a;
Deklaration und Initialisierung
Typ[] name = {Wert 0, …, Wert n-1};
int[] a = {1, 3, 7};
Erzeugungnew Typ[Länge]
a = new int[3];
Zuweisung an Element
name[Index] = Wert;
a[0] = 5;a[1] = 34;
for (int i=0; i<a.length; i++){ ... a[i] ...}
for (int i : a) { ...}
Mindm
ap Mehrdim
ensionale Arrays
- 25 -
Mehr-
dimensionalesArray
Array von Arrays
Deklaration
Typ[][] name;
int[][] a;
Deklaration
undInitialisierung
Typ[][] = {{W
ert 0,0 , ..., W
ert 0,m-1 }
, ...
{W
ert k,0 , ..., W
ert k,n-1 }};
int[][] a = {{1},{1,2},{1,2,3}}
Erzeugungnew Typ[Länge1][Länge2]
a = new int[6][3];
Zuweisung an Elem
entnam
e[ index1 ][ index2 ]
= W
ert;
a[2][1] = 15;
Iteration:geschachtelteSchleifen
for(int[] is : a) {
for(int j : is) {
... j ...
}
}
Mindmap groß
- 26 -
Kapitel 6
Array
Enum
String
Eindimensional
Mehrdimensional
Deklaration
Erzeugung
Zuweisung an Element
Typ[] name;
new Typ[Länge]
name[Index] = Wert;
Deklaration
Erzeugung
Iteration
Typ[][] name;
new Typ[Länge1][Länge2]
Zuweisung an Elementname[Index1][index2]= Wert;
Iteration:geschachtelte Schleifen
for(int i=0; i<a.length; i++){ for(int j=0; j<a[i].length; j++) { ... a[i][j] ... }}
Deklarationenum Enumname { Konstante1, …, Konstanten }
Vordifinierte Javaklasse für Zeichenketten
Folge von Elementen gleichen Typs
int[] a;
a = new int[5];
a[0] = 5;a[1] = 34;
Deklaration und InitialisierungTyp[] name = {Wert 0, …, Wert n-1};
int[] a = {1, 3, 7};
For-each Schleife
For-Schleifefor (int i=0; i<a.length; i++){ ... a[i] ...}
for (int i : a) { ...}
Ein Array von Arrays
Deklaration und Initialisierung
int[][] a = {{1},{1,2},{1,2,3}}
int[][] a;
Typ[][] = {{Wert 0,0, …, Wert 0,m-1}, ... {Wert k,0, …, Wert k,n-1}};
a = new int[6][3];
a[2][1] = 15;
Aufzählungstyp, fasst mehrere Konstanten zusammen.
public enum Richtung {NORD, SUED, OST, WEST}
Wichtige Operationen +
equals
Mindm
ap
- 27 -
Kapitel 6
Array
Enum
String
Eindimensional
Mehrdim
ensional
Deklaration
enum Enum
name {
Konstante
1 , ...
Konstante
n}
Vordefinierte Javaklasse für Zeichenketten
Aufzählungstyp
public enum Richtung {
NORD,
SUED,
OST,
WEST
}
Wichtige O
perationen
+equals
Fasst mehrere Konstanten zusam
men
substring
Kapitel 07 Kontrollfluss
- 28 -
Mindmap groß
- 29 -
Kapitel 7
Block { ... }
if/else
switch/case
Schleifen
Fasst mehrere Anweisungen zusammen
if (Bedingung) Block1else Block2
Bedingung == true Block1 wird ausgeführt
Bedingung == false Block2 wird ausgeführt
Geschachtelt
if (Bedingung1) Block1else if (Bedingung2) Block2...else if (Bedingungn) Blocknelse Blockn+1
Es wird nur der erste Block ausgeführt, dessen Bedingung true ergibt
Wenn alle Bedingungen false ergeben, wird Blockn+1 ausgeführt
switch (Variable) {case m: Anweisungenm; break;case n: Anweisungenn; break;...default: Anweisungendef;}
Variable hat Typ byte, short, int, char oder String
while
do-while
for
for-each
Steueranweisung
break
continue
while (Bedingung) Block;
Block wird ausgeführt, so lange Bedingung wahr ist
for (Init; Bedingung; Update) Block;
Wenn Bedingung wahr ist werden Block und Update ausgeführt; Bedingung wird wieder getestet
Init wird zuerst ausgeführt
for (Typ Element : Collection) Block;
Element durchläuft die Elemente von Collection
Zur Iteration über Arrays und Collections
do Blockwhile (Bedingung);
Block wird ausgeführt, dann wird Bedingung getestet
Kann nur in Schleifen verwendet werden
Kann nur In Schleifen und switch/case-Anweisungen verwendet werden
{ Anweisung1; ...; Anweisungn }
Wert von Variable
m Anweisungenm werden ausgeführt
Anweisungenn werden ausgeführtn
anderer Wert Anweisungendef werden ausgeführt
...Die entsprechenden Anweisungen werden ausgeführt
Bedingung wird vor der Ausführung von Block überprüft
Bedingung wird getestet bevor Block ausgeführt wird
Block wird ausgeführt, so lange Bedingung wahr ist
Bricht die Schleife/Anweisung ab
Startet den nächsten Durchlauf der Schleife
Mindmap Bedingungen
- 30 -
BedingteAnweisung
if/then/else
Einfach
if (Bedingung) Block1else Block2
Bedingung == true: Block1 wird ausgeführt
Bedingung == false: Block2 wird ausgeführt
Geschachtelt
if (Bedingung1) Block1else if (Bedingung2) Block2...else if (Bedingungn) Blocknelse Blockn+1
Es wird nur der erste Blockausgeführt, dessen Bedingungtrue ergibt
Wenn alle Bedingungen falseergeben, wird Blockn+1ausgeführt
switch/case
switch (Variable) {case m: Anweisungenm; break;case n: Anweisungenn; break;...default: Anweisungendef;}
Variable hat Typ byte, short, int, char oder String
Wert vonVariable
m Anweisungenmwerden ausgeführt
n Anweisungennwerden ausgeführt
...Die entsprechendenAnweisungen werdenausgeführt
AndererWert
Anweisungendefwerdenausgeführt
Mindm
ap Schleifen
- 31 -
Schleifen
while
for
for (Init;
Bedingung; U
pdate) Block;
for-each
for (Typ Elem
ent : C
ollection) Block;
do/while
do
Block
while (Bedingung)
;
while (Bedingung)
Block;
Bedingung wird vor der Ausführung von Block überprüft
Block wird ausgeführt, so lange Bedingung w
ahr ist
Init wird zuerst ausgeführt
Bedingung wird getestet, bevor Block ausgeführt w
ird
Wenn Bedingung w
ahr ist, werden Block und U
pdate ausgeführt; Bedingung w
ird wieder getestet
Zur Iteration über Arrays und Collections
Element durchläuft die Elem
ente von Collection
Block wird ausgeführt, dann w
ird Bedingung getestet
Block wird ausgeführt, so lange Bedingung w
ahr ist
Mindm
ap
- 32 -
Kapitel 7
Block { ... }
Schleife
Fasst mehrere Anw
eisungen zusamm
en
while
do-while
for
for-each
Steueranweisung
break
continue
Kann nur in Schleifen verw
endet werden
Kann nur In Schleifen und switch/c
ase-Anw
eisungen verw
endet werden
{ Anweisung
1 ; ...; Anw
eisungn }
Bricht die Schleife/Anw
eisung ab
Startet den nächsten D
urchlauf der Schleife
Bedingte Anweisung
if/then/else
switch/case
Kapitel 08 Vererbung
- 33 -
Mindm
ap Object
- 34 -
Die K
lasseObject
Methoden
von Object
equals
“Semantischer” Vergleich
Implem
entierung für eigene Klassen
hashCode
int-W
ert für Objekt
Wird e
quals überschrieben, so m
usshashCode überschrieben w
erden.
Ist x.equals(y) w
ahr, so müssen x
und y den gleichen Hash-W
ert haben
toString
Wandelt O
bjekte in Strings um
Wird von S
ystem.out.println
verwendet
Oberklasse aller Klassen
Mindmap
- 35 -
Kapitel 8
Klasse Aerbt von B
A übernimmt alle Instanzvariablen und Methoden von B
Syntax
Schlüsselwortsuper
Dynamisches Binden
Die Klasse Object
class A extends B { ... }
In Methodenund Konstruktoren
Welche Methode aufgerufen wird, wird zurLaufzeit bestimmt
Auswahl derMethode
Methodenname
Anzahl und statische Typender Argumente
Polymorphie Variablen können Instanzen von Subklassen ihres statischen Typs speichern
In Konstruktoren Aufruf eines Konstruktors der Oberklasse
Aufruf von Methoden derOberklasse
Zugriff auf Instanzvariablen der Oberklasse
A kann weitere Instanzvariablen und Methoden enthalten
A kann Methoden von B überschreiben
Bezeichnungen
A: Unterklasse, Subklasse, Kindklasse
B: Superklasse, Oberklasse, Elternklasse
Dynamischer Typ von this
Kapitel 09 Generische Typen und Interface
- 36 -
Mindmap groß
- 37 -
Kapitel 9
GenerischeKlasse
Interface
GeschachtelteKlasse
Regeln
Anwendung
Wie abstrakte Klasse
Eine konkrete Klasse, die ein Interface implementiert muss alle Methoden des Interface implementieren
AbstrakteKlasse
Regeln
Ist eine Methode abstrakt so muss die Klasse abstrakt sein.
Hat Zugriff auf private Elemente der sie umschließenden Klasse
class Klassenname <T1, ..., Tn> { ... }
public class Paar<T1,T2> { T1 erstesElement; ...}
Eine Klasse, von der keine direkten Instanzen erzeugt werden können.
abstract Klassenname { ... }
Darf nur Konstanten und abstrakte Methoden enthalten
Anwendung Superklasse für konkrete Klassen
Abstraktion
Wiederverwendung
Polymorphismus
Eine abstrakte Klasse darf Konstruktoren und sowohl konkrete als auch abstrakte Methoden haben
Konkrete Subklassen einer abstrakten Klasse müssen alle abstrakten Methoden implementieren
Schnittstelle in Client/Server-Anwendungen
Mehrfachvererbung: eine Klasse kann mehrere Interfaces implementieren
interface interfacename { ... }
Abstrakte Klassen dürfen abstrakte Methoden von Interfaces erben, ohne sie zu implementieren
Wird in einer anderen Klasse definiert
AnonymeKlasse
Wird innerhalb eines Code-Blocks deklariert
Deklaration und Erzeugen einer Instanz im gleichen Ausdruck
Comparator<Person> c = new Comparator<Person>() { @Override public int compare(Person p1, Person p2) { ... }};
Mindm
ap Generische Klasse
- 38 -
GenerischeK
lassepublic class Paar<T1,T2> {
T1 erstesElement;
T2 zweitesElement;
...
} class Klassennam
e <T
1 , ..., T
n > {
...
} Klasse, die durch Typparameter spezialisiert w
erden kann
Paar<String, Object> p1 = new Paar<String, Object>();
Seit Java 7 auch: Paar<String, Object> p2 = new Paar<>();
Mindm
ap Abstrakte Klasse
- 39 -
AbstrakteK
lasse
Regeln
Eine abstrakte Klasse darf Konstruktoren und sowohl
konkrete als auch abstrakte Methoden besitzen
Konkrete Subklassen einer abstrakten Klasse müssen alle
abstrakten Methoden im
plementieren
Eine Klasse, von der keine direkten Instanzen erzeugt werden können
abstract Klassennam
e { ... }
Anwendung
Superklasse fürkonkrete Klassen
Abstraktion
Wiederverw
endung
Polymorphie
Ist eine Methode abstrakt, so m
uss die Klasse abstrakt sein
Mindm
ap Interface
- 40 -
Interface
Regeln
Abstrakte Klassen dürfen abstrakte Methoden von
Interfaces erben, ohne sie zu implem
entieren
Eine konkrete Klasse, die ein Interface implem
entiert,m
uss alle Methoden des Interface im
plementieren
Darf nur Konstanten und abstrakte M
ethoden enthalten
interface Interfacenam
e { ... }
Anwendung
Wie abstrakte Klasse
Schnittstelle in Client/Server-Anw
endungen
Mehrfachvererbung: Eine Klasse kann m
ehrereInterfaces im
plementieren
Mindm
ap Geschachtelte Klasse
- 41 -
Geschachtelte
Klasse
Hat Zugriff auf private Elem
ente der sie umschließenden Klasse
Wird in einer anderen Klasse definiert
Anonyme
Klasse
Wird innerhalb eines C
ode-Blocks deklariert
Deklaration und Erzeugen einer Instanz im
gleichen Ausdruck
Comparator<A> c = new Comparator<A>() {
@Override
public int compare(A a1, A a2) {
...
}
};
Mindmap
- 42 -
Kapitel 9
Generische Klasse
Interface
Geschachtelte Klasse
Abstrakte Klasse
Anonyme Klasse
Kapitel 10 Das Java Collections Framework
- 43 -
Mindmap
- 44 -
Kapitel 10
Wichtige Interfaces
Iterator<E>
Collection<E>
Map<K, V>
Iterable<E>
Map<K,V>
Iterator<E>
RandomAccess
Collection<E>
Zum Durchlaufen einer Collection
next()
hasNext()
Liefert das aktuelle Element desIterators; setzt das nächste Element als neues aktuelles Element
Liefert true, solange der Iterator nicht am Ende der Collection ist
Eine Folge von Elementen vom Typ E
AggregattypImplementiert Collection<E>
Geordnet, ungeordnet
WichtigeMethoden
isEmpty, size
contains, containsAll
iterator
WichtigeImplementierungen
LinkedList<E>
ArrayList<E>
HashSet<E>
TreeSet<E>
Abbildung von K nach V (Wörterbuch)
WichtigeImplementierungen
TreeMap<K,V>
HashMap<K,V>
LinkedHashMap<K,V>
ArrayDeque<E>
WeakHashMap<K,V>
Kapitel 11 Ausnahmebehandlung
- 45 -
Mindmap Exceptions
- 46 -
Exceptions
Java Exception-Hierarchie
UncheckedExceptions
CheckedExceptions
Auslösen vonExceptions
Behandeln von Exceptions
BenutzerdefinierteException-Klassen
ThrowableError
Exception
Erben von Error oder RuntimeException
Beispiele
ClassCastException
NullPointerException
IndexOutOfBoundsException
Können oft vermieden werden
Erben nicht von Error oder RuntimeException
Exception ex = new Exception(“Fehler!”);throw ex;
throw new Exception(“Fehler!”);
try { ... }catch (ExceptionTyp1 ex) { ... }...catch (ExceptionTypn ex) { ... }finally { ... }
Erbt indirekt von Throwable
ZweiKonstruktoren
Default
Mit String-Parameter
Müssen in Signatur von Methoden angegeben werden
throw Exception-Instanz;
Mindm
ap
- 47 -
Kapitel 11
Fehlerarten
Ausnahmebehandlung
Assertions
JUnit Test
Benutzerfehler
assert Zusicherung;
Testklasse definieren
Test-Methoden durch die @
Test-Annotation m
arkieren
Eine Instanz der zu testenden Klasse erzeugen und Ist/Soll-Vergleich m
it JUnit-M
ethoden durchführen
Gerätefehler
Softwarefehler
Überprüfen eine Zusicherung vom
Typ boolean
Ist die Zusicherung falsch, wird eine Exception gew
orfen
Angabe der Fehlermeldung
assert Zusicherung
: Fehlerm
eldung;
Mangelnde R
essourcen