Sie sind hier
E-Book

Java

Eine Einführung in die Programmierung

AutorDirk Louis, Peter Müller
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2018
Seitenanzahl389 Seiten
ISBN9783446453623
FormatePUB/PDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis19,99 EUR
Der Java-Klassiker im neuen Gewand!
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!

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
1Bevor 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.1Was 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:

  1. Zeiger (die dynamische Speicherverwaltung wird intern vorgenommen)

  2. Funktionen (statt alleinstehender Funktionen gibt es nur noch Methoden (Elementfunktionen) von Klassen)

  3. Strukturen und Unions

  4. Arrays und Zeichenfolgen gibt es nur als Objekte

  5. Typendefinition (typedef)

  6. Mehrfachvererbung (nur in gemäßigter Form)

  7. Ü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.2Was 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...

Blick ins Buch
Inhaltsverzeichnis
Inhalt7
Vorwort13
1 Bevor es losgeht15
1.1 Was ist Java? –Teil I15
1.2 Was ist ein Programm?17
1.3 Wie werden Programme erstellt?19
1.4 Von Compilern und Interpretern19
1.5 Was ist Java? – Teil II20
1.6 Vorbereitung zum Programmieren23
2 Der erste Kontakt29
2.1 Die erste Java-Anwendung29
2.2 Zusammenfassung36
2.3 Fragen und Antworten36
2.4 Übungen36
3 Von Daten, Operatoren und Objekten37
3.1 Variablen und Anweisungen37
3.2 Operatoren45
3.3 Typumwandlung48
3.4 Objekte und Klassen51
3.5 Arrays62
3.6 Vordefinierte Klassen und Pakete64
3.7 Zusammenfassung65
3.8 Fragen und Antworten66
3.9 Übungen67
4 Programmfluss und Fehlererkennung mit Exceptions69
4.1 Die Axiomatik des Programmablaufs69
4.2 Modularisierung durch Klassen und Methoden70
4.3 Kontrollstrukturen80
4.4 Fehlerbehandlung durch Exceptions91
4.5 Zusammenfassung95
4.6 Fragen und Antworten96
4.7 Übungen97
5 Objektorientierte Programmierung mit Java99
5.1 Vererbung99
5.2 Methoden (Klassenfunktionen)107
5.3 Variablen- und Methodensichtbarkeit112
5.4 Innere Klassen120
5.5 Mehrfachvererbung und Schnittstellen121
5.6 Zusammenfassung125
5.7 Fragen und Antworten125
5.8 Übungen127
6 Ein- und Ausgabe129
6.1 Streams129
6.2 Ausgaben auf den Bildschirm130
6.3 Ausgabe in Dateien135
6.4 Eingaben von Tastatur138
6.5 Aus Dateien lesen141
6.6 Ein wichtiger Punkt: korrekte Exception-Behandlung143
6.7 Rund um Strings145
6.8 Zusammenfassung152
6.9 Fragen und Antworten152
6.10 Übungen153
7 Collections und weitere nützliche Klassen155
7.1 Zufallszahlen erzeugen155
7.2 Zeit- und Datumsangaben157
7.3 Zeichenfolgen zerlegen160
7.4 Komplexe Datenstrukturen (Collections)161
7.5 Algorithmen171
7.6 Zusammenfassung173
7.7 Fragen und Antworten173
7.8 Übungen174
8 Grundlagen der GUI-Programmierung175
8.1 Der GUI-Reiseführer176
8.2 Aufbau einer GUI-Anwendung177
8.3 Das Ereignis-Modell des AWT182
8.3.1 java.awt.event importieren185
8.3.2 Ereignislauscher definieren185
8.3.3 Lauscher für Quelle registrieren186
8.3.4 Adapter187
8.3.5 Einige abschließende Anmerkungen189
8.4 Chamäleon sein mit UIManager und Look&Feel191
8.5 Ein umfangreicheres Beispiel192
8.6 Zusammenfassung193
8.7 Fragen und Antworten194
8.8 Übungen195
9 Grafik, Grafik, Grafik197
9.1 Das Arbeitsmaterial des Künstlers197
9.2 Erweitertes Layout mit Panel-Containern206
9.3 Kreise, Rechtecke und Scheiben208
9.4 Freihandlinien212
9.5 Noch mehr Grafik mit Java2D215
9.6 Zusammenfassung219
9.7 Fragen und Antworten220
9.8 Übungen221
10 Bilder, Bilder, Bilder223
10.1 Der Bildbetrachter223
10.2 Dateien öffnen und speichern: die Klasse JFileChooser228
10.3 Laden und Anzeigen von Bildern230
10.4 Zusammenfassung233
10.5 Fragen und Antworten234
10.6 Übungen234
11 Text, Text, Text235
11.1 Ein Texteditor235
11.2 Umgang mit Text: JTextField, JTextArea und JTextPane236
11.3 Kombinationsfelder242
11.4 Eigene Dialoge245
11.5 Nach Textstellen suchen249
11.6 Unterstützung der Zwischenablage251
11.7 Drucken253
11.8 Zusammenfassung255
11.9 Fragen und Antworten255
11.10 Übungen256
12 Menüs und andere Oberflächenelemente257
12.1 Die Komponentenhierarchie257
12.2 Die Basisklasse Component258
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 Zusammenfassung274
12.11 Fragen und Antworten275
12.12 Übungen275
13 Threads und Animation279
13.1 Multithreading mit Java279
13.2 Eigene Threads erzeugen: die Klasse Thread282
13.3 Eigene Threads erzeugen: die Runnable-Schnittstelle285
13.4 Wissenswertes rund um Threads287
13.5 Threads und Animation I289
13.6 Threads und Animation II293
13.6.1 SwingWorker294
13.7 Zusammenfassung298
13.8 Fragen und Antworten299
13.9 Übungen299
14 Sound301
14.1 Was ist eine URL?301
14.2 Sounddateien abspielen302
14.3 Wiedergabe von MP3303
14.4 Tonerzeugung mit MIDI304
14.4.1 Abspielen einer MIDI-Datei304
14.4.2 Selber Musik machen305
14.5 Zusammenfassung306
14.6 Fragen und Antworten307
14.7 Übungen307
15 Die Datenbankschnittstelle JDBC309
15.1 Datenbanken-ABC309
15.2 Die JDBC-Schnittstelle311
15.3 Vorbereitung für JavaDB312
15.4 Zugriff auf eine Datenbank312
15.4.1 Verbindungsaufbau313
15.4.2 Lese- und Schreiboperationen durchführen313
15.4.3 Verbindung schließen315
15.5 Zusammenfassung318
15.6 Fragen und Antworten319
15.7 Übungen319
16 Was wir noch erwähnen wollten321
16.1 Aufzählungen (enum)321
16.1.1 Definition322
16.1.2 Variablen definieren322
16.1.3 Aufzählungskonstanten vergleichen322
16.1.4 Aufzählungen und switch323
16.1.5 Aufzählungen und for323
16.2 Lambda-Ausdrücke324
16.3 Java Generics325
16.3.1 Einleitung325
16.3.2 Syntax326
16.3.3 Eingeschränkte Platzhalter328
16.3.4 Parameter und Variablen von generischen Typen328
16.4 Jar-Archive329
16.5 Module330
16.6 Die Zukunft wird zeigen, wie sich die Java-Modularisierung weiterentwickeln wird. Bleiben Sie gespannt! Debuggen332
16.6.1 Grundsätzliches Vorgehen333
16.7 Anwendungen weitergeben334
16.7.1 Ohne JRE geht es nicht334
16.7.2 Java-Anwendungen ausführen: von .class bis .exe336
Anhang A: Lösungen339
Anhang B: Installation des JDK355
B.1 Installation356
B.2 Anpassen des Systems358
B.2.1 Erweiterung des Systempfads358
B.2.2 Installation testen360
B.2.3 Setzen des Klassenpfads361
B.3 Die Java-Dokumentation362
B.4 Wo Sie weitere Hilfe finden363
Anhang C: Schlüsselwörter365
Anhang D: Java-Klassenübersicht367
D.1 java.io367
D.2 java.lang368
D.3 java.applet368
D.4 java.awt369
D.5 java.awt.event370
D.6 java.awt.geom371
D.7 java.net371
D.8 java.sql372
D.9 javax.sound.midi372
D.10 javax.swing373
D.11 java.util374
Anhang E: Literatur und Adressen375
E.1 Bücher375
E.2 Zeitschriften376
E.3 Ressourcen im Internet377
Anhang F: Das Material zum Buch379
Index381
Leere Seite2

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

BEHINDERTEPÄDAGOGIK

BEHINDERTEPÄDAGOGIK

Für diese Fachzeitschrift arbeiten namhafte Persönlichkeiten aus den verschiedenen Fotschungs-, Lehr- und Praxisbereichen zusammen. Zu ihren Aufgaben gehören Prävention, Früherkennung, ...

bank und markt

bank und markt

Zeitschrift für Banking - die führende Fachzeitschrift für den Markt und Wettbewerb der Finanzdienstleister, erscheint seit 1972 monatlich. Leitthemen Absatz und Akquise im Multichannel ...

Das Hauseigentum

Das Hauseigentum

Das Hauseigentum. Organ des Landesverbandes Haus & Grund Brandenburg. Speziell für die neuen Bundesländer, mit regionalem Schwerpunkt Brandenburg. Systematische Grundlagenvermittlung, viele ...

DHS

DHS

Die Flugzeuge der NVA Neben unser F-40 Reihe, soll mit der DHS die Geschichte der "anderen" deutschen Luftwaffe, den Luftstreitkräften der Nationalen Volksarmee (NVA-LSK) der ehemaligen DDR ...

dima

dima

Bau und Einsatz von Werkzeugmaschinen für spangebende und spanlose sowie abtragende und umformende Fertigungsverfahren. dima - die maschine - bietet als Fachzeitschrift die Kommunikationsplattform ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...