Titel   Inhalt   Suchen   Index   API  Go To Java 2, Zweite Auflage, Handbuch der Java-Programmierung
 <<    <     >    >>  Kapitel 4 - Datentypen

4.1 Lexikalische Elemente eines Java-Programms



Bevor wir uns in diesem Kapitel mit den Datentypen von Java befassen, sollen zunächst einmal die wichtigsten lexikalischen Eigenschaften der Sprache vorgestellt werden. Hierzu zählen der Eingabezeichensatz, die Kommentare und die Struktur von Bezeichnern.

4.1.1 Eingabezeichen

Ein Java-Programm besteht aus einer Folge von Unicode-Zeichen. Der Unicode-Zeichensatz faßt eine große Zahl internationaler Zeichensätze zusammen und integriert sie in einem einheitlichen Darstellungsmodell. Da die 256 verfügbaren Zeichen eines 8-Bit-Wortes bei weitem nicht ausreichen, um die über 30.000 unterschiedlichen Zeichen des Unicode-Zeichensatzes darzustellen, ist ein Unicode-Zeichen 2 Byte, also 16 Bit, lang. Der Unicode ist mit den ersten 128 Zeichen des ASCII- und mit den ersten 256 Zeichen des ISO-8859-1-Zeichensatzes kompatibel.

Die Integration des Unicode-Zeichensatzes geht in Java so weit, daß neben String- und char-Typen auch die literalen Symbole und Bezeichner der Programmiersprache im Unicode realisiert sind. Es ist daher ohne weiteres möglich, Variablen- oder Klassennamen mit nationalen Sonderzeichen oder anderen Symbolen zu versehen.

 Hinweis 

4.1.2 Kommentare

Es gibt in Java drei Arten von Kommentaren:

Kommentare derselben Art sind nicht schachtelbar. Ein Java-Compiler akzeptiert aber einen einzeiligen innerhalb eines mehrzeiligen Kommentars und umgekehrt.

Dokumentationskommentare dienen dazu, Programme im Quelltext zu dokumentieren. Mit Hilfe des Tools javadoc werden sie aus der Quelle extrahiert und in ein HTML-Dokument umgewandelt (siehe Kapitel 49). Kapitel 18 der Sprachspezifikation erklärt die Verwendung von Dokumentationskommentaren ausführlich. Wir wollen uns hier lediglich auf ein kleines Beispiel beschränken, das besagter Beschreibung entnommen wurde:

001 /**
002  * Compares two Objects for equality.
003  * Returns a boolean that indicates whether this Object
004  * is equivalent to the specified Object. This method is
005  * used when an Object is stored in a hashtable.
006  * @param  obj     the Object to compare with
007  * @return         true if these Objects are equal;
008  *                 false otherwise.
009  * @see            java.util.Hashtable
010  */
011 public boolean equals(Object obj) 
012 {
013   return (this == obj);
014 }
Listing 4.1: Verwendung eines Dokumentationskommentars im Java-API

Dokumentationskommentare stehen immer vor dem Element, das sie beschreiben sollen. In diesem Fall ist das die Methode equals der Klasse Object. Der erste Satz ist eine Überschrift, dann folgt eine längere Beschreibung der Funktionsweise. Die durch @ eingeleiteten Elemente sind Makros, die eine besondere Bedeutung haben. @param spezifiziert Methodenparameter, @return den Rückgabewert und @see einen Verweis. Daneben gibt es noch die Makros @exception, @version und @author, die hier aber nicht auftauchen.

Weitere Informationen zu javadoc und den anderen Hilfsprogrammen des JDK finden Sie in Kapitel 49.

4.1.3 Bezeichner

Ein Bezeichner ist eine Sequenz von Zeichen, die dazu dient, die Namen von Variablen, Klassen oder Methoden zu spezifizieren. Ein Bezeichner in Java kann beliebig lang sein, und alle Stellen sind signifikant. Bezeichner müssen mit einem Unicode-Buchstaben beginnen (das sind die Zeichen 'A' bis 'Z', 'a' bis 'z', '_' und '$') und dürfen dann weitere Buchstaben oder Ziffern enthalten. Unterstrich und Dollarzeichen sollen nur aus historischen Gründen bzw. bei maschinell generiertem Java-Code verwendet werden.

Ein Buchstabe im Sinne des Unicode-Zeichensatzes muß nicht zwangsläufig aus dem lateinischen Alphabet stammen. Es ist auch zulässig, Buchstaben aus anderen Landessprachen zu verwenden. Java-Programme können daher ohne weiteres Bezeichner enthalten, die nationalen Konventionen folgen. Java-Bezeichner dürfen jedoch nicht mit Schlüsselwörtern, den booleschen Literalen true und false oder dem Literal null kollidieren.

 Warnung 

4.1.4 Weitere Unterschiede zu C

Nachfolgend seien noch einige weitere Unterschiede zu C und C++ aufgelistet, die auf der lexikalischen Ebene von Bedeutung sind:


 Titel   Inhalt   Suchen   Index   API  Go To Java 2, Zweite Auflage, Addison Wesley, Version 2.0
 <<    <     >    >>  © 2000 Guido Krüger, http://www.gkrueger.com