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 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Generics, innere Klassen
10 Die Klassenbibliothek
11 Threads und nebenläufige Programmierung
12 Datenstrukturen und Algorithmen
13 Raum und Zeit
14 Dateien und Datenströme
15 Die eXtensible Markup Language (XML)
16 Grafische Oberflächen mit Swing
17 Grafikprogrammierung
18 Netzwerkprogrammierung
19 Verteilte Programmierung mit RMI und Web–Services
20 JavaServer Pages und Servlets
21 Applets
22 Midlets und die Java ME
23 Datenbankmanagement mit JDBC
24 Reflection und Annotationen
25 Logging und Monitoring
26 Sicherheitskonzepte
27 Java Native Interface (JNI)
28 Dienstprogramme für die Java-Umgebung
Stichwort
Download: - ZIP, ca. 14,1 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Java-Insel | vor >>
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom Programmieren mit der Java Standard Edition Version 6
Java ist auch eine Insel (8. Aufl.) 8., aktual. Auflage, geb., mit DVD 1.475 S., 49,90 Euro Galileo Computing ISBN 978-3-8362-1371-4 |
| 1 Java ist auch eine Sprache
|  | 1.1 Der erste Kontakt
|  | 1.2 Historischer Hintergrund
|  | 1.3 Eigenschaften von Java
|  |  | 1.3.1 Bytecode und die virtuelle Maschine
|  |  | 1.3.2 Objektorientierung in Java
|  |  | 1.3.3 Java-Security-Modell
|  |  | 1.3.4 Zeiger und Referenzen
|  |  | 1.3.5 Bring den Müll raus, Garbage-Collector!
|  |  | 1.3.6 Ausnahmebehandlung
|  |  | 1.3.7 Kein Präprozessor für Textersetzungen
|  |  | 1.3.8 Keine benutzerdefinierten überladenen Operatoren
|  |  | 1.3.9 Java als Sprache, Laufzeitumgebung und Bibliothek
|  |  | 1.3.10 Wofür sich Java weniger eignet
|  |  | 1.3.11 Java im Vergleich zu anderen Sprachen
|  |  | 1.3.12 Java ist Open Source
|  | 1.4 Die Rolle von Java im Web
|  |  | 1.4.1 Vollwertige Applikationen statt Applets
|  | 1.5 Java-Plattformen: Java SE, Java EE und Java ME
|  |  | 1.5.1 Java SE-Plattform
|  |  | 1.5.2 Java für die Kleinen
|  |  | 1.5.3 Java für die Großen
|  | 1.6 Installation von Suns Java Platform Standard Edition (Java SE)
|  |  | 1.6.1 Das Java SE von Sun
|  |  | 1.6.2 Download vom JDK
|  |  | 1.6.3 Java SE unter Windows installieren
|  | 1.7 Das erste Programm compilieren und testen
|  |  | 1.7.1 Ein Quadratzahlen-Programm
|  |  | 1.7.2 Der Compilerlauf
|  |  | 1.7.3 Die Laufzeitumgebung
|  |  | 1.7.4 Häufige Compiler- und Interpreterprobleme
|  | 1.8 Entwicklungsumgebungen im Allgemeinen
|  |  | 1.8.1 Die Entwicklungsumgebung Eclipse
|  |  | 1.8.2 NetBeans von Sun
|  |  | 1.8.3 Ein Wort zu Microsoft, Java und zu J++
|  | 1.9 Eclipse im Speziellen
|  |  | 1.9.1 Eclipse starten
|  |  | 1.9.2 Das erste Projekt anlegen
|  |  | 1.9.3 Eine Klasse hinzufügen
|  |  | 1.9.4 Übersetzen und Ausführen
|  |  | 1.9.5 JDK statt JRE
|  |  | 1.9.6 Start eines Programms ohne Speicheraufforderung
|  |  | 1.9.7 Projekt einfügen, Workspace für die Programme wechseln
|  |  | 1.9.8 Plugins für Eclipse
|  | 1.10 Zum Weiterlesen
## 1.7 Das erste Programm compilieren und testen Nachdem wir die groben Konzepte von Java besprochen haben, wollen wir ganz dem Zitat von Dennis M. Ritchie folgen, der sagt: »Eine neue Programmiersprache lernt man nur, wenn man in ihr Programme schreibt.« Das Unterkapitel nutzt den Java-Compiler und Interpreter von der Kommandozeile. Wer gleich eine ordentliche Entwicklungsumgebung wünscht, kann problemlos den Teil überspringen und bei den IDEs fortfahren. ### 1.7.1 Ein Quadratzahlen-Programm Das erste Programm zeigt einen Algorithmus, der die Quadrate der Zahlen von 1 bis 4 ausgibt. Die ganze Programmlogik sitzt in einer Klasse Quadrat, die drei Methoden enthält. Alle Methoden in einer objektorientierten Programmiersprache wie Java müssen in Klassen platziert werden. Die erste Funktion quadrat() bekommt als Übergabeparameter eine ganze Zahl und berechnet daraus die Quadratzahl, die sie anschließend zurückgibt. Eine weitere Funktion übernimmt die Ausgabe der Quadratzahlen bis zu einer vorgegebenen Grenze. Die Funktion bedient sich dabei der Funktion quadrat(). Zum Schluss muss es noch ein besonderes Unterprogramm main() geben, das für den Java-Interpreter den Einstiegspunkt bietet. Die Funktion main() ruft dann die Funktion ausgabe() auf. Listing 1.1 Quadrat.java
    /**
     * @version 1.01    6 Dez 1998
     * @author Christian Ullenboom
     */
    public class Quadrat
    {
      static int quadrat( int n )
      {
        return n * n;
      }
      static void ausgabe( int n )
      {
        String s;
        int    i;
        for ( i = 1; i <= n; i=i+1 )
        {
          s = "Quadrat("
              + i
              + ") = "
              + quadrat(i);
          System.out.println( s );
        }
      }
      public static void main( String[] args )
      {
        ausgabe( 4 );
      }
    }
Hinweis Der Java-Compiler unterscheidet sehr penibel zwischen Groß- und Kleinschreibung.
Der Quellcode (engl. source code) für Quadrat.java soll exemplarisch im Verzeichnis C:\projekte\ gespeichert werden. Dazu kann ein einfacher Editor wie Notepad (Start • Programme • Zubehör • Editor) unter Windows verwendet werden. Beim Abspeichern mit Notepad unter Datei • Speichern unter… muss bei Dateiname Quadrat.java stehen und beim Dateityp Alle Dateien ausgewählt sein, damit der Editor nicht automatisch die Dateiendung .txt vergibt. ### 1.7.2 Der Compilerlauf Der Quellcode eines Java-Programms lässt sich so allein nicht ausführen. Ein spezielles Programm, der Compiler (auch Übersetzer genannt), transformiert das geschriebene Programm in eine andere Repräsentation. Im Fall von Java erzeugt der Compiler Bytecode. Wir wechseln auf die Eingabeaufforderung (Konsole) und in das Verzeichnis mit dem Quellcode. Damit sich Programme übersetzen und ausführen lassen, müssen wir die Programme javac und java aus dem bin-Verzeichnis der JDK-Installation aufrufen. Liegt die Quellcodedatei vor, übersetzt sie der Compiler javac in Bytecode.
    C:\projekte>javac Quadrat.java
Alle Java-Klassen übersetzt javac *.java. Wenn die Dienstprogramme javac und java nicht im Suchpfad stehen, müssen wir einen kompletten Pfadnamen angeben – wie C:\Programme\ Java\jdk1.6.0\bin\javac*.java. Die zu übersetzende Datei muss – ohne Dateiendung – so heißen wie die in ihr definierte öffentliche Klasse. Die Beachtung der Groß- und Kleinschreibung ist wichtig. Eine andere Endung, wie etwa ».txt« oder ».jav«, ist nicht erlaubt und mündet in eine Fehlermeldung:
    C:\projekte>javac Quadrat.txt
    Quadrat.txt is an invalid option or argument.
    Usage: javac <options> <source files>
Der Compiler legt – vorausgesetzt, das Programm war fehlerfrei – die Datei Quadrat.class an. Diese enthält den Bytecode. Findet der Compiler in einer Zeile einen Fehler, so meldet er diesen unter der Angabe der Datei und der Zeilennummer. Nehmen wir noch einmal unser Quadratzahlen-Programm, und bauen wir in der quadrat()-Funktion einen Fehler ein (das Semikolon fällt der Löschtaste zum Opfer). Der Compilerdurchlauf meldet:
    Quadrat.java:10: ; expected.
        return n * n
                   ^
    1 error
#### Den Suchpfad setzen Da es unpraktisch ist, bei jedem Aufruf immer den kompletten Pfad zur JDK-Installation anzugeben, lässt sich der Suchpfad erweitern, in dem die Shell nach ausführbaren Programmen sucht. Um die Pfade dauerhaft zu setzen, müssen wir die Umgebungsvariable PATH modifizieren. Für eine Sitzung reicht es, den bin-Pfad vom JDK hinzuzunehmen. Wir setzen dazu in der Kommandozeile von Windows den Pfad jdk1.6.0\bin an den Anfang der Suchliste, damit im Fall von Altinstallationen immer das neue Java-SDK verwendet wird:
    set PATH=C:\Programme\Java\jdk1.6.0\bin;%PATH%
Die Anweisung modifiziert die Pfad-Variable und legt einen zusätzlichen Verweis auf das bin-Verzeichnis von Java an. Damit die Pfadangabe auch nach einem Neustart des Rechners noch verfügbar ist, müssen wir abhängig vom System unterschiedliche Einstellungen vornehmen. Unter Windows XP aktivieren wir den Dialog Systemeigenschaften unter Start • Einstellungen • Systemsteuerung • System. Unter dem Reiter Erweitert wählen wir die Schaltfläche Umgebungsvariablen, wo wir anschließend bei Systemvariablen die Variable Path auswählen und mit Bearbeiten verändern – natürlich können statt der Systemvariablen auch die lokalen Benutzereinstellungen modifiziert werden; da gibt es Path noch einmal. Hinter einem Semikolon tragen wir den Pfad zum bin-Verzeichnis ein. Dann können wir den Dialog mit OK, OK, OK verlassen. War eine Eingabeaufforderung offen, bekommt sie von der Änderung nichts mit; ein neues Eingabeaufforderungsfenster muss geöffnet werden. Weitere Hilfen gibt die Datei http://tutego.com/go/installwindows. ### 1.7.3 Die Laufzeitumgebung Der vom Compiler erzeugte Bytecode ist kein üblicher Maschinencode für einen speziellen Prozessor, da Java als plattformunabhängig Programmiersprache entworfen wurde, die sich also nicht an einen physikalischen Prozessor klammert – Prozessoren wie Intel-, AMD- oder PowerPC-CPUs können mit diesem Bytecode nichts anfangen. Hier hilft eine Laufzeitumgebung weiter. Diese liest aus der Bytecode-Datei Anweisung für Anweisung aus und führt sie auf dem konkreten Mikroprozessor aus. Der Interpreter java bringt das Programm zur Ausführung:
    C:\projekte>java Quadrat
    Quadrat(1) = 1
    Quadrat(2) = 4
    Quadrat(3) = 9
    Quadrat(4) = 16
Als Argument bekommt die Laufzeitumgebung java den Namen der Klasse, die eine main()-Funktion enthält und somit als ausführbar gilt. Der Dateiname ist nicht mit der Endung ».class« zu versehen, da es keine Klasse mit dem Namen Quadrat.class gibt. ### 1.7.4 Häufige Compiler- und Interpreterprobleme Arbeiten wir auf der Kommandozeilenebene (Shell) ohne integrierte Entwicklungsumgebung, können verschiedene Probleme auftreten. Ist der Pfad zum Compiler nicht richtig gesetzt, gibt der Kommandozeileninterpreter eine Fehlermeldung der Form
    C:\>javac Quadrat.java
    Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden.
    Bitte überprüfen Sie die Schreibweise und die Umgebungsvariable ’PATH’.
aus. Unter Unix lautet die Meldung gewohnt kurz:
    javac: Command not found
War der Compilerdurchlauf erfolgreich, können wir den Interpreter mit dem Programm java aufrufen. Verschreiben wir uns bei dem Namen der Klasse oder fügen wir unserem Klassennamen das Suffix ».class« hinzu, so meckert der Interpreter. Beim Versuch, die nicht existente Klasse Q zum Leben zu erwecken, schreibt der Interpreter auf den Fehlerkanal:
    $ java Q.class
    Exception in thread "main"   java.lang.NoClassDefFoundError:Q/class
Ist der Name der Klassendatei korrekt, doch hat die Hauptfunktion keine Signatur public static void main(String[]), so kann der Java-Interpreter keine Funktion finden, bei der er mit der Ausführung beginnen soll. Verschreiben wir uns bei der main()-Funktion in Quadrat, folgt die Fehlermeldung:
    In class Quadrat: void main(String argv[]) is not defined
### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Zum Katalog
Java ist auch eine Insel Jetzt bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Tipp
| Coding for Fun
Buchempfehlungen
| Objektorientierte Programmierung
| Einstieg in Eclipse 3.4
| Java 6 lernen mit Eclipse
| NetBeans Platform 6
| Java und XML
| Visual C# 2008
| IT-Handbuch für Fachinformatiker
| C++ von A bis Z
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2009
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.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de