1 / 44

Programmieren mit JAVA

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.

gavin
Download Presentation

Programmieren mit JAVA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programmieren mit JAVA Teil II

  2. Zusammenfassung • Applikation vs. Applet • sequentiell vs. objektorientiert • Klasse, instanziieren, Objekt, Methode, Attribut • if ... else • Blockanweisung {} • Bedingungsoperator • switch ... case • while, do ... while, for Schleifen

  3. abstrakte Klasse • keine direkten Instanzen • darf keine Implementierung von Methoden enthalten • charakterisiert durch Schlüsselwort abstract • dienen der Strukturierung und Vereinbarung von Methodenschnittstellen

  4. Vererbung • ~ ist die Beziehung zwischen Superklasse und Sub-klasse (auch: abgeleitete Klasse) • immer streng hierarchisch • Methoden werden NICHT kopiert ! Nur formale Ver-knüpfung.

  5. Vererbung • Attribute hinzufügen • neue Methoden spezifizieren • vorhandene Methoden überladen • geerbte Methoden ergänzen • JAVA unterstützt nur Einfachvererbung !

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

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

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

  9. Ü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 !

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

  11. Hauptbestandteile der Sprache • Token • Typen • Ausdrücke und Operatoren • Anweisungen • Klassen • Methoden • Schnittstellen • Pakete • Variablen

  12. Token • Zeichen, Merkmal in JAVA gibt es fünf Arten von Token: • Schlüsselworte • Bezeichner • Literale • Operatoren • Trennzeichen

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

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

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

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

  17. Die JAVA Token Trennzeichen: • alle Symbole für die Trennung und Zusammenfassung von Code Bsp.: ( ) { } [ ] ; , . /* JAVA kennt nur diese 9 TZ */

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

  19. Die JAVA Token Leerraum: • Zeichen zur übersichtlichen Gestaltung des Quelltextes Bsp.: [Space], [Tab], [Zeilenende]

  20. Die JAVA Token Kommentar: • zur übersichtlichen Gestaltung des Quelltextes und zur Dokumentation Bsp.: /* Kommentar */ // Kommentar /** Kommentar */

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

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

  23. Typen • Datentypen sind in JAVA plattformunabhängig !! • besitzen immer einen wohldefinierten default- Anfangswert, müssen also nicht zwingend initialisiert werden

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

  25. 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}};

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

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

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

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

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

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

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

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

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

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

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

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

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

  39. Deklaration primitiver Typen • Reservierung von Speicherplatz • Initialisierung mit explizit angegebenem Wert oder default-Wert Bestandteil Status Beschreibung Datenfeldmodifier optional public, protected, private, synchronized Typenname zwingend boolean, char, byte, short, int, long, float, double Initialisierung optional Semikolon zwingend ;

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

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

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

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

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

More Related