Sie sind auf Seite 1von 47

Kapitel 01 Java

-1-

Startet

Startet

Schreibt Quellcode

Programmierer

Programmierer

Anwender

Funktionsweise von Java

kom

aus

pilie

gef

rt vo

hrt v

on

Speichert unter

Erzeugt die Ausgabe

Wird

Erzeugt .class Datei

Wird

package kapitel01;
public class Test{
public static void main(String[] args) {
System.out.println("Hallo");
}
}

Java-Compiler

Java Virtual Machine


(JVM)

-2-

Test.java

Test.class

Hallo

Compiler

Test.java ist sy

Test.java

ntaktisch korre

kt

Test.class

Java Compiler

Test.java ist syn

taktisch falsch
Fehlermeldung mit
ntzlicher Information

-3-

Test.class

Java Virtual Machine


(JVM)

JVM

Fhrt das
Programm aus

-4-

ufzeitfe

itfehle

Kein La

Laufz
e

hler

Das Programm wird


normal beendet

Lst eine
Ausnahme
aus

Kapitel 1

Mindmap

Java wurde1995 von Sun Microsystems entwickelt

Desktop-Anwendungen

Webanwendungen

Anwendungen fr Mobiltelefone
und kleine Gerte

Prft syntaktische Korrektheit

Erzeugt Bytecode-Datei

Fhrt Bytecode-Dateien aus

Stellt Laufzeitfehler fest

Instanzvariablen zum Speichern von Daten

Klassenname

Virtuelle Maschine
fr Java (JVM)

Java Compiler

Java Micro Edition ME

Java Enterprise Edition EE

Java Standard Edition SE

Java ist eine objektorientierte Programmiersprache

Mehrere Varianten

Funktionsweise von Java

Struktur einer Klasse


Konstruktoren zum Erzeugen von Objekten
Methoden zum Manipulieren der Daten

-5-

Kapitel 02 Ein Schnelleinstieg in Java

-6-

Mindmap

Erstes Java Programm verstehen

main -Methode und


System.out.println

Fehlender Strichpunkt
Fehlendes Anfhrungszeichen
Typische Fehler

Umlaute und Sonderzeichen im Quelltext


ffnende Klammern nicht geschlossen
Code auerhalb der Klasse

Methode

Mechanismus zum Verarbeiten der Daten

Kapselt Daten und Methoden, die darauf operieren


Objekt
Wird als Instanz einer Klasse bezeichnet

Variable

Platzhalter: Speichert Daten eines bestimmten Typs

Kapitel 2
Speichert eine Folge von Objekten
des gleichen Typs

Liste (ArrayList<T> )

public class MeineKlasse{}

Eigene Klassen definieren

Konstruktor

Zum Erzeugen von Objekten

ndern den Kontrollfluss


des Programms
Bedingungen und Schleifen

if-then-else Anweisung
for -, while -Schleifen

Daten von der


Konsole einlesen

Vererbung

Scanner s = new Scanner(System.in);


String name = s.nextLine();
double preis = s.nextDouble();

Klasse A erbt
von Klasse B

-7-

A verfgt ber alle Variablen


und Methoden von B

Kapitel 03 Klassen und Objekten

-8-

Syntax von Methoden

Zugriffsrechte/Sichtbarkeit

Modifikatoren
(optional)

static

Statische Methoden

abstract

Abstrakte Methoden

Rckgabetyp
(obligatorisch)

void
Primitiver Typ oder Klassentyp

Aussagekrftiger Name

Methodenname
(obligatorisch)

Syntax
einer
Methodendeklaration

final

Unvernderbare Methoden

Oft Verb (+ Substantiv)

In runde Klammern eingeschlossen

Kann leer sein


Parameterliste
(obligatorisch)

Runde Klammern
drfen nicht fehlen

()
Kann
mehrere
Parameter
enthalten

Durch Kommas getrennt

( Param1,..., Paramn)

Folge von Anweisungen


In geschweifte Klammern eingeschlossen

{
Anweisung1;

Methodenrumpf

...
Anweisungn;

}
Obligatorisch fr konkrete Methoden,
optional fr abstrakte Methoden

-9-

Methode

Liefert nichts zurck

Liefert einen Wert


vom Typ X zurck

Methode, die einen


Wert berechnet

Validierungs-Methode

Getter-Methode

JUnit Test (vgl. 11.10)

Methode, die den


Objektzustand ndert

Methode, die den


Objektzustand ausdruckt

Setter-Methode

Rckgabewert von Methoden

Rckgabetyp
ist void

Rckgabetyp
ist X

- 10 -

Jedes Objekt hat

Eindeutige Speicheradresse

Eigenschaften von Objekten

Identitt

Aktuelle Werte seiner Instanzvariablen

Methoden des Objekts

Zustand

Verhalten

- 11 -

Konstruktor

1 public class Student {


2
private String name;
3
private String matrikelnummer;
4
private int semester;
5
6
// Konstruktor I
7
public Student(String name, String matrikelnummer, int semester) {
8
this.name = name;
9
this.matrikelnummer = matrikelnummer;
10
this.semester = semester;
11
}
12
13
// Konstruktor II
14
public Student(String name, String matrikelnummer) {
15
this(name, matrikelnummer, 1);
16
}
17
18
// Konstruktor III
17
public Student(String name) {
18
this(name, null, 0);
19
}
20
21
// Methode zum Drucken eines Studenten
22
public void printStudent(){
23
System.out.println(Student<name: + name
24
+ , matrikelnummer: + matrikelnummer
25
+ , semester: + semester + >);
26
}
27
28
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);
33
34
obj1.printStudent();
35
obj2.printStudent();
36
obj3.printStudent();
37
obj4.printStudent();
38
}
39 }

- 12 -

Konstruktor III

obj1: Student
this.name = Seep
this.matrikelnummer = null;
this.semester = 0

Konstruktor II

obj2: Student
this.name = Anne
this.matrikelnummer = 67342
this.semester = 0

Konstruktor I

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

Deklaration

Aufruf

Mindmap Konstruktor

Modifikatoren Klassenname ( Parameterliste) {


Anweisungen

}
public Student (String name) {
this.name = name;
}
Klassenname obj = new Klassenname( Werte);

Student s = new Student(Sara);

- 13 -

Mindmap Zugriffsrecht

private

Modifikator
fr
Zugriffsrecht

Sichtbarkeit: eigene Klasse

Default
(kein Modifikator)

Sichtbarkeit: Klasse + Paket

Sichtbarkeit:
Klasse + Paket + Unterklassen

protected

public

berall sichtbar

- 14 -

Mindmap

Legt Struktur von Objekten fest


Klasse

Bestimmt das Verhalten von Objekten


Wird zum Erzeugen von Objekten verwendet

Modifikator fr Zugriffsrecht

Primitiver Typ
Typ
Referenztyp

Speichert Daten
Modifikator Datentyp Variablenname;
Deklaration

private int alter;

Variable

Variablenname = Wert;
Zuweisung

alter = 25;

Kapitel 3
Operiert auf Daten und modifiziert Objektzustnde
Modifikatoren Typ Methodenname ( Parameterliste) {
Anweisungen
Methode

}
Rckgabetyp: void
Rckgabetyp: X

Methode liefert nichts zurck


Methode liefert einen Wert
vom Typ X zurck

Ist Instanz einer Klasse


Identitt
Objekt
Charakteristika

Zustand
Verhalten

Konstruktor

Regeln zum Klassendesign

- 15 -

Kapitel 04 Mehr zu Klassen und Objekten

- 16 -

Mindmap Software-Design

Lebewesen (Person, Tier)


Gegenstand (Speisekarte, Fahrzeug)
Klasse identifizieren
Organisation (Firma, Uni)
Konzept (Name, Speisekarteneintrag)

Klasse definieren

public Klassenname { ... }


String -Variablen fr Namen, Zeichenketten

Objekteigenschaften
durch
Instanzvariablen
abbilden

boolean -Variablen fr Wahrheitswerte


int - und double -Variablen fr Zahlen

SoftwareDesign

Klassenname () {
Anweisungen

Default Konstruktor

Konstruktoren
definieren
Konstruktor(en)
mit Parametern

Schreibzugriff auf
Instanzvariablen
Verhalten durch
Methoden abbilden

Lesezugriff auf
Instanzvariablen

Klassenname ( Parameter) {
Anweisungen

Setter-Methoden

Getter-Methoden

Business-Methoden und Programmlogik

- 17 -

Mindmap Sofwareentwurf gro

Klasse: Student

Klassen identifizieren
und benennen

Klasse: Pruefungsamt

Name

private Name name;


Matrikelnummer
Student

private String matrikelnummer;


Eigenschaften
festlegen

Semesteranzahl

private int semester;


Studenten
Prfungsamt

Software fr
Prfungsamt
entwerfen
Default
Konstrukturen
definieren
Mit Parametern

Methoden
definieren

private ArrayList<Student>
studenten;
public Pruefungsamt () {
...
}
public Student (...) {
...
}

Getter-Methoden

public String getName () {


return name;
}

Setter-Methoden

public void
setName (String name) {
this.name = name;
}

BusinessMethoden

- 18 -

public boolean
wechsleStudienfach (...){
...
}

Software fr
Prfungsamt
entwerfen

Name name;

Mindmap Softwareentwurf klein

Klasse: Student

Student (...) {
...

Pruefungsamt () {
...

Studenten

Semesteranzahl

Matrikelnummer

Name

Klasse: Pruefungsamt

Student

Prfungsamt

Default

Student findeStudent (...){


...

void setName (String name) {


this.name = name;

String getName () {
return name;

Mit Parametern

Setter

Getter

Klassen identifizieren
und benennen

Eigenschaften
festlegen

Konstrukturen
definieren

Methoden
definieren

BusinessMethoden

- 19 -

Kapitel 4

Statische
Variablen

Statische
Methoden

Rekursive
Methoden

Software-Design

Mindmap

Existieren unabhngig von den Instanzen der Klasse

Zhlen von Instanzen

Modifikatoren static Typ Variablenname;


Beispiel fr Verwendung

Knnen ohne Instanz der Klasse ausgefhrt werden

static Typ Methodenname ( Parameterliste) {


Anweisungen
}
Lese-/Schreibzugriff auf
statische Variablen
Hilfsmethoden

Eine Methode ruft sich selber auf

Typischer Einsatz

Direkt

Methode a ruft Methode b auf


und b ruft a auf.

Mathematische Funktionen

Indirekt

- 20 -

Kapitel 05 Primitive Typen

- 21 -

Mindmap

byte
short
Ganze Zahlen

int
Zahlen

long
Primitive
Datentypen

float
Gleitkommazahlen

double
char
Zeichen
Unicode

boolean

Wahrheitswerte

Casting
Typumwandlung
Boxing und Unboxing

+, -, *, /, %

Kapitel 5

Prfix

Arithmetische Operationen

++ , -Postfix

==, !=

Fr alle Werte
Vergleichsoperationen

<, <=, >, >=

Fr Zahlen

Fr Boolesche Werte
Logische Operationen

&, |, !

Strikt
Nicht Strikt

&&, ||

&, |, ^, ~
Bitweise Operationen

<< , >> , >>>

Prioritt
Auswertung von Operationen

Assoziativitt
Beeinflussung durch Klammern

- 22 -

Kapitel 06 Referenztypen

- 23 -

Mindmap Eindimensionale Arrays

Folge von Elementen gleichen Typs

Typ[] name;
Deklaration

int[] a;

Typ[] name = {Wert 0, , Wert n-1};

Deklaration und
Initialisierung

int[] a = {1, 3, 7};


new Typ[Lnge]

Erzeugung

a = new int[3];

Eindimensionales
Array

name[Index] = Wert;
Zuweisung an Element

a[0] = 5;
a[1] = 34;

For-each Schleife

for (int i : a) {
...
}
Iteration

for -Schleife
for (int i=0; i<a.length; i++){
... a[i] ...
}

- 24 -

Mehrdimensionales
Array

Array von Arrays

Deklaration

Deklaration
und
Initialisierung

Erzeugung

Mindmap Mehrdimensionale Arrays

Typ[][] name;

int[][] a;
Typ[][] = {{ Wert 0,0, ..., Wert 0,m-1},
...
{ Wert k,0, ..., Wert k,n-1}};
int[][] a = {{1},{1,2},{1,2,3}}

new Typ[Lnge 1 ][Lnge 2 ]

for(int[] is : a) {
for(int j : is) {
... j ...

a[2][1] = 15;

name[ index1 ][ index2 ] = Wert;

a = new int[6][3];

Zuweisung an Element

Iteration:
geschachtelte
Schleifen

- 25 -

Mindmap gro

Folge von Elementen gleichen Typs


Typ[] name;
Deklaration

int[] a;
Typ[] name = { Wert 0, , Wert n-1};
Deklaration und Initialisierung

int[] a = {1, 3, 7};


new Typ[ Lnge]
Erzeugung

a = new int[5];

Eindimensional

name[ Index] = Wert;


Zuweisung an Element

a[0] = 5;
a[1] = 34;
for (int i : a) {
...
}

For-each Schleife
Iteration

for (int i=0; i<a.length; i++){


... a[i] ...
}

For-Schleife
Array
Ein Array von Arrays
Typ[][] name;
Deklaration

int[][] a;

Kapitel 6
Typ[][] = {{ Wert 0,0, , Wert 0,m-1},

...
{ Wert k,0, , Wert k,n-1}};

Deklaration und Initialisierung

int[][] a = {{1},{1,2},{1,2,3}}
Mehrdimensional

new Typ[ Lnge1][ Lnge2]


Erzeugung

a = new int[6][3];
name[ Index1][ index2]= Wert;
Zuweisung an Element

a[2][1] = 15;

Iteration:
geschachtelte Schleifen

for(int i=0; i<a.length; i++){


for(int j=0; j<a[i].length; j++) {
... a[i][j] ...
}
}

Aufzhlungstyp, fasst mehrere Konstanten zusammen.

enum Enumname { Konstante1, , Konstanten }

Enum
Deklaration

public enum Richtung {NORD, SUED, OST, WEST}

Vordifinierte Javaklasse fr Zeichenketten

String
Wichtige Operationen

equals

- 26 -

Kapitel 6

Array

Enum

String

Eindimensional
Mehrdimensional

Aufzhlungstyp

Mindmap

Konstanten

...

enum Enumname {
Konstante1,

Fasst mehrere Konstanten zusammen

Deklaration

public enum Richtung {


NORD,
SUED,
OST,
WEST
}

equals

Vordefinierte Javaklasse fr Zeichenketten

Wichtige Operationen

substring

- 27 -

Kapitel 07 Kontrollfluss

- 28 -

Mindmap gro

Fasst mehrere Anweisungen zusammen


Block { ... }

{ Anweisung1; ...; Anweisungn }


if ( Bedingung)

Bedingung == true

Block1

else

Block1 wird ausgefhrt

Bedingung == false

Block2

Block2 wird ausgefhrt

if ( Bedingung1)
Block1

if /else

Es wird nur der erste Block ausgefhrt,


dessen Bedingung true ergibt

else if ( Bedingung2)
Block2

...
else if ( Bedingungn)

Geschachtelt

Wenn alle Bedingungen false


ergeben, wird Blockn+1 ausgefhrt

Blockn

else
Blockn+1

Variable hat Typ byte , short , int , char oder String

switch ( Variable) {
case m:
Anweisungenm;
break;
case n:
Anweisungenn;
break;
...
default:
Anweisungendef;
}

switch /case

Wert von
Variable

Anweisungenm werden ausgefhrt

Anweisungenn werden ausgefhrt


Die entsprechenden Anweisungen
werden ausgefhrt

...
anderer
Wert

Kapitel 7
while ( Bedingung)
Block;

while

Anweisungendef werden ausgefhrt

Bedingung wird vor der Ausfhrung von Block berprft


Block wird ausgefhrt, so lange Bedingung wahr ist
Init wird zuerst ausgefhrt

for ( Init; Bedingung; Update)

for

Bedingung wird getestet bevor Block ausgefhrt wird

Block;
Wenn Bedingung wahr ist werden Block und
Update ausgefhrt; Bedingung wird wieder getestet

Schleifen

Zur Iteration ber Arrays und Collections

for ( Typ Element : Collection)


Block;

for-each

Block wird ausgefhrt, dann wird Bedingung getestet

do
do-while

Element durchluft die Elemente von Collection

Block

while ( Bedingung);

Block wird ausgefhrt, so lange Bedingung wahr ist

Kann nur In Schleifen und switch /case -Anweisungen verwendet werden


break
Bricht die Schleife/Anweisung ab
Steueranweisung
Kann nur in Schleifen verwendet werden
continue
Startet den nchsten Durchlauf der Schleife

- 29 -

Mindmap Bedingungen

if ( Bedingung)
Block1

else
Block2
Einfach

Bedingung == true :
Block1 wird ausgefhrt
Bedingung == false :
Block2 wird ausgefhrt

if ( Bedingung1)
Block1

if/
then/
else

else if ( Bedingung2)
Block2

...
else if ( Bedingungn)
Blockn

else
Blockn+1

Geschachtelt

Es wird nur der erste Block


ausgefhrt, dessen Bedingung
true ergibt
Wenn alle Bedingungen false
ergeben, wird Blockn+1
ausgefhrt

Bedingte
Anweisung

switch ( Variable) {
case m:
Anweisungenm;
break;
case n:
Anweisungenn;
break;
...
default:
Anweisungendef;
}
Variable hat Typ byte , short , int , char oder String

switch/
case

Wert von
Variable

Anweisungenm
werden ausgefhrt

Anweisungenn
werden ausgefhrt

...

Anderer
Wert

- 30 -

Die entsprechenden
Anweisungen werden
ausgefhrt
Anweisungendef
werden
ausgefhrt

Schleifen

while

for

for-each

do/while

while ( Bedingung)
Block;

Mindmap Schleifen

Bedingung wird vor der Ausfhrung von Block berprft


Block wird ausgefhrt, so lange Bedingung wahr ist

for ( Init; Bedingung; Update)


Block;
Init wird zuerst ausgefhrt
Bedingung wird getestet, bevor Block ausgefhrt wird
Wenn Bedingung wahr ist, werden Block und Update ausgefhrt;
Bedingung wird wieder getestet

for ( Typ Element : Collection)


Block;
Zur Iteration ber Arrays und Collections

Block

Element durchluft die Elemente von Collection

do
while ( Bedingung);
Block wird ausgefhrt, dann wird Bedingung getestet
Block wird ausgefhrt, so lange Bedingung wahr ist

- 31 -

Kapitel 7

Block { ... }

Mindmap

Fasst mehrere Anweisungen zusammen

{ Anweisung1; ...; Anweisungn }


if/then/else

Kann nur in Schleifen


verwendet werden

Bricht die Schleife/


Anweisung ab

Kann nur In Schleifen und


switch /case -Anweisungen
verwendet werden

switch/case

break

do-while

for-each

for

while

Bedingte Anweisung

Schleife

Steueranweisung

continue
Startet den nchsten
Durchlauf der Schleife

- 32 -

Kapitel 08 Vererbung

- 33 -

Die Klasse

Object
hashCode

equals

Oberklasse aller Klassen

Methoden
von Object

toString

Mindmap Object

Semantischer Vergleich

Implementierung fr eigene Klassen

int -Wert fr Objekt

Wird equals berschrieben, so muss


hashCode berschrieben werden.

Ist x.equals(y) wahr, so mssen x


und y den gleichen Hash-Wert haben
Wandelt Objekte in Strings um
Wird von System.out.println
verwendet

- 34 -

Mindmap

A bernimmt alle Instanzvariablen und Methoden von B


A kann weitere Instanzvariablen und Methoden enthalten
A kann Methoden von B berschreiben

Klasse A
erbt von B

A: Unterklasse, Subklasse,
Kindklasse
Bezeichnungen

B: Superklasse, Oberklasse,
Elternklasse

Syntax

class A extends B { ... }

Schlsselwort

Kapitel 8

In Methoden
und
Konstruktoren

super
In Konstruktoren

Polymorphie

Aufruf von Methoden der


Oberklasse
Zugriff auf Instanzvariablen
der Oberklasse
Aufruf eines Konstruktors
der Oberklasse

Variablen knnen Instanzen von Subklassen ihres


statischen Typs speichern

Welche Methode aufgerufen wird, wird zur


Laufzeit bestimmt

Dynamisches
Binden

Methodenname
Auswahl der
Methode

Anzahl und statische Typen


der Argumente
Dynamischer Typ von this

Die Klasse Object

- 35 -

Kapitel 09 Generische Typen und Interface

- 36 -

Mindmap gro

class Klassenname < T1, ..., Tn> { ... }


Generische
Klasse

public class Paar<T1,T2> {


T1 erstesElement;
...
}

Eine Klasse, von der keine direkten Instanzen erzeugt werden knnen.

abstract Klassenname { ... }


Abstraktion
Anwendung

Superklasse fr
konkrete Klassen

Abstrakte
Klasse

Wiederverwendung
Polymorphismus

Ist eine Methode abstrakt so muss die Klasse


abstrakt sein.
Regeln

Eine abstrakte Klasse darf Konstruktoren und sowohl


konkrete als auch abstrakte Methoden haben
Konkrete Subklassen einer abstrakten Klasse
mssen alle abstrakten Methoden implementieren

Darf nur Konstanten und abstrakte Methoden enthalten

Kapitel 9

interface interfacename { ... }


Wie abstrakte Klasse

Anwendung

Schnittstelle in Client/Server-Anwendungen

Interface
Mehrfachvererbung: eine Klasse kann mehrere
Interfaces implementieren
Abstrakte Klassen drfen abstrakte Methoden von
Interfaces erben, ohne sie zu implementieren
Regeln
Eine konkrete Klasse, die ein Interface implementiert
muss alle Methoden des Interface implementieren

Geschachtelte
Klasse

Wird in einer anderen Klasse definiert


Hat Zugriff auf private Elemente der sie umschlieenden Klasse

Wird innerhalb eines Code-Blocks deklariert


Deklaration und Erzeugen einer Instanz im gleichen Ausdruck
Anonyme
Klasse

Comparator<Person> c = new Comparator<Person>() {


@Override public int compare(Person p1, Person p2) {
...
}
};

- 37 -

Generische
Klasse

Mindmap Generische Klasse

Klasse, die durch Typparameter spezialisiert werden kann

class Klassenname < T1, ..., Tn> {


...
}
public class Paar<T1,T2> {
T1 erstesElement;
T2 zweitesElement;
...
}
Paar<String, Object> p1 = new Paar<String, Object>();
Seit Java 7 auch: Paar<String, Object> p2 = new Paar<>();

- 38 -

Abstrakte
Klasse

Mindmap Abstrakte Klasse

Eine Klasse, von der keine direkten Instanzen erzeugt werden knnen

Abstraktion
Wiederverwendung
Polymorphie

Ist eine Methode abstrakt, so muss die Klasse abstrakt sein

Eine abstrakte Klasse darf Konstruktoren und sowohl


konkrete als auch abstrakte Methoden besitzen

Superklasse fr
konkrete Klassen

abstract Klassenname { ... }

Anwendung

Regeln

Konkrete Subklassen einer abstrakten Klasse mssen alle


abstrakten Methoden implementieren

- 39 -

Interface

Mindmap Interface

Darf nur Konstanten und abstrakte Methoden enthalten

Abstrakte Klassen drfen abstrakte Methoden von


Interfaces erben, ohne sie zu implementieren

Mehrfachvererbung: Eine Klasse kann mehrere


Interfaces implementieren

Schnittstelle in Client/Server-Anwendungen

Wie abstrakte Klasse

interface Interfacename { ... }

Anwendung

Regeln
Eine konkrete Klasse, die ein Interface implementiert,
muss alle Methoden des Interface implementieren

- 40 -

Geschachtelte
Klasse

Mindmap Geschachtelte Klasse

Wird in einer anderen Klasse definiert

Deklaration und Erzeugen einer Instanz im


gleichen Ausdruck

Wird innerhalb eines Code-Blocks deklariert

Hat Zugriff auf private Elemente der sie umschlieenden Klasse

Anonyme
Klasse

Comparator<A> c = new Comparator<A>() {


@Override
public int compare(A a1, A a2) {
...
};

- 41 -

Mindmap

Generische Klasse

Abstrakte Klasse

Kapitel 9
Interface

Geschachtelte Klasse

- 42 -

Anonyme Klasse

Kapitel 10 Das Java Collections Framework

- 43 -

Mindmap

Iterable<E>

Collection<E>

Map<K,V>
Wichtige Interfaces

Iterator<E>
RandomAccess

Zum Durchlaufen einer Collection

Iterator<E>

next()

Liefert das aktuelle Element des


Iterators; setzt das nchste Element
als neues aktuelles Element

hasNext()

Liefert true , solange der Iterator


nicht am Ende der Collection ist

Eine Folge von Elementen vom Typ E


Implementiert Collection<E>
Aggregattyp
Geordnet, ungeordnet

isEmpty, size

Kapitel 10
Wichtige
Methoden

Collection<E>

contains, containsAll
iterator
LinkedList<E>
ArrayList<E>

Wichtige
Implementierungen

ArrayDeque<E>
HashSet<E>
TreeSet<E>

Abbildung von K nach V (Wrterbuch)

TreeMap<K,V>
Map<K, V>

Wichtige
Implementierungen

HashMap<K,V>
LinkedHashMap<K,V>
WeakHashMap<K,V>

- 44 -

Kapitel 11 Ausnahmebehandlung

- 45 -

Mindmap Exceptions

Error
Java Exception-Hierarchie

Throwable
Exception

Erben von Error oder RuntimeException

ClassCastException
Unchecked
Exceptions

Beispiele

NullPointerException
IndexOutOfBoundsException

Knnen oft vermieden werden

Checked
Exceptions

Erben nicht von Error oder RuntimeException


Mssen in Signatur von Methoden angegeben werden

Exceptions
throw Exception-Instanz;
Auslsen von
Exceptions

Exception ex = new Exception(Fehler!);


throw ex;
throw new Exception(Fehler!);
try { ... }
catch ( ExceptionTyp1 ex) { ... }
...
catch ( ExceptionTypn ex) { ... }
finally { ... }

Behandeln von Exceptions

Erbt indirekt von Throwable


Benutzerdefinierte
Exception-Klassen

Zwei
Konstruktoren

- 46 -

Default
Mit String-Parameter

Kapitel 11

Fehlerarten

Benutzerfehler
Gertefehler

Mindmap

Mangelnde Ressourcen
Softwarefehler

Test-Methoden durch die @Test -Annotation markieren

Testklasse definieren

assert Zusicherung : Fehlermeldung;

Angabe der Fehlermeldung

assert Zusicherung;

Ist die Zusicherung falsch, wird eine Exception geworfen

berprfen eine Zusicherung vom Typ boolean

Ausnahmebehandlung

Assertions

JUnit Test

Eine Instanz der zu testenden Klasse erzeugen und


Ist/Soll-Vergleich mit JUnit-Methoden durchfhren

- 47 -

Das könnte Ihnen auch gefallen