Java (eBook)
450 Seiten
Carl Hanser Verlag GmbH & Co. KG
978-3-446-45726-3 (ISBN)
Steigen Sie ein in die faszinierende Welt der Java-Programmierung und lernen Sie, wie Sie Ihre Ideen Schritt für Schritt umsetzen.
Hier lernen Sie, wie Sie mit Java programmieren und
- wie Sie Ihre Entwicklungsumgebung richtig einrichten,
- wie Sie Ihren Programmquelltext sinnvoll organisieren,
- wie Sie objektorientiert programmieren,
- wie Sie Java-Programme mit grafischen Benutzeroberflächen aus Fenstern, Dialogen, Steuerelementen und Menüs schreiben,
- wie Sie einen eigenen Texteditor, ein Malprogramm, einen Bildbetrachter oder andere typische Programme schreiben können,
- wie Sie von Java-Programmen aus auf die Daten in einer Datenbank zugreifen.
Mit vielen Beispielen und Übungen und behandelt auch Grafik, Datenbanken und Threads
Die Mischung macht´s! Lernen Sie mit einfachen didaktischen, nützlichen und unterhaltsamen Programmen. Erzeugen Sie individuelle, interaktive Oberflächen. Lassen Sie sich zu eigenen Ideen anregen!
Dirk Louis studierte Informatik und Biologie und ist Autor aus Leidenschaft. Java, Android und C++ sind seine Kernthemen.
Dr.-Ing. Peter Müller ist Diplom-Informatiker und gehört seit vielen Jahren zur Top-Garde der Autoren im Bereich Java- und Android-Programmierung.
Dirk Louis studierte Informatik und Biologie und ist Autor aus Leidenschaft. Java, Android und C++ sind seine Kernthemen.Dr.-Ing. Peter Müller ist Diplom-Informatiker und gehört seit vielen Jahren zur Top-Garde der Autoren im Bereich Java- und Android-Programmierung.
Inhalt 7
Vorwort 13
1 Bevor es losgeht 15
1.1 Was ist Java? –Teil I 15
1.2 Was ist ein Programm? 17
1.3 Wie werden Programme erstellt? 19
1.4 Von Compilern und Interpretern 19
1.5 Was ist Java? – Teil II 20
1.6 Vorbereitung zum Programmieren 23
2 Der erste Kontakt 29
2.1 Die erste Java-Anwendung 29
2.2 Zusammenfassung 36
2.3 Fragen und Antworten 36
2.4 Übungen 36
3 Von Daten, Operatoren und Objekten 37
3.1 Variablen und Anweisungen 37
3.2 Operatoren 45
3.3 Typumwandlung 48
3.4 Objekte und Klassen 51
3.5 Arrays 62
3.6 Vordefinierte Klassen und Pakete 64
3.7 Zusammenfassung 65
3.8 Fragen und Antworten 66
3.9 Übungen 67
4 Programmfluss und Fehlererkennung mit Exceptions 69
4.1 Die Axiomatik des Programmablaufs 69
4.2 Modularisierung durch Klassen und Methoden 70
4.3 Kontrollstrukturen 80
4.4 Fehlerbehandlung durch Exceptions 91
4.5 Zusammenfassung 95
4.6 Fragen und Antworten 96
4.7 Übungen 97
5 Objektorientierte Programmierung mit Java 99
5.1 Vererbung 99
5.2 Methoden (Klassenfunktionen) 107
5.3 Variablen- und Methodensichtbarkeit 112
5.4 Innere Klassen 120
5.5 Mehrfachvererbung und Schnittstellen 121
5.6 Zusammenfassung 125
5.7 Fragen und Antworten 125
5.8 Übungen 127
6 Ein- und Ausgabe 129
6.1 Streams 129
6.2 Ausgaben auf den Bildschirm 130
6.3 Ausgabe in Dateien 135
6.4 Eingaben von Tastatur 138
6.5 Aus Dateien lesen 141
6.6 Ein wichtiger Punkt: korrekte Exception-Behandlung 143
6.7 Rund um Strings 145
6.8 Zusammenfassung 152
6.9 Fragen und Antworten 152
6.10 Übungen 153
7 Collections und weitere nützliche Klassen 155
7.1 Zufallszahlen erzeugen 155
7.2 Zeit- und Datumsangaben 157
7.3 Zeichenfolgen zerlegen 160
7.4 Komplexe Datenstrukturen (Collections) 161
7.5 Algorithmen 171
7.6 Zusammenfassung 173
7.7 Fragen und Antworten 173
7.8 Übungen 174
8 Grundlagen der GUI-Programmierung 175
8.1 Der GUI-Reiseführer 176
8.2 Aufbau einer GUI-Anwendung 177
8.3 Das Ereignis-Modell des AWT 182
8.3.1 java.awt.event importieren 185
8.3.2 Ereignislauscher definieren 185
8.3.3 Lauscher für Quelle registrieren 186
8.3.4 Adapter 187
8.3.5 Einige abschließende Anmerkungen 189
8.4 Chamäleon sein mit UIManager und Look& Feel
8.5 Ein umfangreicheres Beispiel 192
8.6 Zusammenfassung 193
8.7 Fragen und Antworten 194
8.8 Übungen 195
9 Grafik, Grafik, Grafik 197
9.1 Das Arbeitsmaterial des Künstlers 197
9.2 Erweitertes Layout mit Panel-Containern 206
9.3 Kreise, Rechtecke und Scheiben 208
9.4 Freihandlinien 212
9.5 Noch mehr Grafik mit Java2D 215
9.6 Zusammenfassung 219
9.7 Fragen und Antworten 220
9.8 Übungen 221
10 Bilder, Bilder, Bilder 223
10.1 Der Bildbetrachter 223
10.2 Dateien öffnen und speichern: die Klasse JFileChooser 228
10.3 Laden und Anzeigen von Bildern 230
10.4 Zusammenfassung 233
10.5 Fragen und Antworten 234
10.6 Übungen 234
11 Text, Text, Text 235
11.1 Ein Texteditor 235
11.2 Umgang mit Text: JTextField, JTextArea und JTextPane 236
11.3 Kombinationsfelder 242
11.4 Eigene Dialoge 245
11.5 Nach Textstellen suchen 249
11.6 Unterstützung der Zwischenablage 251
11.7 Drucken 253
11.8 Zusammenfassung 255
11.9 Fragen und Antworten 255
11.10 Übungen 256
12 Menüs und andere Oberflächenelemente 257
12.1 Die Komponentenhierarchie 257
12.2 Die Basisklasse Component 258
12.3 Statische Textfelder (JLabel) 260
12.4 Schaltflächen (JButton) 262
12.5 Eingabefelder (JTextField und JTextArea) 263
12.6 Optionen (JCheckBox, JRadioButton) 266
12.7 Listen- und Kombinationsfelder (JList und JComboBox) 268
12.8 Bildlaufleisten (JScrollBar) 270
12.9 Menüleisten (JMenubar) 272
12.10 Zusammenfassung 274
12.11 Fragen und Antworten 275
12.12 Übungen 275
13 Threads und Animation 279
13.1 Multithreading mit Java 279
13.2 Eigene Threads erzeugen: die Klasse Thread 282
13.3 Eigene Threads erzeugen: die Runnable-Schnittstelle 285
13.4 Wissenswertes rund um Threads 287
13.5 Threads und Animation I 289
13.6 Threads und Animation II 293
13.6.1 SwingWorker 294
13.7 Zusammenfassung 298
13.8 Fragen und Antworten 299
13.9 Übungen 299
14 Sound 301
14.1 Was ist eine URL? 301
14.2 Sounddateien abspielen 302
14.3 Wiedergabe von MP3 303
14.4 Tonerzeugung mit MIDI 304
14.4.1 Abspielen einer MIDI-Datei 304
14.4.2 Selber Musik machen 305
14.5 Zusammenfassung 306
14.6 Fragen und Antworten 307
14.7 Übungen 307
15 Die Datenbankschnittstelle JDBC 309
15.1 Datenbanken-ABC 309
15.2 Die JDBC-Schnittstelle 311
15.3 Vorbereitung für JavaDB 312
15.4 Zugriff auf eine Datenbank 312
15.4.1 Verbindungsaufbau 313
15.4.2 Lese- und Schreiboperationen durchführen 313
15.4.3 Verbindung schließen 315
15.5 Zusammenfassung 318
15.6 Fragen und Antworten 319
15.7 Übungen 319
16 Was wir noch erwähnen wollten 321
16.1 Aufzählungen (enum) 321
16.1.1 Definition 322
16.1.2 Variablen definieren 322
16.1.3 Aufzählungskonstanten vergleichen 322
16.1.4 Aufzählungen und switch 323
16.1.5 Aufzählungen und for 323
16.2 Lambda-Ausdrücke 324
16.3 Java Generics 325
16.3.1 Einleitung 325
16.3.2 Syntax 326
16.3.3 Eingeschränkte Platzhalter 328
16.3.4 Parameter und Variablen von generischen Typen 328
16.4 Jar-Archive 329
16.5 Module 330
16.6 Die Zukunft wird zeigen, wie sich die Java-Modularisierung weiterentwickeln wird. Bleiben Sie gespannt! Debuggen 332
16.6.1 Grundsätzliches Vorgehen 333
16.7 Anwendungen weitergeben 334
16.7.1 Ohne JRE geht es nicht 334
16.7.2 Java-Anwendungen ausführen: von .class bis .exe 336
Anhang A: Lösungen 339
Anhang B: Installation des JDK 355
B.1 Installation 356
B.2 Anpassen des Systems 358
B.2.1 Erweiterung des Systempfads 358
B.2.2 Installation testen 360
B.2.3 Setzen des Klassenpfads 361
B.3 Die Java-Dokumentation 362
B.4 Wo Sie weitere Hilfe finden 363
Anhang C: Schlüsselwörter 365
Anhang D: Java-Klassenübersicht 367
D.1 java.io 367
D.2 java.lang 368
D.3 java.applet 368
D.4 java.awt 369
D.5 java.awt.event 370
D.6 java.awt.geom 371
D.7 java.net 371
D.8 java.sql 372
D.9 javax.sound.midi 372
D.10 javax.swing 373
D.11 java.util 374
Anhang E: Literatur und Adressen 375
E.1 Bücher 375
E.2 Zeitschriften 376
E.3 Ressourcen im Internet 377
Anhang F: Das Material zum Buch 379
Index 381
Leere Seite 2
1 | Bevor es losgeht |
Ich weiß, ich weiß – Sie sitzen vor Ihrem Bildschirm, haben bereits Ihre Java-Entwicklungsumgebung installiert, brennen darauf, Ihr erstes Java-Programm zu schreiben, und sind einigermaßen ungehalten, sich erst noch durch etliche Seiten theoretischer Ausführungen quälen zu müssen. Müssen Sie nicht! Wenn Sie Ihre Entwicklungsumgebung schon eingerichtet haben und mit der Programmerstellung prinzipiell vertraut sind, überspringen Sie dieses Kapitel einfach. Nur wenn Sie ein absoluter Neuling in der Programmierung sind oder von Java nicht viel mehr wissen, als dass es eine Programmiersprache ist, sollten Sie dieses Kapitel unbedingt vorab durchlesen. Alle anderen können nach Bedarf auch noch später hierher zurückkehren.
1.1 | Was ist Java? – I. Teil |
Java ist heute eine der führenden Programmiersprachen, vielleicht die wichtigste Programmiersprache überhaupt. Programmierer weltweit schätzen Java für seine Robustheit, seine Vielseitigkeit, die problemlose Portierbarkeit seiner Anwendungen und, und, und.
Portierung bedeutet, dass ein Programm von einem Rechner auf einen anderen Rechner verschoben und ausgeführt wird.
Entstanden ist Java 1993 als Forschungsprojekt der Firma Sun, wobei schon auf diverse Vorarbeiten zurückgegriffen werden konnte. Der konkrete Anlass war der einsetzende Boom des World Wide Web, das nach einer geeigneten Programmiersprache verlangte. Java ist vor diesem Hintergrund zu betrachten und quasi ideal für den Einsatz im Internet – sei es, dass man seine Programme über das Internet vertreiben möchte, sei es, dass man Programme für Webseiten schreiben möchte, oder sei es, dass man über das Internet verteilte Anwendungen implementieren möchte.
Wie steht es in diesem Zusammenhang mit der Verwandtschaft von Java zu den anderen Programmiersprachen? Man entwickelt schließlich keine neue Programmiersprache, ohne die eigenen Erfahrungen mit den etablierten Programmiersprachen einfließen zu lassen.
Nun, C++-Programmierer wird es freuen zu hören, dass Java stark an C++ angelehnt ist. Die Gründe hierfür sind zweifellos in der Objektorientierheit, der Schnelligkeit und der Leistungsfähigkeit von C++ zu suchen, aber natürlich auch in der traditionellen Bedeutung dieser Sprache.
Allerdings hat Java viel unnötigen Ballast, den C++ mit sich schleppt, abgeworfen und ist dadurch wesentlich einfacher zu erlernen und zu programmieren. Diese Entschlackung dient nicht nur der Entlastung des Programmierers, sondern soll vor allem auch die Entwicklung »sicherer« Programme gewährleisten. Natürlich liegt die Verantwortung für die Sicherheit der Anwendungen deswegen letztendlich immer noch beim Programmierer. Je komplizierter und undurchsichtiger die Konzepte einer Sprache aber sind, umso wahrscheinlicher ist es, dass der Programmierer unbeabsichtigt Fehler einbaut. In Java hat man dies erkannt und beispielsweise die gesamte Zeigerprogrammierung und die dynamische Speicherverwaltung aus den Händen des Programmierers genommen und Compiler und Interpreter übertragen.
Und wie steht es mit C#? Die Sprache C# ist im Grunde nichts anderes als eine Trotzreaktion auf Java. Microsoft wollte nämlich ursprünglich eine eigene Java-Variante etablieren, was dem Konzern aber gerichtlich verboten wurde. Danach konzipierte man eine ganze neue Sprache, eben C#, die aber eine verblüffende Ähnlichkeit mit Java aufweist. Umsteigern von C# wird also vieles bekannt vorkommen.
Falls Sie schon C++ beherrschen – die folgenden Konzepte gibt es in Java nicht:
-
Zeiger (die dynamische Speicherverwaltung wird intern vorgenommen)
-
Funktionen (statt alleinstehender Funktionen gibt es nur noch Methoden (Elementfunktionen) von Klassen)
-
Strukturen und Unions
-
Arrays und Zeichenfolgen gibt es nur als Objekte
-
Typendefinition (typedef)
-
Mehrfachvererbung (nur in gemäßigter Form)
-
Überladung von Operatoren
Java deshalb als Schmalspur-C++ zu bezeichnen, wäre aber völlig falsch. Von der Leistungsfähigkeit her steht Java C++ kaum in etwas nach. Betrachtet man obige Liste etwas genauer, lässt sich feststellen, dass viele Konzepte, die C++ von C übernommen hat, zugunsten einer konsequenteren objektorientierten Programmierung aufgegeben wurden (dies betrifft die Sprachelemente 2 bis 5, die alle im Klassenkonzept aufgegangen sind). Java ist daher mittlerweile die Standardprogrammiersprache an allen US-amerikanischen Universitäten und auch an deutschen Universitäten allgegenwärtig.
Andererseits wurde auf bestimmte objektorientierte Konzepte (Punkte 6 und 7), die im Wesentlichen der Wiederverwertung objektorientierten Quellcodes dienen, aber für Einsteiger (und auch oft noch für Fortgeschrittene) manchmal schwierig zu handhaben sind, verzichtet. Was geblieben ist, ist eine relativ leicht zu erlernende, konsequent objektorientierte Sprache, die Ihnen einiges zu bieten hat:
-
Objektorientiertheit,
-
statische Typbindung, aber späte Methodenbindung,
-
dynamische Speicherverwaltung und Garbage Collection,
-
Multithreading,
-
Exception-Behandlung.
Achtung!
Verwechseln Sie Java nicht mit JavaScript. JavaScript wurde von Netscape entwickelt und als Erweiterung des HTML-Standards implementiert. Die JavaScript-Syntax ist an Java angelehnt, doch damit hört die Verwandtschaft zu Java auch schon auf. Mit Java können Sie echte eigenständige Programme schreiben (das Thema dieses Buchs), Sie können Java-Servlets schreiben, die dynamische Webseiten erzeugen, und Sie können spezielle Java-Module erzeugen, sogenannte Applets, die in Webseiten eingebettet und von Browsern mit installiertem Java-Plug-in ausgeführt werden können (früher eine Sensation, heute kaum noch von Bedeutung). Dagegen dient JavaScript-Code allein der Dynamisierung von Webseiten, weswegen der Code auch direkt in den HTML-Code eingefügt und vom Browser interpretiert wird (sofern die JavaScript-Unterstützung nicht ausgeschaltet wurde).
1.2 | Was ist ein Programm? |
Prinzipiell sind Programme nichts anderes als eine Folge von Befehlen, die an einen Computer gerichtet sind und von diesem befolgt werden. Im Grunde genommen funktionieren Programme also genauso wie Kochrezepte: Sie als Programmierer sind der Koch, der das Buch schreibt. Jedes Kochrezept entspricht einem Programm und der Computer, der Ihre Programme ausführt, ist der Leser.
Bild 1.1 Analogie zwischen Programmen und Kochrezepten
Leider ist die Realität wie üblich etwas komplizierter als das Modell. Im Falle des Kochrezepts können wir einfach davon ausgehen, dass Schreiber und Leser die gleiche Sprache sprechen. Im Falle des Programmierers und des Computers ist dies natürlich nicht der Fall, denn Sie als Programmierer sprechen an sich Deutsch und der Computer spricht … ja, welche Sprache versteht eigentlich ein Computer?
Ich wünschte, Sie hätten diese Frage nicht gestellt, denn die Antwort ist äußerst unerfreulich. Der Computer, in diesem Fall sollte man genauer von dem Prozessor des Computers sprechen, versteht nur einen ganz begrenzten Satz elementarer Befehle – den sogenannten Maschinencode, der zu allem Unglück noch binär codiert ist und daher als eine Folge von Nullen und Einsen vorliegt. Können Sie sich vorstellen, Ihre Programme als Folge von Nullen und Einsen zu schreiben? Wahrscheinlich genauso wenig, wie Ihr Computer in der Lage ist, Deutsch zu lernen. Wir haben also ein echtes Verständigungsproblem. Um dieses zu lösen, müssen Sie – als der Intelligentere – dem Computer schon etwas entgegenkommen.
Kehren wir noch einmal zu unserem Kochbuch zurück und stellen Sie sich vor, ein Chinese würde ein Kochbuch schreiben, das auf dem deutschen Buchmarkt erscheinen soll. Zwar findet der Chinese keinen geeigneten Übersetzer, der das Buch ordentlich vom Chinesischen ins Deutsche übersetzen könnte, aber er erinnert sich seiner Englischkenntnisse, die für ein Kochbuch absolut ausreichend sein sollten. Er schreibt also sein Buch in Englisch und lässt es dann von einem Übersetzer ins Deutsche übertragen. Gleiches geschieht...
Erscheint lt. Verlag | 9.4.2018 |
---|---|
Verlagsort | München |
Sprache | deutsch |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Java |
Schlagworte | Android • Entwicklungsumgebung • Grundkurs • Java • Programmierung |
ISBN-10 | 3-446-45726-7 / 3446457267 |
ISBN-13 | 978-3-446-45726-3 / 9783446457263 |
Haben Sie eine Frage zum Produkt? |
Größe: 3,7 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich