Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Exceptions
7 Generics<T>
8 Äußere.innere Klassen
9 Besondere Klassen der Java SE
10 Architektur, Design und angewandte Objektorientierung
11 Die Klassenbibliothek
12 Bits und Bytes und Mathematisches
13 Datenstrukturen und Algorithmen
14 Threads und nebenläufige Programmierung
15 Raum und Zeit
16 Dateien, Verzeichnisse und Dateizugriffe
17 Datenströme
18 Die eXtensible Markup Language (XML)
19 Grafische Oberflächen mit Swing
20 Grafikprogrammierung
21 Netzwerkprogrammierung
22 Verteilte Programmierung mit RMI
23 JavaServer Pages und Servlets
24 Datenbankmanagement mit JDBC
25 Reflection und Annotationen
26 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Java ist auch eine Insel von Christian Ullenboom
Das umfassende Handbuch
Buch: Java ist auch eine Insel

Java ist auch eine Insel
geb., mit DVD
1482 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1506-0
Pfeil 2 Sprachbeschreibung
  Pfeil 2.1 Elemente der Programmiersprache Java
    Pfeil 2.1.1 Token
    Pfeil 2.1.2 Textkodierung durch Unicode-Zeichen
    Pfeil 2.1.3 Literale
    Pfeil 2.1.4 Bezeichner
    Pfeil 2.1.5 Reservierte Schlüsselwörter
    Pfeil 2.1.6 Zusammenfassung der lexikalischen Analyse
    Pfeil 2.1.7 Kommentare
  Pfeil 2.2 Anweisungen formen Programme
    Pfeil 2.2.1 Was sind Anweisungen?
    Pfeil 2.2.2 Klassendeklaration
    Pfeil 2.2.3 Die Reise beginnt am main()
    Pfeil 2.2.4 Der erste Methodenaufruf: println()
    Pfeil 2.2.5 Atomare Anweisungen und Anweisungssequenzen
    Pfeil 2.2.6 Mehr zu print(), println() und printf() für Bildschirmausgaben
    Pfeil 2.2.7 Die API-Dokumentation
    Pfeil 2.2.8 Ausdrucksanweisung
    Pfeil 2.2.9 Erste Idee der Objektorientierung
    Pfeil 2.2.10 Modifizierer
  Pfeil 2.3 Datentypen, Typisierung, Variablen und Zuweisungen
    Pfeil 2.3.1 Primitive Datentypen im Überblick
    Pfeil 2.3.2 Variablendeklarationen
    Pfeil 2.3.3 Variablendeklaration mit Wertinitialisierung
    Pfeil 2.3.4 Zuweisungsoperator
    Pfeil 2.3.5 Wahrheitswerte
    Pfeil 2.3.6 Ganzzahlige Datentypen und Literale
    Pfeil 2.3.7 Das binäre (Basis 2), oktale (Basis 8), hexadezimale (Basis 16) Stellenwertsystem *
    Pfeil 2.3.8 Die Fließkommazahlen »float« und »double«
    Pfeil 2.3.9 Alphanumerische Zeichen
    Pfeil 2.3.10 Gute Namen, schlechte Namen
  Pfeil 2.4 Blöcke, Initialisierung und Sichtbarkeit
    Pfeil 2.4.1 Gruppieren von Anweisungen mit Blöcken
    Pfeil 2.4.2 Initialisierung von lokalen Variablen
    Pfeil 2.4.3 Sichtbarkeit und Gültigkeitsbereich
  Pfeil 2.5 Ausdrücke, Operanden und Operatoren
    Pfeil 2.5.1 Ausdrücke
    Pfeil 2.5.2 Arithmetische Operatoren
    Pfeil 2.5.3 Unäres Minus und Plus
    Pfeil 2.5.4 Zuweisung mit Operation
    Pfeil 2.5.5 Präfix- oder Postfix-Inkrement und -Dekrement
    Pfeil 2.5.6 Die relationalen Operatoren und die Gleichheitsoperatoren
    Pfeil 2.5.7 Logische Operatoren: Nicht, Und,Oder, Xor
    Pfeil 2.5.8 Der Rang der Operatoren in der Auswertungsreihenfolge
    Pfeil 2.5.9 Die Typanpassung (das Casting)
    Pfeil 2.5.10 Überladenes Plus für Strings
    Pfeil 2.5.11 Operator vermisst *
  Pfeil 2.6 Bedingte Anweisungen oder Fallunterscheidungen
    Pfeil 2.6.1 Die if-Anweisung
    Pfeil 2.6.2 Die Alternative mit einer if-else-Anweisung wählen
    Pfeil 2.6.3 Der Bedingungsoperator
    Pfeil 2.6.4 Die switch-Anweisung bietet die Alternative
  Pfeil 2.7 Schleifen
    Pfeil 2.7.1 Die while-Schleife
    Pfeil 2.7.2 Die do-while-Schleife
    Pfeil 2.7.3 Die for-Schleife
    Pfeil 2.7.4 Schleifenbedingungen und Vergleiche mit ==
    Pfeil 2.7.5 Ausbruch planen mit break und Wiedereinstieg mit »continue«
    Pfeil 2.7.6 »break« und »continue« mit Marken *
  Pfeil 2.8 Methoden einer Klasse
    Pfeil 2.8.1 Bestandteil einer Methode
    Pfeil 2.8.2 Signatur-Beschreibung in der Java-API
    Pfeil 2.8.3 Aufruf einer Methode
    Pfeil 2.8.4 Methoden ohne Parameter deklarieren
    Pfeil 2.8.5 Statische Methoden (Klassenmethoden)
    Pfeil 2.8.6 Parameter, Argument und Wertübergabe
    Pfeil 2.8.7 Methoden vorzeitig mit return beenden
    Pfeil 2.8.8 Nicht erreichbarer Quellcode bei Methoden
    Pfeil 2.8.9 Rückgabewerte
    Pfeil 2.8.10 Methoden überladen
    Pfeil 2.8.11 Vorgegebener Wert für nicht aufgeführte Argumente *
    Pfeil 2.8.12 Finale lokale Variablen
    Pfeil 2.8.13 Rekursive Methoden *
    Pfeil 2.8.14 Die Türme von Hanoi *
  Pfeil 2.9 Zum Weiterlesen


Rheinwerk Computing - Zum Seitenanfang

2.2 Anweisungen formen Programme  Zur nächsten ÜberschriftZur vorigen Überschrift


Rheinwerk Computing - Zum Seitenanfang

2.2.1 Was sind Anweisungen?  Zur nächsten ÜberschriftZur vorigen Überschrift

Java zählt zu den imperativen Programmiersprachen, in denen der Programmierer die Abarbeitungsschritte seiner Algorithmen durch Anweisungen (engl. statements) vorgibt. Anweisungen können unter anderem sein:

  • Ausdrucksanweisungen, etwa für Zuweisungen oder Methodenaufrufe
  • Fallunterscheidungen, zum Beispiel mit if
  • Schleifen für Wiederholungen, etwa mit for oder do-while

Hinweis Diese Befehlsform ist für Programmiersprachen gar nicht selbstverständlich, da es Sprachen gibt, die zu einer Problembeschreibung selbstständig eine Lösung finden. Ein Vertreter dieser Art Sprachen ist Prolog. Die Schwierigkeit hierbei besteht darin, die Aufgabe so präzise zu beschreiben, dass das System eine Lösung finden kann. Auch die Datenbanksprache SQL ist keine imperative Programmiersprache, denn wie das Datenbankmanagement-System zu unserer Abfrage die Ergebnisse ermittelt, müssen und können wir weder vorgeben noch sehen.



Rheinwerk Computing - Zum Seitenanfang

2.2.2 Klassendeklaration  Zur nächsten ÜberschriftZur vorigen Überschrift

Programme setzen sich aus Anweisungen zusammen. In Java können jedoch nicht einfach Anweisungen in eine Datei geschrieben und dem Compiler übergeben werden. Sie müssen zunächst in einen Rahmen gepackt werden. Dieser Rahmen heißt Kompilationseinheit (Compilation Unit) und deklariert eine Klasse mit ihren Methoden und Variablen.

Die nächsten Programmcodezeilen werden am Anfang etwas befremdlich wirken (wir erklären die Elemente später genauer). Die folgende Datei erhält den (frei wählbaren) Namen Application.java:

Listing 2.1  Application.java

public class Application
{
  public static void main( String[] args )
  {
    // Hier ist der Anfang unserer Programme
    // Jetzt ist hier Platz für unsere eigenen Anweisungen
    // Hier enden unsere Programme
  }
}

Hinter den beiden Schrägstrichen // befindet sich ein Kommentar. Er gilt bis zum Ende der Zeile und dient dazu, Erläuterungen zu den Quellcodezeilen hinzuzufügen, die den Code verständlicher machen.

Eclipse
Eclipse zeigt Schlüsselwörter, Literale und Kommentare farbig an. Diese Farbgebung lässt sich unter WindowPreferences ändern.

Java ist eine objektorientierte Programmiersprache, die Programmlogik außerhalb von Klassen nicht erlaubt. Aus diesem Grund deklariert die Datei »Application.java« mit dem Schlüsselwort class eine Klasse Application, um später eine Methode mit der Programmlogik anzugeben. Der Klassenname darf grundsätzlich beliebig sein, doch besteht die Einschränkung, dass in einer mit public deklarierten Klasse der Klassenname so lauten muss wie der Dateiname. Alle Schlüsselwörter in Java beginnen mit Kleinbuchstaben, und Klassennamen beginnen üblicherweise mit Großbuchstaben.

In den geschweiften Klammern der Klasse folgen Deklarationen von Methoden, also Unterprogrammen, die eine Klasse anbietet. Eine Methode ist eine Sammlung von Anweisungen unter einem Namen.


Rheinwerk Computing - Zum Seitenanfang

2.2.3 Die Reise beginnt am main()  Zur nächsten ÜberschriftZur vorigen Überschrift

Wir programmieren hier eine besondere Methode, die sich main() nennt. Die Schlüsselwörter davor und die Angabe in dem Paar runder Klammern hinter dem Namen müssen wir einhalten. Die Methode main() ist für die Laufzeitumgebung etwas ganz Besonderes, denn beim Aufruf des Java-Interpreters mit einem Klassennamen wird unsere Methode als Erstes ausgeführt. [Na ja, so ganz präzise ist das auch nicht. In einem static-Block könnten wir auch einen Funktionsaufruf setzen, doch das wollen wir hier einmal nicht annehmen. static-Blöcke werden beim Laden der Klassen in die virtuelle Maschine ausgeführt. Andere Initialisierungen sind dann auch schon gemacht. ] Demnach werden genau die Anweisungen ausgeführt, die innerhalb der geschweiften Klammern stehen. Halten wir uns fälschlicherweise nicht an die Syntax für den Startpunkt, so kann der Interpreter die Ausführung nicht beginnen, und wir haben einen semantischen Fehler produziert, obwohl die Methode selbst korrekt gebildet ist. Innerhalb von main() befindet sich ein Parameter mit dem Namen args. Der Name ist willkürlich gewählt, wir werden allerdings immer args verwenden.

Eclipse
Eclipse gibt im Falle eines Fehlers sehr viele Hinweise. Im folgenden Beispiel fehlt die schließende Klammer. Ein Fehler im Quellcode wird von Eclipse mit einer gekringelten roten Linie angezeigt. Als weiterer Indikator wird (unter Umständen erst beim Speichern) ein kleines rundes Kreuz an der Fehlerzeile angezeigt. Gleichzeitig findet sich im Schieberegler ein kleiner roter Block. Im Package Explorer findet sich ebenfalls ein Hinweis auf Fehler.


Rheinwerk Computing - Zum Seitenanfang

2.2.4 Der erste Methodenaufruf: println()  Zur nächsten ÜberschriftZur vorigen Überschrift

In Java gibt es eine große Klassenbibliothek, die es Entwicklern erlaubt, Dateien anzulegen, Fenster zu öffnen, auf Datenbanken zuzugreifen, Web-Services aufzurufen und vieles mehr. Am untersten Ende der Klassenbibliothek stehen Methoden, die eine gewünschte Operation ausführen.

Eine einfache Methode ist println(). Sie gibt Meldungen auf dem Bildschirm (der Konsole) aus. Innerhalb der Klammern von println() können wir Argumente angeben. Die println()-Methode erlaubt zum Beispiel Zeichenketten (ein anderes Wort ist String) als Argumente, die dann auf der Konsole erscheinen. Ein String ist eine Folge von Buchstaben, Ziffern oder Sonderzeichen in doppelten Anführungszeichen.

Implementieren [»Implementieren« stammt vom lateinischen Wort »implere« ab, was für »erfüllen« und »ergänzen« steht. ] wir damit eine vollständige Java-Klasse mit einem Methodenaufruf, die über println() etwas auf dem Bildschirm ausgibt:

Listing 2.2  Application.java

class Application
{
  public static void main( String[] args )
  {
    // Start des Programms

    System.out.println( "Hallo Javanesen" );

    // Ende des Programms
  }
}

Hinweis Der Begriff »Methode« ist die korrekte Bezeichnung für ein Unterprogramm in Java – die Java Language Specification (JLS) verwendet den Begriff »Funktion« nicht.



Rheinwerk Computing - Zum Seitenanfang

2.2.5 Atomare Anweisungen und Anweisungssequenzen  Zur nächsten ÜberschriftZur vorigen Überschrift

Methodenaufrufe wie System.out.println(), die leere Anweisung, die nur aus einem Semikolon besteht, oder auch Variablendeklarationen (die später vorgestellt werden) nennen sich atomare (auch elementare) Anweisungen. Diese unteilbaren Anweisungen werden zu Anweisungssequenzen zusammengesetzt, die Programme bilden.


Beispiel Eine Anweisungssequenz:

System.out.println( "Wer morgens total zerknittert aufsteht, " );
System.out.println( "hat am Tag die besten Entfaltungsmöglichkeiten." );
;
System.out.println();
;

Leere Anweisungen (also die Zeilen mit dem Semikolon) gibt es im Allgemeinen nur bei Endloswiederholungen.


Die Laufzeitumgebung von Java führt jede einzelne Anweisung der Sequenz in der angegebenen Reihenfolge hintereinander aus. Anweisungen und Anweisungssequenzen dürfen nicht irgendwo stehen, sondern nur an bestimmen Stellen, etwa innerhalb eines Methodenkörpers.


Rheinwerk Computing - Zum Seitenanfang

2.2.6 Mehr zu print(), println() und printf() für Bildschirmausgaben  Zur nächsten ÜberschriftZur vorigen Überschrift

Die meisten Methoden verraten durch ihren Namen, was sie leisten, und für eigene Programme ist es sinnvoll, aussagekräftige Namen zu verwenden. Wenn die Java-Entwickler die Ausgabemethode statt println() einfach glubschi() genannt hätten, bliebe uns der Sinn der Methode verborgen. println() zeigt jedoch durch den Wortstamm »print« an, dass etwas geschrieben wird. Die Endung ln (kurz für line) bedeutet, dass noch ein Zeilenvorschubzeichen ausgegeben wird. Umgangssprachlich heißt das: Eine neue Ausgabe beginnt in der nächsten Zeile. Neben println() existiert die Bibliotheksmethode print(), die keinen Zeilenvorschub anhängt.

Die printXXX()-Methoden [Abkürzung für Methoden, die mit print beginnen, also print() und println(). ] können in Klammern unterschiedliche Argumente bekommen. Ein Argument ist ein Wert, den wir der Methode beim Aufruf mitgeben. Auch wenn wir einer Methode keine Argumente übergeben, muss beim Aufruf hinter dem Methodennamen ein Klammernpaar folgen. Dies ist konsequent, da wir so wissen, dass es sich um einen Methodenaufruf handelt und um nichts anderes. Andernfalls führt es zu Verwechslungen mit Variablen.

Überladene Methoden

Java erlaubt Methoden, die gleich heißen, denen aber unterschiedliche Dinge übergeben werden können; diese Methoden nennen wir überladen. Die printXXX()-Methoden sind zum Beispiel überladen und akzeptieren neben dem Argumenttyp String auch Typen wie einzelne Zeichen, Wahrheitswerte oder Zahlen – oder auch gar nichts:

Listing 2.3  OverloadedPrintln.java

public class OverloadedPrintln
{
  public static void main( String[] args )
  {
    System.out.println( "Verhaften Sie die üblichen Verdächtigen!" );
    System.out.println( true );
    System.out.println( –273 );
    System.out.println();                // Gibt eine Leerzeile aus
    System.out.println( 1.6180339887498948 );
  }
}

Die Ausgabe ist:

Verhaften Sie die üblichen Verdächtigen!
true
–273

1.618033988749895

In der letzten Zeile ist gut zu sehen, dass es Probleme mit der Genauigkeit gibt – dieses Phänomen werden wir uns noch genauer anschauen.

Eclipse
Ist in Eclipse eine andere Ansicht aktiviert, etwa indem wir auf das Konsolenfenster klicken, bringt die Taste F12 uns wieder in den Editor zurück.

Variable Argumentlisten

Java unterstützt seit der Version 5 variable Argumentlisten, was bedeutet, dass es möglich ist, bestimmten Methoden beliebig viele Argumente (oder auch kein Argument) zu übergeben. Die Methode printf() erlaubt zum Beispiel variable Argumentlisten, um gemäß einer Formatierungsanweisung – einem String, der immer als erstes Argument übergeben werden muss – die nachfolgenden Methodenargumente aufzubereiten und auszugeben:

Listing 2.4  VarArgs.java

public class VarArgs
{
  public static void main( String[] args )
  {
    System.out.printf( "Was sagst du?%n" );
    System.out.printf( "%d Kanäle und überall nur %s.%n", 220, "Katzen" );
  }
}

Die Ausgabe der Anweisung ist:

Was sagst du?
220 Kanäle und überall nur Katzen.

Die Formatierungsanweisung %n setzt einen Zeilenumbruch, %d ist ein Platzhalter für eine Dezimalzahl und %s ein Platzhalter für eine Zeichenkette, oder etwas, was in einen String konvertiert werden soll. Weitere Platzhalter werden in Abschnitt 4.10, »Ausgaben formatieren«, vorgestellt.


Rheinwerk Computing - Zum Seitenanfang

2.2.7 Die API-Dokumentation  Zur nächsten ÜberschriftZur vorigen Überschrift

Die wichtigste Informationsquelle für Programmierer ist die offizielle API-Dokumentation von Oracle. Zu der Methode println() können wir bei der Klasse PrintStream zum Beispiel erfahren, dass diese eine Ganzzahl, eine Fließkommazahl, einen Wahrheitswert, ein Zeichen oder aber eine Zeichenkette akzeptiert. Die Dokumentation ist weder Teil vom JRE noch vom JDK – dafür ist die Hilfe zu groß. Wer über eine permanente Internetverbindung verfügt, kann die Dokumentation online unter http://tutego.de/go/javaapi lesen oder sie extra von der Oracle-Seite http://www.oracle.com/technetwork/java/javase/downloads/ herunterladen und als Sammlung von HTML-Dokumenten auspacken.

Abbildung 2.2  Eclipse zeigt mithilfe der Tasten Shift + F2 in einem eingebetteten Browser-Fenster die API-Dokumentation an, wobei die JavaDoc von den Oracle-Seiten kommt. Mithilfe der F2-Taste bekommen wir ein kleines gelbes Vorschaufenster, ebenfalls mit der API-Dokumentation.

API-Dokumentation im HTML-Help-Format *

Die Oracle-Dokumentation als Loseblattsammlung hat einen Nachteil, der sich im Programmieralltag bemerkbar macht: Sie lässt sich nur ungenügend durchsuchen. Da die Webseiten statisch sind, lässt sich nicht einfach nach Methoden forschen, die zum Beispiel auf »listener« enden. Franck Allimant (http://tutego.de/go/allimant) übersetzt regelmäßig die HTML-Dokumentation von Oracle in das Format Windows HTML-Help (CHM-Dateien), das auch unter Unix und Mac OS X mit der Open-Source-Software http://xchm.sourceforge.net/ gelesen werden kann. Neben den komprimierten Hilfe-Dateien lassen sich auch die Sprach- und JVM-Spezifikation sowie die API-Dokumentation der Enterprise Edition und der Servlets im Speziellen beziehen.

Abbildung 2.3  API-Dokumentation mit der Windows-Hilfe


Rheinwerk Computing - Zum Seitenanfang

2.2.8 Ausdrucksanweisung  Zur nächsten ÜberschriftZur vorigen Überschrift

Wird ein Ausdruck mit einem Semikolon zu einer Anweisung, so nennen wir das Ausdrucksanweisung (engl. expression statement). Neben Methodenaufrufen gibt es andere Formen von Ausdrucksanweisungen, wie etwa Zuweisungen. Doch allen ist gemeinsam, dass sie mit einem Semikolon abgeschlossen werden. [Das Semikolon dient auch nicht wie in Pascal zur Trennung von Anweisungen, sondern schließt sie immer ab. ]


Hinweis Nicht jeder Ausdruck kann eine Ausdrucksanweisung sein. In JavaScript ist im Quellcode einfach 3+4; erlaubt, in Java nicht.


Es lassen sich auch Methoden in dieser Form anwenden, die selbst ein Ausdruck sind und ein Ergebnis zurückgeben, beispielsweise eine Sinus-Methode. Wird mit dem Ergebnis nichts gemacht, wird der Rückgabewert verworfen. Im Fall der Sinus-Methode ist das nicht sinnvoll, denn sie macht außer der Berechnung nichts anderes.

System.out.println( Math.sin(0.528740) ); // Methodenaufruf sin() als Ausdruck

Etwas wackelig ist der Begriff Ausdrucksanweisung bei Methoden, die keine Rückgabe liefern. println() ist so eine Methode. Sie gibt nichts zurück (void) und ist daher auch kein Ausdruck. Daher führt Folgendes zu einem Compilerfehler:

System.out.println( System.out.println() );    // Fehler Compilerfehler!

Rheinwerk Computing - Zum Seitenanfang

2.2.9 Erste Idee der Objektorientierung  Zur nächsten ÜberschriftZur vorigen Überschrift

In einer objektorientierten Programmiersprache sind alle Methoden an bestimmte Objekte gebunden (daher der Begriff objektorientiert). Betrachten wir zum Beispiel das Objekt Radio: Ein Radio spielt Musik ab, wenn der Einschalter betätigt wird und ein Sender und die Lautstärke eingestellt sind. Ein Radio bietet also bestimmte Dienste (Operationen) an, wie Musik an/aus, lauter/leiser. Zusätzlich hat ein Objekt auch noch einen Zustand, zum Beispiel die Lautstärke oder das Baujahr. Wichtig in objektorientierten Sprachen ist, dass die Operationen und Zustände immer (und da gibt es keine Ausnahmen) an Objekte beziehungsweise Klassen gebunden sind (mehr zu dieser Unterscheidung folgt später). Der Aufruf einer Methode auf einem Objekt richtet die Anfrage genau an ein bestimmtes Objekt. Steht in einem Java-Programm nur die Anweisung lauter, so weiß der Compiler nicht, wen er fragen soll, wenn es etwa drei Radio-Objekte gibt. Was ist, wenn es auch einen Fernseher mit der gleichen Operation gibt? Aus diesem Grund verbinden wir das Objekt, das etwas kann, mit der Operation. Ein Punkt trennt das Objekt von der Operation oder dem Zustand. So gehört println() zu einem Objekt out, das die Bildschirmausgabe übernimmt. Dieses Objekt out wiederum gehört zu der Klasse System.

System.out und System.err

Das Laufzeitsystem bietet uns zwei Ausgabekanäle: einen für normale Ausgaben und einen, in den wir Fehler leiten können. Der Vorteil ist, dass über diese Unterteilung die Fehler von der herkömmlichen Ausgabe getrennt werden können. Standardausgaben wandern in System.out, und Fehlerausgaben werden in System.err weitergeleitet. out und err sind vom gleichen Typ, sodass die printXXX()-Methoden bei beiden gleich sind:

System.out.println( "Das ist eine normale Ausgabe" );
System.err.println( "Das ist eine Fehlerausgabe" );

Die Objektorientierung wird hierbei noch einmal besonders deutlich. Das out- und das err-Objekt sind zwei Objekte, die das Gleiche können, nämlich mit println() etwas auszugeben. Doch ist es nicht möglich, ohne explizite Objektangabe die Methode println() in den Raum zu rufen und von der Laufzeitumgebung zu erwarten, dass diese weiß, ob die Anfrage an System.out oder an System.err geht.

Abbildung 2.4  Eclipse stellt normale Ausgaben schwarz und Fehlerausgaben rot dar. Damit ist es leicht, zu erkennen, welche Ausgabe in welchen Kanal geschickt wurde.


Rheinwerk Computing - Zum Seitenanfang

2.2.10 Modifizierer  topZur vorigen Überschrift

Die Deklaration einer Klasse oder Methode kann einen oder mehrere Modifizierer (engl. modifier) enthalten, die zum Beispiel die Nutzung einschränken oder parallelen Zugriff synchronisieren.


Beispiel Im folgenden Programm kommen drei Modifizierer vor, die fett und unterstrichen sind:

public class Application
{
  public static void main( String[] args )
  {
    System.out.println( "Hallo Welt" );
  }
}

Der Modifizierer public ist ein Sichtbarkeitsmodifizierer. Er bestimmt, ob die Klasse beziehungsweise die Methode für andere sichtbar ist oder nicht. Der Modifizierer static zwingt den Programmierer nicht dazu, vor dem Methodenaufruf ein Objekt der Klasse zu bilden. Anders gesagt, die Eigenschaft, ob sich eine Methode nur über ein konkretes Objekt aufrufen lässt oder eine Eigenschaft der Klasse ist, sodass für den Aufruf kein Objekt der Klasse nötig wird, bestimmt dieser Modifizierer. Wir arbeiten in den ersten beiden Kapiteln nur mit statischen Methoden und werden ab Kapitel 3, »Klassen und Objekte«, nicht-statische Methoden einführen.


Hinweis Der Name des Modifizierers static kommt aus C(++). Dort hat static einen weiten Bereich an Anwendungen. Nun lässt sich darüber streiten, ob der Begriff für Java gut gewählt ist oder nicht, da er in Java lediglich »nur einmal pro Klasse« ausdrücken soll. Wir sollten also nicht versuchen, so sehr die Bedeutung »nur einmal« aus dem Wort »statisch« herauszulesen.




Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Java SE Bibliotheken






 Java SE Bibliotheken


Zum Katalog: Professionell entwickeln mit Java EE 7






 Professionell
 entwickeln mit
 Java EE 7


Zum Katalog: Einstieg in Eclipse






 Einstieg in
 Eclipse


Zum Katalog: Einstieg in Java






 Einstieg in
 Java


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern