Previous Page TOC Index Next Page See Page

A

Java-Sprachübersicht


von Laura Lemay, Michael Morrison und Billy Barron

Dieser Anhang enthält eine Übersicht über die Sprache Java und dient als Nachschlageteil für dieses Buch.


Das ist keine Übersicht der Syntax oder der Techniken der Sprache. Vielmehr dient der Teil zum Nachschlagen von Informationen zu Themen, die Sie in den Lektionen dieses Buches gelernt haben. Wenn Sie eine technische Beschreibung der Sprache benötigen, besuchen Sie am besten den Java-Web-Site (http://java.sun.com) und laden die Spezifikation herunter (enthält auch die volle BNF-Syntax).

Schlüsselwörter und Symbole sind in serifenloser Schrift angegeben. Argumente und andere zu ersetzende Teile sind kursiv abgesetzt.

Optionen stehen zwischen Klammern (abgesehen vom Array-Abschnitt). Sind mehrere Optionen verfügbar, die sich gegenseitig ausschließen, werden sie durch ein Pipe-Zeichen (|) getrennt, z.B.:

[ public | private | protected ] Typ Varname

Reservierte Wörter

Die folgenden Wörter sind für die Java-Sprache reserviert (die teilweise im derzeitigen Release noch nicht benutzt werden). Sie können diese Wörter nicht für Namen von Klassen, Methoden oder Variablen verwenden.

abstract
do
import
public
try
boolean
double
instanceof
return
void
break
else
int
short
volatile
byte
extends
interface
static
while
case
final
long
super

catch
finally
native
switch

char
float
new
synchronized

class
for
null
this

const
goto
package
throw

continue
if
private
throws

default
implements
protected
transient

Kommentare

/* Das ist ein mehrzeiliger Kommentar */

// Das ist ein einzeiliger Kommentar
/** Das ist ein Javadoc-Kommentar */

Literale

Zahl

Typ int

Zahl [l] | [L]

Typ long

0xhex

Hex Integer

0Xhex

Hex Integer

0octal

Octal Integer

[ Zahl ].Zahl

Typ double

Zahl[ f | f]

Typ float

Zahl[ d | D]

Typ double

[ + | – ] Zahl

Vorzeichen

ZahleZahl

Exponent

ZahlEZahl

Exponent

’einZeichen’

Einzelnes Zeichen

"mehrereZeichen"

Zeichenkette

" "

Leere Zeichenkette

\b

Rückschritt

\t

Tabulator

\n

Zeilenvorschub

\f

Seitenvorschub

\r

Wagenrücklauf

\"

Doppeltes Anführungszeichen

\’

Einfaches Anführungszeichen

\\

Backslash

\uNNNN

Unicode-Zeichenersatz (NNNN ist hex)

true

Boolesch

false

Boolesch

Variablendeklaration

[ byte | short | int | long ] Varname

Ganzzahlen (eine auswählen)

[ float | double ] Varname

Gleitpunktzahlen (einen Typ auswählen)

char Varname;

Zeichen

boolean Varname;

Boolesch

Klassenname Varname;

Klassentypen

Typ Varname, Varname, Varname;

Mehrere Variablen

Die folgenden Optionen sind nur für Klassen- und Instanzvariablen verfügbar und können in einer Variablendeklaration benutzt werden:


[ static ] Variablendeklaration

Klassenvariablen

[ final ] Variablendeklaration

Konstanten

[ public | private | protected ]
Variablendeklaration

Zugriffskontrolle

Variablenzuweisung

Variable = Wert

Zuweisung

Variable++

Postfix-Inkrement

++Variable

Präfix-Inkrement

Variable--

Postfix-Dekrement

--Variable

Präfix-Dekrement

Variable += Wert

Addieren und zuweisen

Variable -= Wert

Subtrahieren und zuweisen

Variable *= Wert

Multiplizieren und zuweisen

Variable ÷= Wert

Dividieren und zuweisen

Variable %= Wert

Modulus und zuweisen

Variable &= Wert

UND und zuweisen

Variable |= Wert

ODER und zuweisen

Variable ^= Wert

XOR und zuweisen

Variable <<= Wert

Nach links verschieben und zuweisen

Variable >>= Wert

Nach rechts verschieben und zuweisen

Variable >>>= Wert

Mit Nullen auffüllen, nach rechts verschieben und zuweisen

Operatoren

Arg + Arg

Addition

Arg – Arg

Subtraktion

Arg * Arg

Multiplikation

Arg ÷ Arg

Division

Arg % Arg

Modulus

Arg < Arg

Kleiner als

Arg > Arg

Größer als

Arg <= Arg

Kleiner als oder gleich

Arg >= Arg

Größer als oder gleich

Arg == Arg

Gleich

Arg != Arg

Nicht gleich

Arg && Arg

Logisches UND

Arg || Arg

Logisches ODER

! Arg

Logisches NICHT

Arg & Arg

UND

Arg | Arg

ODER

Arg ^ Arg

XOR

Arg << Arg

Nach links verschieben

Arg >> Arg

Nach rechts verschieben

Arg >>> Arg

Mit Nullen auffüllen und nach rechts verschieben

~ Arg

Komplement

(Typ)Ausdruck

Umwandlung

Arg instanceof Klasse

Instanz von

Test ? AnweisungFürTrue: AnweisungFürFalse

Ternärer (if) Operator

Objekte

new Klasse();

Neue Instanz erstellen

new Klasse(Arg,Arg,Arg...)

Neue Instanz mit Parametern

new Typ(Arg,Arg,Arg...)

Neue Instanz einer anonymen Klasse

primary.new Typ(Arg,Arg,Arg...)

Neue Instanz einer anonymen Klasse

Objekt.Variable

Instanzvariable

Objekt.Klassenvariable

Klassenvariable

Klasse.Klassenvariable

Klassenvariable

Objekt.Methode()

Instanzmethode (ohne Argumente)

Objekt.Methode(Arg,Arg,Arg...)

Instanzmethode

Objekt.Klassenmethode()

Klassenmethode (ohne Argumente)

Objekt.Klassenmethode(Arg,Arg,Arg...)

Klassenmethode

Klasse.Klassenmethode()

Klassenmethode (ohne Argumente)

Klasse.Klassenmethode(Arg,Arg,Arg...)

Klassenmethode

Arrays


Die Klammern in diesem Abschnitt sind Teil des Arrays bzw. der Zugriffsanweisungen und stehen nicht für Optionen wie in den vorherigen Abschnitten.

Typ Varname[]

Array-Variable

Typ[] Varname

Array-Variable

new Typ[AnzElemente]

Neues Array-Objekt

new Typ[] {Initialisierung}

Neues anonymes Array-Objekt

Array[Index]

Elementzugriff

Array.length

Array-Länge

Schleifen und Bedingungen

if ( Test ) Block

Bedingung

if ( Test ) Block
else Block

Bedingung mit else

switch (Test) {
case Wert : Anweisungen
case Wert : Anweisungen
...
default : Anweisungen
}

switch (nur für int- und char-Typen)

for (Initialisierung; Test; Veränderung )

Block mit for-Schleife

while ( Test ) Block

while-Schleife

do Block
while (Test)

do-Schleife

break [ Marke ]

Bricht eine Schleife oder switch-Anweisung ab

continue [ Marke ]

Setzt die Schleife mit der nächsten Iteration fort

Marke:

Beschriftete Schleife

Klassendefinitionen

class Klassenname Block

Einfache Klassendefinition

Die folgenden optionalen Modifier können in die Klassendefinition eingefügt werden:


[ final ] class Klassenname Block

Klasse kann nicht abgeleitet werden

[ abstract ] class Klassenname Block

Klasse kann nicht instanziert werden

[ public ] class Klassenname Block

Zugriff außerhalb des Pakets möglich

class Klassenname [ extends
Superklasse ] Block

Superklasse ableiten

class Klassenname [ implements Schnittstellen ] Block

Eine oder mehrere Schnittstellen implementieren

Methoden- und Konstruktor-Definitionen

Die Basismethode sieht wie folgt aus, wobei Rückgabetyp ein Typname, ein Klassenname oder void ist:

Rückgabetyp Methodenname() Block

Basismethode

Rückgabetyp Methodenname(Parameter, Parameter, ...) Block

Methode mit Parametern

Methodenparameter sehen so aus:


Typ Parametername


Methodenvariationen können eines der folgenden optionalen Schlüsselwörter enthalten:


[ abstract ] Rückgabetyp MethodenName() Block

Abstrakte Methode

[ static ] Rückgabetyp MethodenName() Block

Klassenmethode

[ native ] Rückgabetyp MethodenName() Block

Native Methode

[ final ] Rückgabetyp MethodenName() Block

final-Methode (Methode kann nicht überschrieben werden)

[ synchronized ] Rückgabetyp MethodenName() Block

Thread-Sperre vor Ausführung

[ public | private | protected ] Rückgabetyp Methodenname()

Zugriffskontrolle

Konstruktoren sehen so aus:


Klassenname() Block

Basis-Konstruktor

Klassenname(Parameter, Parameter, Parameter...) Block

Konstruktor mit Parametern

[ public | private | protected] Klassenname() Block

Zugriffskontrolle

Im Rumpf von Methoden bzw. Konstruktoren können folgende Referenzen und Methoden verwendet werden:


this

Verweist auf das aktuelle Objekt

Klassenname.this

Verweist auf ein bestimmtes inneres Klassenobjekt

super

Verweist auf eine Oberklasse

super.Methodenname()

Ruft die Methode einer Oberklasse auf

this(...)

Ruft den Konstruktor einer Klasse auf

super(...)

Ruft den Konstruktor einer Oberklasse auf

return [ Wert ]

Gibt einen Wert aus

Import

import Paket.Klassenname

Importiert eine spezifische Klasse

import Paket.*

Importiert alle Klassen des Pakets

package Paketname

Die Klassen dieser Datei gehören zu diesem Paket

interface Schnittstellenname

[ extends AndereSchnittstelle ] Block

Erweitert eine bestehende Schnittstelle

[ public ] interface

Schnittstellenname Block

Erzeugt eine öffentliche Schnittstelle

[ abstract ] interface

Schnittstellenname Block

Erzeugt eine abstrakte Schnittstelle

Überwachung

synchronized ( Objekt ) Block

Schützt das Objekt vor dem gleichzeitigen Zugriff durch mehrere Threads

try Block

Geschützte Anweisungen

catch ( Exception ) Block

Wird im Fall von Exception ausgeführt

[ finally Block ]

Wird immer ausgeführt

try Block

[ catch ( Exception ) Block ]

finally Block

Wie im vorherigen Beispiel (kann wahlweise catch oder finally, jedoch nicht beides benutzen)


(c) 1997 SAMS
Ein Imprint des Markt&Technik Buch- und Software- Verlag GmbH
Elektronische Fassung des Titels: Java in 21 Tagen, ISBN: 3-8272-2009-2

Previous Page Page Top TOC Index Next Page See Page