Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Grundgerüst eines Java - Programms : /* Datei A.java */ package ein.package;// optional // beliebig.

Ähnliche Präsentationen


Präsentation zum Thema: "3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Grundgerüst eines Java - Programms : /* Datei A.java */ package ein.package;// optional // beliebig."—  Präsentation transkript:

1 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Grundgerüst eines Java - Programms : /* Datei A.java */ package ein.package;// optional // beliebig viele,import'-Referenzen: import B;// B.class import java.util.Vector; // Vector.class // genau eine,public'-Klasse: public class A { // beliebig viele Elemente von A float a;// Variable a int f() {...}// Methode f() double g() {...}// Methode g() public static void main( String argv[] ) {... } class NurlmPackageNutzbar { int f() {...} /* Ende der Datei A.java */

2 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Kommentare In Java gibt es folgende Kommentartypen: //Zeilenweise Kommentare /*Beginn / Ende Kommentar */ einschließlich \r, \n, \r\n /**Dokumentationskommentar*/ Zeichensätze / Unicode Java benutzt eine sogenannten Unicode mit 16 bit / Zeichen. Damit sind unterschiedliche Zeichen codierbar. Die Java-Umgebung wandelt ASCII oder Latin-1 Dateien beim Einlesen in den Unicode um. Die allgemeine Darstellung des Unicodes lautet: \udddd// d = hexadezimalziffer

3 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Ziffern in Unicode (Auszug) Unicode Beschreibung \u \u0039 ISO-Latin-1 (und ASCII)-Ziffern \u \u0669 Arabisch-IndischeZiffern \u06f0 - \u06f9 Ost-Arabisch-Indische Ziffern \u \u096f DewanagarischeZiffern \u09e6 - \u09ef BengalischeZiffern \u0a66 - \u0a6f Gurmukhi-Ziffern \u0ae6 - \u0aef Gujarati-Ziffern \u0b66 - \u0b6f Oriya-Ziffern.... Buchstaben und Ziffern in Unicode (Auszug) Unicode Beschreibung \u \u005AISO-Latin-I (+ ASCII) lateinische Großbuchstaben (,A'-'Z') \u \u007A ISO-Latin-1(und ASCII) lateinische Kleinbuchstaben (,a'-'z') \u00C0 - \u00D6ISO-Latin-l, ergänzende Buchstaben \u00D8 - \u00F6ISO-Latin-1, ergänzende Buchstaben \u00F8 - \u00FFISO-Latin-1, ergänzende Buchstaben \u \u1FFFLatin Erweiterung-A, Latin Erweiterung-B,.....

4 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Die Klasse Character beinhaltet einige Methoden zur Überprüfung, ob es sich um ein Zeichen oder eine Ziffer handelt: Character.isJavaLetter() = true, wenn Zeichen Unicode–Buchstabe Character.isJavaLetterOrDigit() = true, wenn Zeichen ein Buchstabe oder Ziffer ist Namenskonventionen Folgende Konventionen sollten bei Bezeichnern eingehalten werden: Klassen- / Schnittstellename beginnen mit Großbuchstaben Methoden- / Variablennamen beginnen mit Kleinbuchstaben Packagenamen werden klein geschrieben Konstanten alles groß Unterstriche nur für mehrteilige Konstanten Zugriffsmethoden set(X) get(X)

5 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Beispiel: package DE.fh-merseburg.de.informatik.javaclasses; import java.util.Date; class EineKlasseMitEinemLangenNamen { String s; double radius; double nochEinDouble; final int MAX_VALUE = 2001; double eineDoubleMethode()... int eineIntMethode()... void setRadius( double d )... double getRadius()... }

6 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Literale Literale sind Quelltextdarstellung des Wertes eines primitiven Datentyps, eines Strings oder das NULL Symbol. Außer der Darstellung der Unicode Zeichen (\uxxxx) ergeben sich bei Literalen in Java keine Abweichungen zur C-Schreibweise. Schlüsselworte abstractdoubleintstatic booleanelseinterfacesuper breakextendslongswitch bytefinalnativesynchronized casefinallynewthis catchfloatnullthrow charforpackagethrows dassgoto*privatetransient* const*ifprotectedtry continueimplementspublicvoid defaultimportreturnvolatile doinstanceofshortwhile

7 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 In Java werden folgende Arten von Datentypen unterschieden: Elementare Datentypen Felder Klassen Referenztypen Schnittstellen Elementare Datentypen boolean für logische Werte, char für Zeichen, Integertypen byte, short, int, long Fließkommatypen float, double. In Java werden folgende Arten von Datentypen unterschieden: Elementare Datentypen Felder Klassen Referenztypen Schnittstellen Elementare Datentypen boolean für logische Werte, char für Zeichen, Integertypen byte, short, int, long Fließkommatypen float, double. }

8 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Zugriffe auf eine Variable eines elementaren Typs liefern oder setzen immer direkt den Wert dieser Variable. Es sind keine Pointer auf Variable eines elementaren Datentyps möglich. Ebenso kann die Adresse dieser Variablen nicht ermittelt werden. Die Übergabe eines elementaren Datentyps als Argument an eine Methode erfolgt immer by-value durch Kopieren des Wertes. Referenztypen stehen für Objekte, auf die über einen Pointer (eine Referenz) zugegriffen wird. Pointer werden von Java automatisch verwaltet und können nicht modifiziert werden.

9 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Wertebereiche, Defaultwerte und der benötigte Speicherplatz: TypWertebereichDefaultGröße byte bit short l6 bit int bit long L64 bit char\u \uFFFF\u0000l6 bit boolean false, truefalse 1 bit float E+380.0F32 bit double+- l.79769E D64 bit

10 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Berechnungsgrundsätze: Der Operand des kleineren Typs wird automatisch und ohne Informationsverlust in den benötigten größeren Typ konvertiert, bevor die Operation ausgeführt wird. Eine Zuweisung an den Typ byte oder short muß immer mit einer expliziten Typkonvertierung geschrieben werden: byte b1, b2 = 42, b3 = 69; int i = , i2 = 0xfedcba98; long k = L,k2 = 0x L; i = b2 + b3;//ok. b1 =b2 + b3;//Fehler! b1 = (byte)(b2 + b3);//ok. b3 = (byte) k2; // ok, liefert 0x42

11 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Casting Die Typkonventierung (,,Casting") erfolgt wie in C/C++ mit: (Datentyp) Ausdruck Die Umwandlung eines kleineren in einen größeren Typ wird vom Compiler bei Bedarf automatisch in der Reihenfolge (von links nach rechts) byte short int long float double char int long float double vorgenommen. Bei Konvertierung eines größeren Typs in einen kleineren Typ (etwa von long nach int oder von short nach byte) werden nur die passenden unteren Bits kopiert und die höherwertigen Bits abgeschnitten. Diese Konvertierungen werden deshalb niemals von Java automatisch vorgenommen, sondern müssen immer mit einem Cast ausdrücklich angefordert werden.

12 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Der Typ char char repräsentiert Unicode-Zeichen, die als vorzeichenloser 16 bit Wert gespeichert werden. Die Zeichenliterale werden in einfache Anführungszeichen geschrieben: char c1, c2, c_a, c_b, c_A; c_a = ´a´; c_b = ´b´; c_A = ´A´; c1 = ´\n´; c2 = ´\u4321´; Bei Unicode-Zeichen im Bereich unter 255, (ASCII bzw. Latin-l Zeichen) gibt es keine Unterschiede zu char in aus C. Einige Zeichen können auch über die ESC – Sequenzen erreicht werden.

13 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Sequenz Bedeutung \nZeilenvorschub (engl. new line) (\u000A) LF \tTabulator (\u0009)HT \b Backspace (\u0008) BS \r(Wagen-)Rücklauf (engl. return) (\u000D) CR \fSeitenvorschub (engl. form feed) (\u000C) FF \\der inverse Schrägstrich (engl. backslash) selbst (\u005C) \Apostroph (engl. single quote) (\u0027) \Anführungsstriche oben (engl. double quote) (\u0022) \dddein durch seinen oktalen Wert angegebenes Zeichen, \uddddein Unicode-Zeichen, wobei jedes d eine hexadezimale Ziffer ist Alle für Integertypen zulässigen Operationen können auch mit char durchgeführt werden. Die Zuweisung von char zu einem short oder byte – Typ per Typkonvertierung erfolgt durch Kopieren der Bits, wobei aus einem (zwingend positiven) char negative Werte entstehen können.

14 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Methoden beratenKunde()... abhebenGeld(aBetrag) if aBetrag<>0 then send Konto abbuchen... send Kassenautomat... else... vereinbarenTermin().... class Bankangestellter DatenGehalt:Name:Alter:Termine: DatenGehalt:Name:Alter:Termine: Methoden beratenKunde()... abhebenGeld(aBetrag) if aBetrag<>0 then send Konto abbuchen... send Kassenautomat... else... vereinbarenTermin().... class Bankangestellter DatenGehalt:Name:Alter:Termine: DatenGehalt:Name:Alter:Termine: Der Typ boolean Boolean wird zur Darstellung der logischen Werte mit den Literalen false und true verwendet. Um den Mißbrauch von Integerwerten für logische Werte zu verhindern, verbietet Java Typumwandlungen zwischen den Integertypen und dem Typ boolean.

15 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Die Fließkommatypen float und double Die Fließkommatypen float und double entsprechen dem Standard IEEE-754 für Gleitkommaarithmetik. Eine float-Variable wird intern mit 32 bit gespeichert und in der Forrn s * m * 2 e dargestellt, mit der folgenden Bedeutung s: Vorzeichen +-, m: Mantisse - ein positiver Integerwert < 2 24 e: Exponent - Integerwert zwischen einschließlich und 104. Dies entspricht etwa dem Bereich von mit einer Genauigkeit von 6 bis 7 Dezimalstellen.

16 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Eine double-Variable wird in 64 bit gespeichert, wobei die Mantisse kleiner als 2 53 ist und der Exponent zwischen und liegt. Darstellbare double Werte liegen im Bereich von etwa * mit einer Genauigkeit von etwa 15 Dezimalstellen. Die Schreibweise von Fließkommazahlen entspricht den auch in C/C++ üblichen Konventionen. Literale des Typs float müssen mit einem angehängten ´F´ gekennzeichnet werden (ansonsten double-Werte). Der genaue Wert der Zahlenbereiche kann über Konstanten der Klassen java.Float bzw. java.Double (Achtung Grossschreibung) ermittelt werden. Das Resultat einer arithmetischen Operation ist nur dann vom Typ float, wenn beide Operanden vom Typ float sind oder ein Operand float und der andere Operand ein Integerwert (außer long) ist.

17 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Fließkommaoperationen lösen in Java keine Fehlerbedingungen aus (auch nicht die Division durch Null). Falls ein Überlauf entsteht, wird dem Resultat der spezielle Wert,,unendlich" zugewiesen: /* Werte für +/- unendlich: Float.POSITIVE_INFINITY; Float.NEGATIVE_INFINITY Double.POSITIVE_INFINITY Double.NEGATIVE_INFINITY */ float f = Float.MAX_VALUE; float g = Float.POSITIVE_INFINITY; if (f == g)...// false! Das Ergebnis von undefinierten Operationen, z.B. beim Aufruf von Math.sqrt(-1), ist der Wert Double.NaN (,,Not-a-Number") bzw. Float.NaN.

18 3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Konstanten Alle Variablen der elementaren Typen können durch das Attribut final als Konstanten markiert werden. Sehr häufig werden final-Variablen gleichzeitig als static definiert. Eine final-Variable muss natürlich sofort bei ihrer Deklaration initialisiert werden, da der Wert später nicht mehr geändert werden kann: final charMAX_VALUE = ´\uffff´; static final double PI = ; final static int MIN_PRIORITY = 1; final static int MAX_PRIORITY = 10;


Herunterladen ppt "3 Sprachelemente und Anweisungen JavaHS Merseburg WS 06/07 Grundgerüst eines Java - Programms : /* Datei A.java */ package ein.package;// optional // beliebig."

Ähnliche Präsentationen


Google-Anzeigen