====== Übersicht über die bisherige Syntax ====== ===== Bezeichner: ===== Bezeichner müssen in Java mit einem Buchstaben, einem Unterstrich (_) oder einem Dollar-zeichen ($) beginnen. Sie dürfen nicht mit einer Ziffer anfangen. Nach dem ersten Zeichen können Bezeichner jede beliebige Kombination von Buchstaben und Ziffern enthalten (aber keine Umlaute, kein ß, kein Leerzeichen und keine Satzzeichen!) ==== Datentypen:==== Einfache Datentypen: Ganzzahl-Typen ^Typ |Größe |Wertebereich| ^byte |8 Bit |-128 bis 127| ^short |16 Bit |-32.768 bis 32.767| ^int |32 Bit |-2.147.483.648 bis 2.147.483.647| ^long |64 Bit |-9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807| Kommazahltypen ^Typ |Genauigkeit |Wertebereich| ^float |Ca. 7 Ziffern |1.4E-45 bis 3.4E+38 positiv und negativ| ^double |Ca. 16 Ziffern | 4.9E-324 bis 1.7E+308 positiv und negativ| Weitere Typen ^Typ | Erklärung | ^boolean |Hat nur die Werte „true“ und „false“ (Ja-Nein)| ^char |Für Zeichen wie ‘a‘ oder ‘Q‘ oder ‘!‘ | String-Typ ^Typ | Erklärung | ^String | Eine Zeichenkette, z.B. "Das Haus mit der Nummer 3"| ==== Typumwandlung: ==== In JAVA müssen sehr häufig Datentypen ineinander umgewandelt werden. Dazu sind alle einfachen Datentypen zusätzlich als Klassen implementiert, die entsprechende Umwandelmethoden besitzen. Die wichtigsten Methoden sind die parse-Methoden, die Strings in Zahlen verwandeln. ''Integer.parseInt(String)'' ''Long.parseLong(String)'' ''Double.parseDouble(String)'' usw. Argument der Methoden ist jeweils ein String Dazu kommen die toString-Methoden, die Zahlen in Strings verwandeln. ''Integer.toString(int)'' ''Long.toString(long)'' ''Double.toString(double)'' usw. Argument ist eine Zahl oder Variable des passenden Typs. Alternativ kann diese Aufgabe mit der ''valueOf''-Methode von String gelöst werden. ''String.valueOf(typ)'' Typ darf dabei irgendeine Zahl oder Variable eines Zahltyps sein. Um Zahlen ineinander umzuwandeln, gibt es einmal das Typcasting. Man schreibt den gewünschten Typ in Klammern davor. Z.B. (double) zahl macht aus der ''int'' oder ''long''-Variablen zahl eine Kommazahl (long) zahl macht aus der double-Variablen zahl eine Kommazahl, indem die Nachkommastellen abgeschnitten werden. Will man klassisch runden, benötigt man eine Methode der Klasse ''Math'', nämlich ''Math.round(double)'' rundet zu einer ''long-Zahl'' ==== Packages: ==== Um eine Klasse zu verwenden, die in einem Paket enthalten ist, können Sie eine der drei folgenden Techniken verwenden: * Wenn sich die gewünschte Klasse in java.lang (z. B. System, Math oder Date) befindet, können Sie diese Klasse einfach benutzen, indem Sie sich auf den Namen dieser Klasse beziehen. Die java.lang-Klassen sind für Sie in allen Ihren Programmen automatisch verfügbar. * Wenn sich die gewünschte Klasse in einem anderen Paket befindet, können Sie sich auf diese anhand des kompletten Namens, einschließlich des Paketnamens (z. B. java.awt.Font), beziehen. * Bei häufig verwendeten Klassen aus anderen Paketen können Sie einzelne Klassen oder auch das gesamte Paket importieren. Sobald eine Klasse oder ein Paket importiert wurde, können Sie sich darauf beziehen, indem Sie den Namen der Klasse verwenden. {{ :e2:anweisungen.png?direct&600 |}} {{ :e2:anweisungsblock.png?direct&600 |}} ==== Die IF-ELSE-Verzweigung ==== {{ :e2:ifelse.png?direct&600 |}} Dabei ist Expression ein Wert vom Typ boolean, wie er typischerweise durch einen Vergleich entsteht. Statement ist eine Anweisung. Das kann eine einfache Anweisung oder ein Anweisungsblock sein. ==== Die FOR-Schleife ==== {{ :e2:for-schleife.png?direct&600 |}} • Anfangs werden (Zähl-)Variablen (ggf. definiert und) initialisiert (Init). Solange die Schleifenbedingung (Expr) true ergibt, wird der Schleifenrumpf (Statement) wiederholt ausgeführtAnschließend werden die (Zähl-)Variablen aktualisiert (Update) und der Ausdruck erneut überprüft. Die Aktualisierung bedeutet häufig, das die Zählvariable um 1 erhöht wird (zaehler++) **Die Elemente der grafischen Benutzeroberfläche (GUI).** Unsere Programme sind vorläufig alle aus jFrame abgeleitet, einer speziellen Fensterklasse. Wenn wir ein Programm geschrieben haben, haben wir einen Nachfolger von JFrame erschaffen. Die Methoden von jFrame haben wir nicht benötigt, das macht der JAVA-Editor für uns. Auf diesem JFrame haben wir Objekte platziert, die Instanzen vorgegebener Klassen sind. Im einzelnen: **jLabel**: Instanzen dieses Objekts schreiben einen festen Text an eine Stelle des jFrame. Eigenschaften, insbesondere den Text bearbeitet man mit dem Objektinspektor. Einzig verwendete Methode: setVisible(boolean) kein Rückgabewert **jTextField**: Instanzen dieses Objekts ermöglichen Ein- und Ausgabe von Strings. Eigenschaften wie Größe, Anfangstext, usw. bearbeitet man mit dem Objektinspektor. Verwendete Methoden: |setVisible(boolean)| kein Rückgabewert| |getText() |gibt einen String zurück| |setText(String)|kein Rückgabewert| **jTextArea:** Instanzen dieses Objekts ermöglichen die Ausgabe längerer Texte, die später noch verändert werden können. Verwendete Methoden: |setVisible(boolean)|kein Rückgabewert| |setText(String)|kein Rückgabewert, setzt den ersten Text| |append(String) |kein Rückgabewert, hängt an den bisherigen Text den String an | **jButton:** Instanzen dieses Objekts dienen der Programmablaufsteuerung. Zu jedem Knopf gehört eine Methode, die ausgeführt wird, wenn der Knopf gedrückt wird. Diese Methode wird vom Editor erzeugt und ist zunächst leer. Indem wir dort Programmcode hineinschreiben, erstellen wir bisher unsere Programme. Verwendete Methoden: brauchen wir vorläufig nicht!