Beruflich Dokumente
Kultur Dokumente
-1-
Startet
Startet
Schreibt Quellcode
Programmierer
Programmierer
Anwender
kom
aus
pilie
gef
rt vo
hrt v
on
Speichert unter
Wird
Wird
package kapitel01;
public class Test{
public static void main(String[] args) {
System.out.println("Hallo");
}
}
Java-Compiler
-2-
Test.java
Test.class
Hallo
Compiler
Test.java ist sy
Test.java
ntaktisch korre
kt
Test.class
Java Compiler
taktisch falsch
Fehlermeldung mit
ntzlicher Information
-3-
Test.class
JVM
Fhrt das
Programm aus
-4-
ufzeitfe
itfehle
Kein La
Laufz
e
hler
Lst eine
Ausnahme
aus
Kapitel 1
Mindmap
Desktop-Anwendungen
Webanwendungen
Anwendungen fr Mobiltelefone
und kleine Gerte
Erzeugt Bytecode-Datei
Klassenname
Virtuelle Maschine
fr Java (JVM)
Java Compiler
Mehrere Varianten
-5-
-6-
Mindmap
Fehlender Strichpunkt
Fehlendes Anfhrungszeichen
Typische Fehler
Methode
Variable
Kapitel 2
Speichert eine Folge von Objekten
des gleichen Typs
Liste (ArrayList<T> )
Konstruktor
if-then-else Anweisung
for -, while -Schleifen
Vererbung
Klasse A erbt
von Klasse B
-7-
-8-
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
Runde Klammern
drfen nicht fehlen
()
Kann
mehrere
Parameter
enthalten
( Param1,..., Paramn)
{
Anweisung1;
Methodenrumpf
...
Anweisungn;
}
Obligatorisch fr konkrete Methoden,
optional fr abstrakte Methoden
-9-
Methode
Validierungs-Methode
Getter-Methode
Setter-Methode
Rckgabetyp
ist void
Rckgabetyp
ist X
- 10 -
Eindeutige Speicheradresse
Identitt
Zustand
Verhalten
- 11 -
Konstruktor
- 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
}
public Student (String name) {
this.name = name;
}
Klassenname obj = new Klassenname( Werte);
- 13 -
Mindmap Zugriffsrecht
private
Modifikator
fr
Zugriffsrecht
Default
(kein Modifikator)
Sichtbarkeit:
Klasse + Paket + Unterklassen
protected
public
berall sichtbar
- 14 -
Mindmap
Modifikator fr Zugriffsrecht
Primitiver Typ
Typ
Referenztyp
Speichert Daten
Modifikator Datentyp Variablenname;
Deklaration
Variable
Variablenname = Wert;
Zuweisung
alter = 25;
Kapitel 3
Operiert auf Daten und modifiziert Objektzustnde
Modifikatoren Typ Methodenname ( Parameterliste) {
Anweisungen
Methode
}
Rckgabetyp: void
Rckgabetyp: X
Zustand
Verhalten
Konstruktor
- 15 -
- 16 -
Mindmap Software-Design
Klasse definieren
Objekteigenschaften
durch
Instanzvariablen
abbilden
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
- 17 -
Klasse: Student
Klassen identifizieren
und benennen
Klasse: Pruefungsamt
Name
Semesteranzahl
Software fr
Prfungsamt
entwerfen
Default
Konstrukturen
definieren
Mit Parametern
Methoden
definieren
private ArrayList<Student>
studenten;
public Pruefungsamt () {
...
}
public Student (...) {
...
}
Getter-Methoden
Setter-Methoden
public void
setName (String name) {
this.name = name;
}
BusinessMethoden
- 18 -
public boolean
wechsleStudienfach (...){
...
}
Software fr
Prfungsamt
entwerfen
Name name;
Klasse: Student
Student (...) {
...
Pruefungsamt () {
...
Studenten
Semesteranzahl
Matrikelnummer
Name
Klasse: Pruefungsamt
Student
Prfungsamt
Default
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
Typischer Einsatz
Direkt
Mathematische Funktionen
Indirekt
- 20 -
- 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 -
Typ[] name;
Deklaration
int[] a;
Deklaration und
Initialisierung
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
Deklaration
Deklaration
und
Initialisierung
Erzeugung
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}}
for(int[] is : a) {
for(int j : is) {
... j ...
a[2][1] = 15;
a = new int[6][3];
Zuweisung an Element
Iteration:
geschachtelte
Schleifen
- 25 -
Mindmap gro
int[] a;
Typ[] name = { Wert 0, , Wert n-1};
Deklaration und Initialisierung
a = new int[5];
Eindimensional
a[0] = 5;
a[1] = 34;
for (int i : a) {
...
}
For-each Schleife
Iteration
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}};
int[][] a = {{1},{1,2},{1,2,3}}
Mehrdimensional
a = new int[6][3];
name[ Index1][ index2]= Wert;
Zuweisung an Element
a[2][1] = 15;
Iteration:
geschachtelte Schleifen
Enum
Deklaration
String
Wichtige Operationen
equals
- 26 -
Kapitel 6
Array
Enum
String
Eindimensional
Mehrdimensional
Aufzhlungstyp
Mindmap
Konstanten
...
enum Enumname {
Konstante1,
Deklaration
equals
Wichtige Operationen
substring
- 27 -
Kapitel 07 Kontrollfluss
- 28 -
Mindmap gro
Bedingung == true
Block1
else
Bedingung == false
Block2
if ( Bedingung1)
Block1
if /else
else if ( Bedingung2)
Block2
...
else if ( Bedingungn)
Geschachtelt
Blockn
else
Blockn+1
switch ( Variable) {
case m:
Anweisungenm;
break;
case n:
Anweisungenn;
break;
...
default:
Anweisungendef;
}
switch /case
Wert von
Variable
...
anderer
Wert
Kapitel 7
while ( Bedingung)
Block;
while
for
Block;
Wenn Bedingung wahr ist werden Block und
Update ausgefhrt; Bedingung wird wieder getestet
Schleifen
for-each
do
do-while
Block
while ( Bedingung);
- 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
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
Block
do
while ( Bedingung);
Block wird ausgefhrt, dann wird Bedingung getestet
Block wird ausgefhrt, so lange Bedingung wahr ist
- 31 -
Kapitel 7
Block { ... }
Mindmap
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
Methoden
von Object
toString
Mindmap Object
Semantischer Vergleich
- 34 -
Mindmap
Klasse A
erbt von B
A: Unterklasse, Subklasse,
Kindklasse
Bezeichnungen
B: Superklasse, Oberklasse,
Elternklasse
Syntax
Schlsselwort
Kapitel 8
In Methoden
und
Konstruktoren
super
In Konstruktoren
Polymorphie
Dynamisches
Binden
Methodenname
Auswahl der
Methode
- 35 -
- 36 -
Mindmap gro
Eine Klasse, von der keine direkten Instanzen erzeugt werden knnen.
Superklasse fr
konkrete Klassen
Abstrakte
Klasse
Wiederverwendung
Polymorphismus
Kapitel 9
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
- 37 -
Generische
Klasse
- 38 -
Abstrakte
Klasse
Eine Klasse, von der keine direkten Instanzen erzeugt werden knnen
Abstraktion
Wiederverwendung
Polymorphie
Superklasse fr
konkrete Klassen
Anwendung
Regeln
- 39 -
Interface
Mindmap Interface
Schnittstelle in Client/Server-Anwendungen
Anwendung
Regeln
Eine konkrete Klasse, die ein Interface implementiert,
muss alle Methoden des Interface implementieren
- 40 -
Geschachtelte
Klasse
Anonyme
Klasse
- 41 -
Mindmap
Generische Klasse
Abstrakte Klasse
Kapitel 9
Interface
Geschachtelte Klasse
- 42 -
Anonyme Klasse
- 43 -
Mindmap
Iterable<E>
Collection<E>
Map<K,V>
Wichtige Interfaces
Iterator<E>
RandomAccess
Iterator<E>
next()
hasNext()
isEmpty, size
Kapitel 10
Wichtige
Methoden
Collection<E>
contains, containsAll
iterator
LinkedList<E>
ArrayList<E>
Wichtige
Implementierungen
ArrayDeque<E>
HashSet<E>
TreeSet<E>
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
ClassCastException
Unchecked
Exceptions
Beispiele
NullPointerException
IndexOutOfBoundsException
Checked
Exceptions
Exceptions
throw Exception-Instanz;
Auslsen von
Exceptions
Zwei
Konstruktoren
- 46 -
Default
Mit String-Parameter
Kapitel 11
Fehlerarten
Benutzerfehler
Gertefehler
Mindmap
Mangelnde Ressourcen
Softwarefehler
Testklasse definieren
assert Zusicherung;
Ausnahmebehandlung
Assertions
JUnit Test
- 47 -