44
Programmieren mit JAVA Teil II

Programmieren mit JAVA

  • Upload
    gavin

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Programmieren mit JAVA. Teil II. Zusammenfassung. Applikation vs. Applet sequentiell vs. objektorientiert Klasse, instanziieren, Objekt, Methode, Attribut if ... else Blockanweisung {} Bedingungsoperator switch ... case while , do ... while , for Schleifen. abstrakte Klasse. - PowerPoint PPT Presentation

Citation preview

Page 1: Programmieren mit JAVA

Programmieren mit JAVA

Teil II

Page 2: Programmieren mit JAVA

Zusammenfassung

• Applikation vs. Applet• sequentiell vs. objektorientiert• Klasse, instanziieren, Objekt, Methode, Attribut

• if ... else• Blockanweisung {}• Bedingungsoperator• switch ... case• while, do ... while, for Schleifen

Page 3: Programmieren mit JAVA

abstrakte Klasse

• keine direkten Instanzen• darf keine Implementierung von Methoden enthalten• charakterisiert durch Schlüsselwort abstract

• dienen der Strukturierung und Vereinbarung von Methodenschnittstellen

Page 4: Programmieren mit JAVA

Vererbung

• ~ ist die Beziehung zwischen Superklasse und Sub-klasse (auch: abgeleitete Klasse)

• immer streng hierarchisch

• Methoden werden NICHT kopiert ! Nur formale Ver-knüpfung.

Page 5: Programmieren mit JAVA

Vererbung

• Attribute hinzufügen• neue Methoden spezifizieren• vorhandene Methoden überladen• geerbte Methoden ergänzen

• JAVA unterstützt nur Einfachvererbung !

Page 6: Programmieren mit JAVA

Überschreiben

• ~ bedeutet, dass bei Namensgleichheit von Methoden der Superklasse und abgeleiteter Klasse die Methoden der abgeleiteten Klasse die der Superklasse verdecken

Page 7: Programmieren mit JAVA

Polymorphismus

• Lässt sich ein und dieselbe Operation auf Objekte unterschiedlicher Klassen anwenden, so ist diese Operation polymorph.

Bsp.:– Bei Objekten der Klasse Strecke bewirkt die Operation inc

ein kontinuierliches Inkrementieren bis zum Maximum des Wertebereichs.

– In einer Klasse Blickrichtung könnte die inc Operation so definiert sein, dass nach 359 auf 0 gesprungen wird.

Page 8: Programmieren mit JAVA

Grundprinzipien der OOP

• Objekte heben die Trennung von Daten und Anwei-sungen auf

• Objekte tauschen Nachrichten aus und reagieren da-rauf. Anderen Kommunikationswege gibt es nicht

• Objekte erben Methoden und Attribute des Objektes in der zugehörigen Superklasse

• Objekte können ererbte Methoden und Attribute erwei-tern und verändern

• Wenn Objekte zu verschiedenen Klassen gehören, werden sie auf die gleiche Nachricht unterschiedlich reagieren (Polymorphismus)

Page 9: Programmieren mit JAVA

Überladen, Überschreiben, Überschatten

Überladen:– nur bei Methoden, NICHT bei Operatoren (++)

– mehrere Methoden mit identischem Namen aber unter-schiedlichen Parameterlisten

– Methoden mit dem Schlüsselwort static können nicht über-laden werden !

Page 10: Programmieren mit JAVA

Überladen, Überschreiben, Überschatten

Überschreiben:– Name UND Parameterliste sind gleich

– ermöglicht Spezialisierung von Objekten

Überschatten:– Variablen können überschattet werden

– Definition einer Variable mit anderem Typ als in der Superklasse

Page 11: Programmieren mit JAVA

Hauptbestandteile der Sprache

• Token• Typen• Ausdrücke und Operatoren• Anweisungen• Klassen• Methoden• Schnittstellen• Pakete• Variablen

Page 12: Programmieren mit JAVA

Token

• Zeichen, Merkmal

in JAVA gibt es fünf Arten von Token:– Schlüsselworte

– Bezeichner

– Literale

– Operatoren

– Trennzeichen

Page 13: Programmieren mit JAVA

Die JAVA Token

Schlüsselworte:– alle Wörter, die essentieller Teil der JAVA-Sprachdefinition

sind

– Groß- und Kleinschreibung werden unterschieden !

Bsp.:public, class, static, void

Page 14: Programmieren mit JAVA

Die JAVA Token

Bezeichner:– Namen für Klassen, Objekte, Variablen, Konstanten,

Methoden ...

– an erster Stelle darf KEINE Zahl stehen !

– Bezeichner sollten nicht mit Namen von JAVA-Paketen identisch sein

Bsp.:HelloWorld, main, args, System, out, println, j, n32e20

Page 15: Programmieren mit JAVA

Die JAVA Token

Bezeichner:– Namenskonflikte werden über die Namensräume aufgelöst

Hierarchie:• Namensraum des Paketes

• Namensraum der Klasse

• Namensräume der Methoden (Bezeichner der Methodenparameter überdecken Attribute der Klasse !)

• Innerhalb der Methoden Namensräume in Blöcken

Page 16: Programmieren mit JAVA

Die JAVA Token

Literal:– mit einem ~ können Variablen und Konstanten Werte

zugewiesen werden

– Ganzzahlliterale, Gleitpunktliterale, Zeichenliterale, Zeichenkettenliterale, Boolesche Literale

Bsp.:„HelloJava“, 42, false, true

Page 17: Programmieren mit JAVA

Die JAVA Token

Trennzeichen:– alle Symbole für die Trennung und Zusammenfassung von

Code

Bsp.:( ) { } [ ] ; , . /* JAVA kennt nur diese 9 TZ */

Page 18: Programmieren mit JAVA

Die JAVA Token

Operatoren:– Zeichen oder Zeichenkombination, die eine Operation mit

einer oder mehreren Variablen oder Konstanten angibt

+, -, *, /, % Arithmetische ~

+=, -=, *=, /=, %=, = Arithmetische Zuweisungs~

++, -- Inkrement-/Dekrement ~

&, |, ^, ~ Bit~

<<, >>, >>> Bitweise Verschiebe~

&=, |=, ^=, <<=, >>=, >>>= Bitweise Zuweisungs~

==, !=, <, >, <=, >= Vergleichs~

&&, ||, ! logische Vergleichs~

Page 19: Programmieren mit JAVA

Die JAVA Token

Leerraum:– Zeichen zur übersichtlichen Gestaltung des Quelltextes

Bsp.:[Space], [Tab], [Zeilenende]

Page 20: Programmieren mit JAVA

Die JAVA Token

Kommentar:– zur übersichtlichen Gestaltung des Quelltextes und zur

Dokumentation

Bsp.:/* Kommentar */

// Kommentar

/** Kommentar */

Page 21: Programmieren mit JAVA

Typen

• Ein Typ gibt in der Computersprache an, wie ein einfaches Objekt (wie z.B. eine Variable) im Speicher des Computers dargestellt wird.

• Er enthält normalerweise ebenfalls Hinweise darüber, welche Operationen mit und an ihm ausgeführt werden können.

Page 22: Programmieren mit JAVA

Typen

• JAVA besitzt 8 primitive Datentypen:– 4 Ganzzahldatentypen

– einen logischen Datentyp

– zwei Gleitzahltypen

– einen Zeichentyp

• primitiv bedeutet, dass diese Datentypen im System integriert und nicht als Objekte zu verstehen sind

Page 23: Programmieren mit JAVA

Typen

• Datentypen sind in JAVA plattformunabhängig !!• besitzen immer einen wohldefinierten default-

Anfangswert, müssen also nicht zwingend initialisiert werden

Page 24: Programmieren mit JAVA

Typen

Bezeichnung Typ Default-Wert

byte 8 Bit 0

short 16 Bit 0

int 32 Bit 0

long 64 Bit 0

float 32 Bit 0.0

double 64 Bit 0.0

char 16 Bit \u000

boolean 1 Bit false

Page 25: Programmieren mit JAVA

Typen

Datenfelder:int antwort[];int[] antwort;

int antwort [] [];

int[] antwort = new int [5]; /* erzeugt fünfelementiges

Array vom typ int */

oder

int[] antwort = {41, 42, 43, 44, 45};

int [] [] antwort = {{41, 42}, {43, 44}};

Page 26: Programmieren mit JAVA

Typen

Datenfelder:– Indizierung beginnt bei 0 !

– Zugriff auf Elemente ausserhalb der Arraygrenzen erzeugt Kompilierungs-/Laufzeitfehler

Zugriff auf Elemente mehrdimensionaler Felder:

antwort [1][1] = 44;

Achtung:

antwort [1,1] erzeugt Fehler !

Page 27: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren

Page 28: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren

Page 29: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren

Page 30: Programmieren mit JAVA

Blockanweisungen

• Eine Folge von Anweisungen kann zu einem Anweisungsblock zusammengefasst werden.

• Dieser Block verhält sich dann wie eine einzelne Anweisung.

if (day == “Sunday”)tidyUpComputer ();

if (day == “Sunday”) {clearTempDirectory();makeBackup ();scanDisk();

}

Page 31: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren

Page 32: Programmieren mit JAVA

Bezeichnete Anweisungen

Bsp.:

endOfLoop:for (c1=0; c1<10; c1++) {

for (c2=0; c2<50; c2++) {

newchar = instream.read (); // read a char

if (newchar == ‚\0‘) break enfOfLoop;

System.out.println (newchar);

}

System.out.println (“\n”);

}

System.out.println (“The end”);

Page 33: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren

Page 34: Programmieren mit JAVA

Deklaration

• Klassendeklarationen• Schnittstellendeklarationen• Datenfelddeklarationen• Objektdeklarationen• Deklaration primitiver Typen

Page 35: Programmieren mit JAVA

Klassendeklarationen

• Eine ~ besteht immer aus 6 Teilen welche in folgender Reihenfolge zusammengesetzt werden

Bestandteil Status Beschreibung

Klassenmodifier optional abstract, final, public

Class zwingend class

Bezeichner zwingend ein normaler Bezeichner

Super optional extends gefolgt von Typname, Typ

muss Klasse sein, die nicht final ist

Schnittstellen optional implements gefolgt von durch

Kommata getrennter Liste mit

Schnittstellen

Klassenkörper zwingend

Page 36: Programmieren mit JAVA

Schnittstellendeklarationen

• Eine ~ besteht immer aus 5 Teilen welche in folgender Reihenfolge zusammengesetzt werden

Bestandteil Status Beschreibung

Schnittstellenmodifier optional abstract, public

Interface zwingend interface

Bezeichner zwingend ein normaler Bezeichner

Schnittstellenerweiterung optional extends gefolgt von Typname, Typ

muss Klasse sein, die nicht final ist

Schnittstellenkörper zwingend

Page 37: Programmieren mit JAVA

Datenfelddeklarationen

• Eine ~ besteht immer aus 5 Teilen welche in folgender Reihenfolge zusammengesetzt werden

Bestandteil Status Beschreibung

Datenfeldmodifier optional public,protected, private,

synchronized

Typenname zwingend Name des Typen oder der Klasse,

die aufgestellt werden

Klammern zwingend []

Initialisierung optional

Semikolon zwingend ;

Page 38: Programmieren mit JAVA

Objektdeklarationen

• Ein Objekt zu deklarieren bedeutet, eine Referenz zu erstellen

Bestandteil Status Beschreibung

Objektmodifier optional public, protected, private,

synchronized

Typenname zwingend Name der Klasse, deren Instanz

dieses Objekt ist

Initialisierung optional

Semikolon zwingend ;

Page 39: Programmieren mit JAVA

Deklaration primitiver Typen

• Reservierung von Speicherplatz• Initialisierung mit explizit angegebenem Wert oder

default-WertBestandteil Status Beschreibung

Datenfeldmodifier optional public, protected, private,

synchronized

Typenname zwingend boolean, char, byte, short, int,

long, float, double

Initialisierung optional

Semikolon zwingend ;

Page 40: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren

Page 41: Programmieren mit JAVA

Anweisungen

Ausdrucksanweisung Beispiel

Zuordnung a = 42

Prä-Inkrement ++wert

Prä-Dekrement --wert

Post-Inkrement wert++

Post-Dekrement wert--

Methodenaufruf System.out.println(„Hello World!“);

Zuweisungsausdruck byte wert = new byte;

Page 42: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren

Page 43: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren

Page 44: Programmieren mit JAVA

Anweisungen

Anweisungsart Beschreibung

Leere Anweisung dient nur als Platzhalter

Blockanweisungen Zusammenfassen von Quelltext

Bezeichnete Anweisung werden als Ziel für Sprungbefehle genutzt

Deklaration Einführung von Datentyp, Klasse, Objekt ...

Ausdrucksanweisung 7 verschiedene verfügbar =>

Auswahlanweisung if, if .. else, switch .. case

Iterationsanweisung while, do, for

Sprunganweisungen break, continue, return, throw

Synchronisationsanweisung für Multithreading, synchronized, threadsafe

Schutzanweisung try, catch, finally

Unerreichbare Anweisung erzeugt Fehler beim kompilieren