1 / 58

Java-Praxiskurs I

2. Der Java-Praxiskurs I. YOU ARE HERE ?. Einf?hrungObjektorientierte ModellierungJava-SprachkonstruktePakete und ZugriffskontrolleDeklaration von Methoden, Attributen, VariablenAusdr?cke und AnweisungenKontrollstrukturenAusnahmebehandlungInterfacesDatenstrukturenJava-KlassenbibliothekDat

loman
Télécharger la présentation

Java-Praxiskurs I

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. 24. August 2012 Lehrstuhl fr Angewandte Telematik / e-Business Java-Praxiskurs I Malte Hlder Vincent Wolff-Marting

    2. 2 Der Java-Praxiskurs I YOU ARE HERE ? Einfhrung Objektorientierte Modellierung Java-Sprachkonstrukte Pakete und Zugriffskontrolle Deklaration von Methoden, Attributen, Variablen Ausdrcke und Anweisungen Kontrollstrukturen Ausnahmebehandlung Interfaces Datenstrukturen Java-Klassenbibliothek Dateien und Streams Grafische Benutzungsoberflchen Programmierstil

    3. 3 Der Java-Praxiskurs I Klassendeklaration public class Buch { ... }

    4. 4 Der Java-Praxiskurs I Attributdeklaration public class Buch { private String autoren; private String titel; private String verlag; private int jahr; ... }

    5. 5 Der Java-Praxiskurs I Primitive Typen: Zahlen Wahrheitswert (Boolesche Logik) boolean : true oder false Ganzzahl (Zweierkomplement) byte 27...(271); dezimal: 42, hexadezimal: 0x2A, oktal: 052 short 215...(2151); dezimal, hexadezimal, oktal (s.o.) int 231...(2311); dezimal, hexadezimal, oktal (s.o.) long 263...(2631); dezimal: 100000000000L Fliekommazahl (IEEE 754) float 32 Bit; Dezimalbruch: 3.1415F, Exponent: -2.567E25F double 64 Bit; Dezimalbruch, 3.1415D, Exponent: 1.79E-308D

    6. 6 Der Java-Praxiskurs I Primitive Typen: Zeichen Zeichen (Unicode) char direkt: 'A' Escape-Sequenz: '\"' Unicode (hex): '\u0022' oktaler ASCII-Code: '\42' Escape-Sequenzen '\"' doppeltes Anfhrungszeichen '\'' einfaches Anfhrungszeichen '\\' Backslash '\b' Backspace (ASCII: 8) '\t' Tabulator (ASCII: 9) '\n' Zeilenwechsel (ASCII: 10) '\f' Seitenwechsel (ASCII: 12) '\r' Wagenrcklauf (ASCII: 13)

    7. 7 Der Java-Praxiskurs I Referenztypen primitive Typen: Attribute enthalten Werte komplexere Datenstrukturen werden als Objekte dargestellt String-Objekte, Array-Objekte, Objekte beliebiger Klassen Referenztypen: Attribute enthalten Verweise auf Objekte

    8. 8 Der Java-Praxiskurs I Referenzen auf Objekte mehrere Referenzen knnen auf das gleiche Objekt zeigen Garbage Collection zerstrt nicht mehr referenzierte Objekte explizites free oder delete als Gegenstck zu new unntig

    9. 9 Der Java-Praxiskurs I Klasse Object alle Klassen haben Oberklasse Object wichtige von Object geerbte Methoden public String toString () gibt textuelle Reprsentation des Objekts aus im Original Ausgabe von Klassenname und Objekt-Hashcode sollte berschrieben werden, um Inhalt der Objektattribute auszugeben wird implizit aufgerufen, wenn man ein Objekt an System.out.println() bergibt hilfreich zum Testen public boolean equals (Object obj) vergleicht das Objekt mit dem in obj bergebenen Objekt im Original nur Vergleich der Referenzen this und obj sollte berschrieben werden, um Objektattribute inhaltlich zu vergleichen weitere, systemnhere Methoden (hier nicht weiter betrachtet)

    10. 10 Der Java-Praxiskurs I Strings (Zeichenketten) Zeichenketten werden durch Objekte der besonderen Klasse String dargestellt keine explizite Instanziierung notwendig direkte Zuweisung von Literalen mglich String autor1 = "Doberkat"; String autor2 = "Dimann"; Zeichencodierung in Strings analog zu char-Literalen "Preis: \u20AC 123,45" ? Preis: 123,45 Achtung: char-Literale stehen in einfachen, String-Literale in doppelten Anfhrungszeichen! mehr ber die Fhigkeiten der String-Klasse spter

    11. 11 Der Java-Praxiskurs I Arrays (Felder) Sammlung von Werten des gleichen Typs, wobei auf jeden Wert ber einen Index zugegriffen werden kann Deklaration Typ[] feldname; Typ kann primitiver Datentyp, String oder Klasse sein Instanziierung feldname = new Typ[Gre]; Instanziierung mit Initialisierung feldname = new Typ[] {Wert0, Wert1, ..., Wertn}; Zugriff auf bestimmtes Feldelement feldname[Index] Bestimmung der Feldlnge feldname.length

    12. 12 Der Java-Praxiskurs I Arrays: Beispiel getrennte Deklaration, Instanziierung und Initialisierung: String[] autoren; // Deklaration autoren = new String[3]; // Instanziierung autoren[0] = "Gosling"; // Initialisierung durch autoren[1] = "Joy"; // individuellen Zugriff auf autoren[2] = "Steele"; // einzelne Elemente Deklaration, Instanziierung und Initialisierung in einem: String[] autoren = new String[] {"Gosling", "Joy", "Steele"};

    13. 13 Der Java-Praxiskurs I Zugriff auf Array-Elemente Die Nummerierung der Elemente beginnt immer bei 0 und ist immer positiv! Bei einem Feld mit der Lnge X ist der grte zulssige Index X-1! String[] fahrstuhl = new String[4]; fahrstuhl[0] = Erdgeschoss; fahrstuhl[1] = Paulaner; fahrstuhl[2] = Telematik / e-Business; fahrstuhl[3] = Fachsprachenzentrum;

    14. 14 Der Java-Praxiskurs I Mehrdimensionale Arrays: Erzeugung Deklaration Typ[][] feldname; Zahl der Klammerpaare bestimmt Zahl der Dimensionen Instanziierung feldname = new Typ[Gre0][Gre1]; Instanziierung nicht rechteckiger Arrays Gre einer Dimension abhngig vom Index der Oberdimension feldname = new Typ[Gre0][]; feldname[Index0] = new Typ[GreIndex0]; Instanziierung mit Initialisierung feldname = new Typ[][] { {Wert00, Wert01, ..., Wert0n}, {Wert10, Wert11, ..., Wert1m} };

    15. 15 Der Java-Praxiskurs I Mehrdimensionale Arrays: Zugriff Referenz auf bestimmtes Feldelement feldname[Index0][Index1] Referenz auf (n-1)-dimensionales Teilfeld feldname[Index0] Referenz auf n-dimensionales Gesamtfeld feldname Feldlnge der ueren Dimension feldname.length Feldlnge der nchst-tieferen Dimension feldname[Index0].length

    16. 16 Der Java-Praxiskurs I Methodendeklaration import java.util.Date; public class Buch { public Buch (...) {...} public int ausleihen (...) {...} public void zurueckgeben (...) {...} public void vormerken (...) {...} public Date verlaengern (...) {...} ... }

    17. 17 Der Java-Praxiskurs I Methodendeklaration: Parameter Inhalt der Parameterliste Typen der Parameter, die der Methode bergeben werden mssen Namen, unter denen sie in der Methode angesprochen werden public Buch (String initAutor, String initTitel, String initVerlag, int initJahr) {...} public void zurueckgeben () {...} public Date verlaengern (int tage) {...} Methodenaufruf mit Parametern als Literale oder Variable Buch javaLehrbuch = new Buch ("Doberkat, Dimann", "Einfhrung in die OOP mit Java", "Oldenbourg", 1999); ... int zeitraum = 14; Date rueckgabeTermin = javaLehrbuch.verlaengern (zeitraum);

    18. 18 Der Java-Praxiskurs I Parameterbergabe per Wert bei primitiven Typen beim Aufrufen einer Methode werden die Parameterwerte vom aufrufenden Programmteil in die Methode kopiert Wertnderungen der Parameter in der Methode wirken sich nicht auf Werte auerhalb der Methode aus

    19. 19 Der Java-Praxiskurs I Parameterbergabe per Referenz bei Referenztypen beim Aufrufen einer Methode werden die Verweise auf die Objekte vom aufrufenden Teil in die Methode kopiert, nicht die Objekte selbst Vernderungen der Objekte in der Methode wirken sich auf Objekte auerhalb der Methode aus!

    20. 20 Der Java-Praxiskurs I Methodensignatur Methoden werden ber ihre Signatur identifiziert bestehend aus Methodenname, Anzahl und Typen der Parameter aber nicht Parameternamen und Rckgabetyp Beispiele verschiedene Methodennamen ? verschiedene Signaturen public void ausleihen () {...} public void zurueckgeben () {...} gleiche Methodennamen, Parametertypen ? gleiche Signaturen ? Compiler-Fehlermeldung public void vormerken (String benutzerName) {...} public boolean vormerken (String vormerkName) {...} verschiedene Parametertypen ? verschiedene Signaturen public Date verlaengern (int tage) {...} public Date verlaengern () {...}

    21. 21 Der Java-Praxiskurs I berladen von Methoden Mglichkeit, unterschiedliches Methodenverhalten in Abhngigkeit von den gegebenen Parametern zu definieren gleicher Methodenname, verschiedene Parameterlisten public Date verlaengern (int tage) { ... // Benutzerdefinierte Verlaengerung leihFrist = leihFrist + tage; ... } public Date verlaengern () { ... // Default-Verlaengerungsfrist (2 Wochen) leihFrist = leihFrist + 14; ... }

    22. 22 Der Java-Praxiskurs I berladen von Konstruktoren genau wie bei Methoden mglich beliebte Technik fr Initialisierungsvarianten von Objekten wird kein Konstruktor deklariert, so wird implizit ein leerer Standardkonstruktor verwendet public class Leer { public class Leer { ? public Leer () {} } } wird ein Konstruktor mit Parametern deklariert, so muss der leere Konstruktor explizit zustzlich deklariert werden, um ebenfalls verwendet werden zu knnen!

    23. 23 Der Java-Praxiskurs I Beenden von Methoden return-Anweisung beendet Methodenausfhrung und gibt Wert zurck public Date verlaengern () { ... Date rueckgabeTermin = new Date(); ... return rueckgabeTermin; } Bei Methoden ohne Rckgabewert (void) kann die Anweisung weggelassen oder ohne Variable (return;) angegeben werden Verwendung mehrerer return-Anweisungen in einer Methode mglich

    24. 24 Der Java-Praxiskurs I Variablen speichern (wie Attribute) vernderliche Werte versch. Typen werden jedoch innerhalb einer Methode deklariert und existieren daher nur whrend der Ausfhrung der Methode! Deklaration vor Verwendung muss der Typ der Variablen festgelegt werden, d.h. welche Werte sie annehmen kann alle primitiven Typen und Referenztypen mglich kein Sichtbarkeitsmodifikator, da immer auf Methode begrenzt mehrere Variablen gleichen Typs komma-getrennt auffhrbar public void methode () { int dez, hex; String[] autoren; Date rueckgabeTermin; ... }

    25. 25 Der Java-Praxiskurs I Variablen: Initialisierung Zuweisung von Werten an Variablen mit Operator = public void methode () { ... dez = -42; hex = 0xFFD6; autoren = new String[2]; autoren[0] = "Doberkat"; autoren[1] = "Dimann"; rueckgabeTermin = new Date(); ... } Kombination von Deklaration und Initialisierung public void methode () { int dez = -42, hex = 0xFFD6; String[] autoren = new String[] {"Doberkat", "Dimann"}; Date rueckgabeTermin = new Date(); ... }

    26. 26 Der Java-Praxiskurs I Konstanten: Primitive Typen Modifikator final bewirkt, dass der Wert von Variablen, Parametern, Attributen nach der Initialisierung fixiert ist public class Klasse { private final int ANTWORT_AUF_ALLES = 42; public void methode (final double param) { final int zahl; // Initialisierung nicht sofort ntig ... zahl = 21; // einmalige Zuweisung mglich ... zahl = 12; // Fehler: nur Initialisierung erlaubt param = 2.345; // Fehler: Wert nach bergabe fixiert } }

    27. 27 Der Java-Praxiskurs I Konstanten: Referenztypen Modifikator final bewirkt nur, dass in Variablen, Parametern, Attributen gespeicherte Referenzen fixiert sind Attribute der referenzierten Objekte knnen weiterhin gendert werden! public void methode () { final Klasse objekt = new Klasse(); // Referenz fixiert ... objekt.x = 5; // Werte des ref. Objekts noch nderbar ... objekt = null; // Fehler: Referenz nicht mehr nderbar ... } }

    28. 28 Der Java-Praxiskurs I Blcke und Sichtbarkeit (Scope) Java-Code ist in verschachtelten Blcken strukturiert, die durch { } begrenzt werden Variablen gelten nur in dem Block, in dem sie deklariert sind Variablen knnen nicht in Unterblcken deklariert werden, wenn sie bereits in Oberblcken deklariert wurden public void methode (int param) { int param = 1; // Fehler: param schon deklariert int zahl = 2; // zahl ab hier sichtbar if (...) { int zahl = 3; // Fehler: zahl bereits deklariert zeichen = 'A'; // Fehler: zeichen nicht deklariert char zeichen = 'B'; // zeichen erst ab hier sichtbar } zeichen = 'C'; // Fehler: zeichen nicht mehr dekl. if (...) { char zeichen = 'D'; // zeichen wieder deklarierbar } }

    29. 29 Der Java-Praxiskurs I berdecken von Attributen Deklaration von Variablen mit bereits verwendeten Attributnamen fhrt zur berdeckung der Attribute sowohl Variablen als auch Attribute bleiben zugnglich Variablen ber ihren Bezeichner, Attribute ber this.Bezeichner this ist Referenz auf Objekt, zu dem die Methode gehrt public class Buch() { private int jahr; ... public void setJahr(int jahr) { this.jahr = jahr; // Attribut = Parameter } public int getJahr() { return jahr; // Attribut zurckgeben } }

    30. 30 Der Java-Praxiskurs I berdecken, berladen, berschreiben berdecken eines Attributs Deklaration einer Methodenvariable mit gleichem Namen wie Attribut des Objekts Zugriff auf Methodenvariable ber den Namen Zugriff auf berdecktes Attribut ber this-Referenz und Name berladen einer Methode Deklaration von Methoden mit gleichen Namen, aber unterschiedlichen Signaturen Zugriff auf verschiedene Methoden anhand bergebener Parameter berschreiben einer Methode Deklaration einer Methode mit gleichem Namen und gleicher Signatur wie Methode der Oberklasse Zugriff auf Methode der Unterklasse ber den Namen Zugriff auf Methode der Oberklasse ber super-Referenz und Name

    31. 31 Der Java-Praxiskurs I Variablenarten lokale Variablen in einer Methode (oder in einem Block einer Methode) deklariert gltig von Deklaration bis Ende des Blocks/der Methode Parameter im Kopf einer Methode oder eines Konstrukturs deklariert gltig in gesamter Methode/gesamtem Konstruktor Attribute (Instanzvariablen) in einer Klasse deklariert in individuellen Objekten gltig von Instanziierung bis Zerstrung Klassenvariablen in einer Klasse mit Modifikator static deklariert nicht an Instanzen der Klasse gebunden, sondern im gesamten Programm gltig

    32. 32 Der Java-Praxiskurs I Klassenvariablen nicht an Instanzen der Klasse gebunden, sondern im gesamten Programm gltig in UML: Kennzeichnung durch Unterstreichung oder alternativ durch {isStatic} in Java: mit Schlsselwort static deklarierte Attribute public class Klasse { public static int variable; public static final String KONSTANTE = "Konstante"; ... } Zugriff ber den Klassennamen ohne vorherige Instanziierung eines Objekts Klasse.variable = 42; System.out.println (Klasse.KONSTANTE);

    33. 33 Der Java-Praxiskurs I Klassenmethoden mit Schlsselwort static deklarierte Methoden drfen ausschlielich auf Klassenvariablen und andere Klassenmethoden zugreifen, nicht auf normale Attribute und Methoden! public class Statistik { public static float durchschnitt (...); } Zugriff ber den Klassennamen ohne vorherige Instanziierung eines Objekts float avg = Statistik.durchschnitt (...); public static void main() ist Klassenmethode zu Programmbeginn knnen noch keine Objekte instanziiert sein

    34. 34 Der Java-Praxiskurs I main-Klassenmethode in BlueJ nicht ber ein Objekt aufrufbar, sondern nur ber die Klasse

    35. 35 Der Java-Praxiskurs I Zusammenfassung Sichtbarkeitsmodifikatoren public, protected, (paketsichtbar), private Primitive Datentypen und ihre Literale boolean; short, byte, int, long; float, double; char Referenzdatentypen Referenzen auf Objekte, Garbage Collection Object, String, Arrays Methodendeklaration und Methodensignatur Parameterbergabe per Wert und per Referenz berladen von Methoden und Konstruktoren Deklaration von Variablen und Konstanten berdecken von Attributen Blcke und Sichtbarkeit Klassenvariablen und methoden (static)

    36. 36 Der Java-Praxiskurs I YOU ARE HERE ? Einfhrung Objektorientierte Modellierung Java-Sprachkonstrukte Pakete und Zugriffskontrolle Deklaration von Methoden, Attributen, Variablen Ausdrcke und Anweisungen Kontrollstrukturen Ausnahmebehandlung Interfaces Datenstrukturen Java-Klassenbibliothek Dateien und Streams Grafische Benutzungsoberflchen Programmierstil

    37. 37 Der Java-Praxiskurs I Ausdrcke und Anweisungen Ausdrcke sind mehrere durch Operatoren verknpfte Variablen, Methoden oder Literale jeder Ausdruck hat ein Ergebnis (Wert) bestimmten Typs 5 * a + Math.max (b, c) (primitiver Typ) new java.util.Date () (Referenztyp) in Anweisungen wird der Ausdruckswert einer Variablen zugewiesen, einer Methode bergeben oder als Methodenwert zurckgegeben d = 5 * a + Math.max (b, c); System.out.println (5 * a + Math.max (b, c)); return new java.util.Date (); auch Deklarationen und Initialisierungen sind Anweisungen

    38. 38 Der Java-Praxiskurs I Anweisungen und Blcke Anweisungen werden mit Semikolon (;) abgeschlossen leere Anweisung: einzelnes Semikolon Anweisung; ; // leere Anweisung Anweisung; Anweisungen werden der Reihe nach abgearbeitet Blcke (begrenzt durch geschweifte Klammern) fassen Sequenzen von Anweisungen zusammen Anweisung; { Anweisung; Anweisung; Anweisung; } Anweisung;

    39. 39 Der Java-Praxiskurs I Operatoren Konkatenations-Operator + arithmetische Operatoren +, -, *, /, %, ++, -- Type Casting-Operator (typ) Bit-Operatoren ~, &, |, ^, <<, >>, >>> Zuweisungsoperatoren =, +=, -=, *=, /=, %=, &=, |=, ^= logische Operatoren !, &&, &, ||, |, ^ Vergleichsoperatoren ==, !=, >, <, >=, <=, instanceof Bedingungsoperator ?:

    40. 40 Der Java-Praxiskurs I Operatorprioritten 14 Stufen (hoch bis niedrig) ++, --, Vorzeichen, ~, !, (typ) *, /, % +, - <<, >>, >>> <, <=, >, >=, instanceof ==, != & ^ | && || ?: = *=, /=, %=, -=, <<=, >>=, >>>=, &=, ^=, |= Prioritten knnen durch Klammerung gendert werden

    41. 41 Der Java-Praxiskurs I String-Konkatenation Operanden: Strings und ggf. primitive Datentypen Ergebnis: String Verknpfung (Konkatenation) mit Operator + String a = "Hello", b = "World", c; c = a + " " + b; ist einer der Operanden ein primitiver Datentyp, so wird er in einen String umgewandelt String a = "Antwort: ", c; int b = 42; c = a + b; // "Antwort: 42"

    42. 42 Der Java-Praxiskurs I Arithmetische Operatoren Operanden und Ergebnis: Zahlen Vorzeichen: +a bzw. a -a Rechenoperationen Addition, Subtraktion: a + b a - b Multiplikation, Division: a * b a / b Modulo-Division (Restbildung): a % b Inkrementierung, Dekrementierung (nur fr Ganzzahlen) Prinkrement, Prdekrement: ++a --a Postinkrement, Postdekrement: a++ a-- Prfix-Operatoren: erst Rechenoperation, dann Auswertung b = ++a; ? a = a + 1; b = a; Postfix-Operatoren: erst Auswertung, dann Rechenoperation b = a--; ? b = a; a = a - 1;

    43. 43 Der Java-Praxiskurs I implizite Typumwandlung automatische Typanpassung (Type Casting) bei Rechenoperationen mit... ...byte-, short-, int-Zahlen: Ergebnis: int-Zahl ...long- und anderen Ganzzahlen: Ergebnis: long-Zahl ...float- und anderen Zahlen: Ergebnis: float-Zahl ...double- und anderen Zahlen: Ergebnis: double-Zahl Ziel: Vermeidung von berlufen short a = 2, b = 30000; int c = a * b; // 60000 wre zu gro fr short Vorsicht bei Division von Ganzzahlen short a = 7, b = 2; int c = a / b; // ergibt 3!

    44. 44 Der Java-Praxiskurs I explizite Typumwandlung Type Casting-Operator: (typ) variable Vorsicht: Operator hat sehr hohe Prioritt! ggf. Klammerung von zu castenden Ausdrcken notwendig short a = 2, b = 100, c; short a = 7, b = 2; c = (short) (a * b); float c = (float) a / b; Vorsicht: Datenverlust mglich! Bei Konvertierung von... groen in kleine Ganzzahlen: Verlust der hherwertigen Bits Fliekommazahlen in Ganzzahlen: Verlust der Nachkommastellen double d = -67.89; int i = (int) d; // -67 long-Zahlen in Fliekommazahlen: u.U. nicht exakt mglich auch explizites Casting von Referenztypen mglich String-Umwandlungen ber besondere Methoden (spter)

    45. 45 Der Java-Praxiskurs I Bit-Operatoren Operanden und Ergebnis: ganzzahlige primitive Datentypen bitweise Invertierung: ~a bitweise Verknpfung bitweises Und: a & b bitweises Oder: a | b bitweises Exclusiv-Oder: a ^ b bitweise Verschiebung (um n Stellen) nach links (mit Nachschieben von Nullen): a << n nach rechts (mit Nachschieben von Nullen): a >> n nach rechts (mit Nachschieben des Vorzeichenbits): a >>> n Trick zur Geschwindigkeitsoptimierung a << n entspricht a * 2n a >> n entspricht a / 2n

    46. 46 Der Java-Praxiskurs I Zuweisungsoperatoren fr alle Datentypen als Ausdruck und Ergebnis: Zuweisungsoperator a = b Variable auf linker Seite erhlt Wert des Ausdrucks auf rechter Seite fr Zahlentypen als Operanden und als Ergebnis: Kombination von Rechen/Bitverknpfungs-Operation mit Zuweisung Semantik (mit Operator-Platzhalter #) a #= b ? a = a # (b) Addition, Subtraktion: a += b a -= b Multiplikation, Division: a *= b a /= b Modulo-Division (Restbildung): a %= b Und: a &= b Oder: a |= b Exclusiv-Oder: a ^= b

    47. 47 Der Java-Praxiskurs I Logische Operatoren Operanden: boolesche Ausdrcke Ergebnis: boolescher Wert logische Negation: !a mit Kurzschluss-Auswertung Auswertung der Operanden bricht ab, wenn Ergebnis feststeht logisches Und: a && b logisches Oder: a || b ohne Kurzschluss-Auswertung Auswertung aller Operanden, auch wenn ohne Einfluss auf Ergebnis logisches Und: a & b logisches Oder: a | b logisches Exclusiv-Oder: a ^ b

    48. 48 Der Java-Praxiskurs I Vergleichsoperatoren Ergebnis immer boolescher Wert fr alle Datentypen als Operanden: Gleichheit a == b Ungleichheit a != b Vorsicht: Vergleich == nicht mit Zuweisung = verwechseln! fr primitive Datentypen als Operanden: grer als, grer als oder gleich a > b a >= b kleiner als, kleiner als oder gleich a < b a <= b fr Referenztypen und Klassen als Operanden: Prfung des Datentyps a instanceof Typ ergibt true, wenn das Objekt a eine Instanz der Klasse Typ ist ergibt auch true, wenn Typ eine Oberklasse der Klasse von a ist

    49. 49 Der Java-Praxiskurs I Referenzgleichheit vs. Wertgleichheit Vorsicht beim Vergleich von Referenztypen! == prft, ob Referenzen auf gleiche Instanz zeigen != prft, ob Referenzen auf verschiedene Instanzen zeigen es findet kein Vergleich der Objektinhalte statt! Konsequenzen Vergleich von Objektinhalten nur mit geeignet berschriebener equals-Methode der Objekte mglich Vergleich von Zeichenketten nur mit entsprechenden Methoden der Klasse String mglich

    50. 50 Der Java-Praxiskurs I Bedingte Ausdrcke Beschreibung von Alternativen in Ausdrcken if-then-else in einem Ausdruck Syntax a = Bedingung ? WennWahr : WennFalsch Bedingung muss ein Ausdruck mit booleschem Wert sein WennWahr und WennFalsch mssen Ausdrcke mit gleichem Ergebnistyp wie a sein (alle Datentypen erlaubt) Semantik Wenn Bedingung wahr ist, bekommt a den Wert von WennWahr, sonst den von WennFalsch zugewiesen Beispiel Erwachsene zahlen einen Mitgliedsbeitrag von 10, Jugendliche 5 mitgliedsBeitrag = alter >= 18 ? 10 : 5;

    51. 51 Der Java-Praxiskurs I Zusammenfassung Ausdrcke Anweisungen und Blcke Operatoren Konkatenations-Operator + arithmetische Operatoren +, -, *, /, %, ++, -- Type Casting-Operator (typ) Bit-Operatoren ~, &, |, ^, <<, >>, >>> Zuweisungsoperatoren =, +=, -=, *=, /=, %=, &=, |=, ^= logische Operatoren !, &&, &, ||, |, ^ Vergleichsoperatoren ==, !=, >, <, >=, <=, instanceof Bedingungsoperator ?: implizite und explizite Typumwandlung Referenzgleichheit vs. Wertgleichheit

    52. 52 Der Java-Praxiskurs I Your Mission

    53. 53 Der Java-Praxiskurs I 1. Spiel, Satz und Sieg gegeben: Codefragment - Klasse TennisSpieler UML-Diagramm Neue Objekte erzeugen this-Referenz Zugriff auf die Attribute und Methoden Konstruktoren Instanz- und Klassenvariablen Verschiedene Erweiterungen der Klasse TennisSpieler

    54. 54 Der Java-Praxiskurs I 2. Mensch, rgere Dich nicht! Die Klasse Mensch Klassenvariablen Konstruktoren Get- und Set-Methoden Die toString-Methode Die Klasse TestMensch Ungleiche Vergleiche

    55. 55 Der Java-Praxiskurs I 3. Inkrement und kein Ende gegeben: Java-Programm mit Inkrement-Operatoren Programmablauf nachvollziehen Vorhersage berprfen

    56. 56 Der Java-Praxiskurs I 4. Dosenravioli gegeben: Programmfragment mathematische Formeln fr geometrische Berechnungen in Java implementieren

    57. 57 Der Java-Praxiskurs I

    58. 58 Der Java-Praxiskurs I

More Related