Titelei
Impressum
Inhalt
Vorwort
1 Bevor es losgeht
1.1 Was ist Java? – I. Teil
1.2 Was ist ein Programm?
1.3 Wie werden Programme erstellt?
1.4 Von Compilern und Interpretern
1.5 Was ist Java? – II. Teil
1.6 Vorbereitung zum Programmieren
2 Der erste Kontakt
2.1 Die erste Java-Anwendung
2.2 Zusammenfassung
2.3 Fragen und Antworten
2.4 Übungen
3 Von Daten, Operatoren und Objekten
3.1 Variablen und Anweisungen
3.2 Operatoren
3.3 Typumwandlung
3.4 Objekte und Klassen
3.5 Arrays
3.6 Vordefinierte Klassen und Pakete
3.7 Zusammenfassung
3.8 Fragen und Antworten
3.9 Übungen
4 Programmfluss und Fehlererkennung mit Exceptions
4.1 Die Axiomatik des Programmablaufs
4.2 Modularisierung durch Klassen und Methoden
4.3 Kontrollstrukturen
4.4 Fehlerbehandlung durch Exceptions
4.5 Zusammenfassung
4.6 Fragen und Antworten
4.7 Übungen
5 Objektorientierte Programmierung mit Java
5.1 Vererbung
5.2 Methoden (Klassenfunktionen)
5.3 Variablen- und Methodensichtbarkeit
5.4 Innere Klassen
5.5 Mehrfachvererbung und Schnittstellen
5.6 Zusammenfassung
5.7 Fragen und Antworten
5.8 Übungen
6 Ein- und Ausgabe
6.1 Streams
6.2 Ausgaben auf den Bildschirm
6.3 Ausgabe in Dateien
6.4 Eingaben von Tastatur
6.5 Aus Dateien lesen
6.6 Ein wichtiger Punkt: korrekte Exception-Behandlung
6.7 Rund um Strings
6.8 Zusammenfassung
6.9 Fragen und Antworten
6.10 Übungen
7 Collections und weitere nützliche Klassen
7.1 Zufallszahlen erzeugen
7.2 Zeit- und Datumsangaben
7.3 Zeichenfolgen zerlegen
7.4 Komplexe Datenstrukturen (Collections)
7.5 Algorithmen
7.6 Zusammenfassung
7.7 Fragen und Antworten
7.8 Übungen
8 Grundlagen der GUI-Programmierung
8.1 Der GUI-Reiseführer
8.2 Aufbau einer GUI-Anwendung
8.3 Das Ereignis-Modell des AWT
8.3.1 java.awt.event importieren
8.3.2 Ereignislauscher definieren
8.3.3 Lauscher für Quelle registrieren
8.3.4 Adapter
8.3.5 Einige abschließende Anmerkungen
8.4 Chamäleon sein mit UIManager und Look&Feel
8.5 Ein umfangreicheres Beispiel
8.6 Zusammenfassung
8.7 Fragen und Antworten
8.8 Übungen
9 Grafik, Grafik, Grafik
9.1 Das Arbeitsmaterial des Künstlers
9.2 Erweitertes Layout mit Panel-Containern
9.3 Kreise, Rechtecke und Scheiben
9.4 Freihandlinien
9.5 Noch mehr Grafik mit Java2D
9.6 Zusammenfassung
9.7 Fragen und Antworten
9.8 Übungen
10 Bilder, Bilder, Bilder
10.1 Der Bildbetrachter
10.2 Dateien öffnen und speichern: die Klasse JFileChooser
10.3 Laden und Anzeigen von Bildern
10.4 Zusammenfassung
10.5 Fragen und Antworten
10.6 Übungen
11 Text, Text, Text
11.1 Ein Texteditor
11.2 Umgang mit Text: JTextField, JTextArea und JTextPane
11.3 Kombinationsfelder
11.4 Eigene Dialoge
11.5 Nach Textstellen suchen
11.6 Unterstützung der Zwischenablage
11.7 Drucken
11.8 Zusammenfassung
11.9 Fragen und Antworten
11.10 Übungen
12 Menüs und andere Oberflächenelemente
12.1 Die Komponentenhierarchie
12.2 Die Basisklasse Component
12.3 Statische Textfelder (JLabel)
12.4 Schaltflächen (JButton)
12.5 Eingabefelder (JTextField und JTextArea)
12.6 Optionen (JCheckBox, JRadioButton)
12.7 Listen- und Kombinationsfelder (JList und JComboBox)
12.8 Bildlaufleisten (JScrollBar)
12.9 Menüleisten (JMenubar)
12.10 Zusammenfassung
12.11 Fragen und Antworten
12.12 Übungen
13 Threads und Animation
13.1 Multithreading mit Java
13.2 Eigene Threads erzeugen: die Klasse Thread
13.3 Eigene Threads erzeugen: die Runnable-Schnittstelle
13.4 Wissenswertes rund um Threads
13.5 Threads und Animation I
13.6 Threads und Animation II
13.6.1 SwingWorker
13.7 Zusammenfassung
13.8 Fragen und Antworten
13.9 Übungen
14 Sound
14.1 Was ist eine URL?
14.2 Sounddateien abspielen
14.3 Wiedergabe von MP3
14.4 Tonerzeugung mit MIDI
14.4.1 Abspielen einer MIDI-Datei
14.4.2 Selber Musik machen
14.5 Zusammenfassung
14.6 Fragen und Antworten
14.7 Übungen
15 Die Datenbankschnittstelle JDBC
15.1 Datenbanken-ABC
15.2 Die JDBC-Schnittstelle
15.3 Vorbereitung für JavaDB
15.4 Zugriff auf eine Datenbank
15.4.1 Verbindungsaufbau
15.4.2 Lese- und Schreiboperationen durchführen
15.4.3 Verbindung schließen
15.5 Zusammenfassung
15.6 Fragen und Antworten
15.7 Übungen
16 Was wir noch erwähnen wollten
16.1 Aufzählungen (enum)
16.1.1 Definition
16.1.2 Variablen definieren
16.1.3 Aufzählungskonstanten vergleichen
16.1.4 Aufzählungen und switch
16.1.5 Aufzählungen und for
16.2 Lambda-Ausdrücke
16.3 Java Generics
16.3.1 Einleitung
16.3.2 Syntax
16.3.3 Eingeschränkte Platzhalter
16.3.4 Parameter und Variablen von generischen Typen
16.4 Jar-Archive
16.5 Module
16.6 Debuggen
16.6.1 Grundsätzliches Vorgehen
16.7 Anwendungen weitergeben
16.7.1 Ohne JRE geht es nicht
16.7.2 Java-Anwendungen ausführen:von .class bis .exe
Anhang A: Lösungen
Anhang B: Installation des JDK
B.1 Installation
B.2 Anpassen des Systems
B.2.1 Erweiterung des Systempfads
B.2.2 Installation testen
B.2.3 Setzen des Klassenpfads
B.3 Die Java-Dokumentation
B.4 Wo Sie weitere Hilfe finden
Anhang C: Schlüsselwörter
Anhang D: Java-Klassenübersicht
D.1 java.io
D.2 java.lang
D.3 java.applet
D.4 java.awt
D.5 java.awt.event
D.6 java.awt.geom
D.7 java.net
D.8 java.sql
D.9 javax.sound.midi
D.10 javax.swing
D.11 java.util
Anhang E: Literatur und Adressen
E.1 Bücher
E.2 Zeitschriften
E.3 Ressourcen im Internet
Anhang F: Das Material zum Buch
Dirk Louis
Peter Müller
Java
Eine Einführung
in die Programmierung
2. Auflage
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.
Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2018 Carl Hanser Verlag München
www.hanser-fachbuch.de
Lektorat: Brigitte Bauer-Schiewek
Copyediting: Petra Kienle, Fürstenfeldbruck
Umschlagdesign: Marc Müller-Bremer, München, www.rebranding.de
Umschlagrealisation: Stephan Rönigk
Print-ISBN 978-3-446-45194-0
E-Book-ISBN 978-3-446-45362-3
Verwendete Schriften: SourceSansPro und SourceCodePro (Lizenz)
CSS-Version: 1.0
Font License | Zurück zum Impressum |
Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
Vorwort |
Dieses Buch soll Sie auf leicht verständliche und gleichsam unterhaltsame Weise in die Programmierung mit Java einführen. Vorhandene Programmierkenntnisse können von Vorteil sein, werden aber nicht vorausgesetzt. Schritt für Schritt werden Sie sich in Java einarbeiten und erfahren, wie Sie die Mächtigkeit der Sprache für Ihre Zwecke nutzen können.
Sie werden Ihre ersten Java-Anwendungen schreiben, sich mit der objektorientierten Programmierung vertraut machen und erfahren, wie man in Java Anwendungen mit grafischen Benutzeroberflächen programmiert. In den letzten Kapiteln des Buchs wenden wir uns dann noch diversen Fortgeschrittenenthemen zu, wie der Implementierung von Threads und Animationen oder der Datenbankunterstützung.
Am Ende eines jeden Kapitels finden Sie eine Reihe von Testfragen und eine Zusammenfassung des behandelten Stoffs sowie einige Übungsaufgaben, die zur Vertiefung und Wiederholung des Stoffs dienen, vor allem aber auch die Lust am Programmieren anregen sollen.
Programmierkenntnisse sind wie erwähnt nicht erforderlich, aber Sie sollten auch nicht zu den Zeitgenossen gehören, die bisher noch jedem Computer erfolgreich aus dem Weg gegangen sind. Spaß am Programmieren können wir Ihnen nur dann vermitteln, wenn Sie selbst ein wenig guten Willen und Ausdauer mitbringen. Gute Laune, eine Portion Neugier, dieses Buch – was brauchen Sie noch?
Um mit Java programmieren zu können, benötigen Sie ein entsprechendes Entwicklungspaket, das sogenannte JDK (Java Development Kit). Optional können Sie zusätzlich zu dem JDK eine integrierte Entwicklungsumgebung wie z. B. NetBeans oder die Open-Source-Software Eclipse verwenden.
Für Java-Einsteiger ist der Einsatz einer integrierten Entwicklungsumgebung allerdings häufig recht verwirrend und lenkt vom eigentlichen Primärziel, die Programmiersprache Java zu lernen, unnötig ab. Schlimmer noch: Die meisten Entwicklungsumgebungen sind für fortgeschrittene Programmierer konzipiert und erleichtern deren tägliche Programmierarbeit, indem sie komplexe Arbeitsschritte automatisieren, vordefinierte Codegerüste anbieten, eigenständig Code erzeugen. Für Anfänger ist dies ein Desaster! Nehmen wir nur einmal das Codegerüst einer einfachen Konsolenanwendung, das in Java aus ungefähr vier bis sieben Zeilen Code besteht. Wenn Ihnen dieses Codegerüst stets von Ihrer Entwicklungsumgebung fertig vorgelegt wird, werden Sie sich kaum die Mühe machen, es je selbst einmal abzutippen. Sie werden es sich vielleicht anschauen und versuchen, es zu verstehen, aber Sie werden es nie wirklich verinnerlichen. Wenn Sie dann später einmal an einem Rechner arbeiten müssen, auf dem keine Entwicklungsumgebung installiert ist, werden Sie mit Schrecken feststellen, dass es Ihnen unmöglich ist, das Grundgerüst aus dem Kopf nachzustellen. Nun, ganz so schlimm wird es vielleicht nicht kommen, aber der Punkt ist, dass die Annehmlichkeiten der Entwicklungsumgebungen den Anfänger schnell dazu verführen, sich mit zentralen Techniken und Prinzipien der Java-Programmierung nur oberflächlich auseinanderzusetzen.
Aus diesem Grund legen wir in diesem Buch Wert auf Handarbeit mit elementarsten Mitteln: Wir setzen unsere Quelltexte in einem einfachen Texteditor auf, wandeln die Quelltexte mithilfe des Java-Compilers javac aus dem JDK in ausführbare Programme um und führen diese dann mit dem Java-Interpreter java (ebenfalls im JDK enthalten) aus. Wie Sie dabei im Einzelnen vorgehen und was Sie beachten müssen, erfahren Sie in den einleitenden Kapiteln und im Anhang dieses Buchs.
Benötigte Software und Beispielsammlung
Die Java-Entwicklungsumgebung und die Beispielsammlung zu diesem Buch finden Sie zum Download im Internet. Die entsprechenden Links finden Sie im Anhang F, Hinweise zur Installation der Entwicklungsumgebung in Anhang B.
www.carpelibrum.de
Falls Sie während der Buchlektüre auf Probleme oder gar auf inhaltliche Fehler stoßen, sollten Sie nicht zögern, uns eine E-Mail unter Angabe von Buchtitel und Auflage zu senden. Allerdings schauen Sie bitte zuerst auf unserer Buchseite www.carpelibrum.de nach, ob sich nicht dort schon eine Antwort findet. Neben Aktualisierungen, Fehlerkorrekturen und Antworten auf typische Fragen finden Sie dort auch Hinweise auf weitere Bücher rund ums Thema Programmieren.
Viel Erfolg mit Java wünschen Ihnen
Dirk Louis (autoren@carpelibrum.de)
Peter Müller (leserfragen@gmx.de)
Saarbrücken, im Frühjahr 2018
1 | Bevor es losgeht |