Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java...

47
Kapitel 01 Java - 1 -

Transcript of Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java...

Page 1: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 01 Java

- 1 -

Page 2: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 3: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Compiler

- 3 -

Java Compiler

Test.class

Test.java

Fehlermeldung mit nützlicher Information

Test.java ist syntaktisch korrekt

Test.java ist syntaktisch falsch

Page 4: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 5: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 6: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 02 Ein Schnelleinstieg in Java

- 6 -

Page 7: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 8: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 03 Klassen und Objekten

- 8 -

Page 9: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 10: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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)

Page 11: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Eigenschaften von Objekten

- 11 -

Jedes Objekt hat

Identität

Zustand

Verhalten

Eindeutige Speicheradresse

Aktuelle Werte seiner Instanzvariablen

Methoden des O

bjekts

Page 12: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 13: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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”);

Page 14: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Mindmap Zugriffsrecht

- 14 -

Modifikatorfür

Zugriffsrecht

private Sichtbarkeit: eigene Klasse

Default(kein Modifikator) Sichtbarkeit: Klasse + Paket

protectedSichtbarkeit:Klasse + Paket + Unterklassen

public Überall sichtbar

Page 15: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 16: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 04 Mehr zu Klassen und Objekten

- 16 -

Page 17: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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)

Page 18: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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;

Page 19: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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;

Page 20: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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;

Page 21: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 05 Primitive Typen

- 21 -

Page 22: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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 &&, ||

&, |, !

Page 23: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 06 Referenztypen

- 23 -

Page 24: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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) { ...}

Page 25: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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 ...

}

}

Page 26: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 27: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 28: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 07 Kontrollfluss

- 28 -

Page 29: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 30: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 31: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 32: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 33: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 08 Vererbung

- 33 -

Page 34: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 35: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 36: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 09 Generische Typen und Interface

- 36 -

Page 37: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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) { ... }};

Page 38: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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<>();

Page 39: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 40: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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

Page 41: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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) {

...

}

};

Page 42: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Mindmap

- 42 -

Kapitel 9

Generische Klasse

Interface

Geschachtelte Klasse

Abstrakte Klasse

Anonyme Klasse

Page 43: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 10 Das Java Collections Framework

- 43 -

Page 44: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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>

Page 45: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

Kapitel 11 Ausnahmebehandlung

- 45 -

Page 46: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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;

Page 47: Kapitel 01 Java - Java · PDF fileCompiler - 3 - Java Compiler Test.class Test.java Fehlermeldung mit nützlicher Information Test.java ist syntaktisch korrekt Test.java ist syntaktisch

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