+ All Categories
Home > Documents > Wolf-Gert Matthius

Wolf-Gert Matthius

Date post: 29-Oct-2021
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
20
Wolf-Gert Matthius Java fiir IT-Berufe
Transcript
Page 1: Wolf-Gert Matthius

Wolf-Gert Matthius

Java fiir IT-Berufe

Page 2: Wolf-Gert Matthius

Aus dem Bereich IT erfolgreich lernen

Orundkura Alcorfthm.n und Dn.natrukturen In JAVA von Andreas Solymosi und Ulrich Grude Orundl.,.nd. Alcorfthm.n von Volker Heun Orundkura Pro,...mml.ren mit Delphi von Wolf-Gert Matthiius Orundkura VI.ual B .. le von Sabine Kamper VI.ual Ba.le fOr technl.eh. Anw.ndun,.n von JOrgen Radel Orundkura Smallblk­ObJ.ktorl.ntI.run, von Antan,an von Johannes Brauer Orundkura Softwar.Entwleklun, mit C++ von Dietrich May Orundkura JAVA von Dietmar Abts Aufb.ukura JAVA von Dietmar Abts Orundkura java-TechnoloJl.n von Erwin Merker ObJ.ktorl.ntl.rte Pro,...mml.run,ln JAVA von Otto Rauh Rechnerarchltektur von Paul Herrmann Orundkura Rel.tlon.l. Datenb.nken von Rene Steiner Orundkura D.tenb.nkentwurf von Helmut Jarosch Datenb.nk-EnJln .. r1n, von Alfred Moos Orundl.,en der Rechnerkommunlkatlon von Bernd SchOrmann Netze - Protokoll. - Spulflkatlonen von Alfred Olbrich Orundkura V.rtellt. Syatem. von Gunther Bengel Orundkura Mobile Kommunlkatlon .. yat.m. von Martin Sauter D .. Unux-Tutorl.I - lhr W., zum LPI-Zertlflkat von Helmut Pils Orundkura Wlrtachaftalnformatlk von Dietmar Abts und Wilhelm MOlder Orundkura Theoretlach. Informatlk von Gottfried Vossen und Kurt-Ulrich Witt

www.vieweg-it.de

An_ndunporl.ntlerte Wlrtaeh.ftalnformatlk von Paul Alpar, Heinz Lothar Grob, Peter Weimann und Robert Winter Bu.lne .. Intelllpnee - Orundl.,.n und praktlache Anw.ndun,en von Hans-Georg Kemper, Walid Mehanna und Garsten Unger Orundkura O •• chlftaproz .... M.n.pm.nt von Andreas Gadatsch Proze .. mod.lllerun, mit ARIS· von Heinrich Seidl meier ITIL kompakt und veratindlleh von Alfred Olbrich Orundk.ura Betrlebawlrtaehaftal.hre von Notger Carl, Rudolf Fiedler, William J6rasz und Manfred Kiesel MaaterkuralT-Controllln, von Andreas Gadatsch und Elmar Mayer Maaterkura Computercraflk und Bllclverarbeltun, von Alfred Nischwitz und Peter Haberacker Orundkura Medlenpataltun, von David Starmann Orundkura W.~,...mmlerun, von GOnter Pomaska W.~,...mml.run, von Oral Avcl, Ralph Trittmann und Werner Mellis Orundkura MySQL und PHP von Martin Pollakowski Orundkura SAP R/3· von Andre Maassen und Markus Schoenen PrOfunpvorbereltun, fOr IT-B.rut. von Manfred WOnsche j.v. lat .In. Spraeh. von Ulrich Grude SAp·-ceatOtzt •• Rechnuncaw· .. n von Andreas Gadatsch und Detlev Frick Mlddl.wareln jave von Steffen Heinzl und Markus Mathes Orundkura IT-Berut. von Andreas M. Bohm und Bettina Jungkunz Koat.ntrlprrechnun, mit SAP R/3· von Franz Klenger und Ellen Falk-Kalms M.aterkura Koat.nat.lI.nrechnun, mltSApe von Franz Klenger und Ellen Falk-Kalms Controllln, mit SAp· von Gunther Friedl, Christian Hilz und Burkhard Pedell JaY. fOr IT-Berute von Wolf-Gert Matthaus

Page 3: Wolf-Gert Matthius

Wolf-Gert Matthaus

Java fur IT-Berufe

Das Lehr- und Begleitbuch fur den Unterricht

~ vleweg

Page 4: Wolf-Gert Matthius

Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet Uber <http://dnb.ddb.de> abrufbar.

Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendei­ner Art verbunden. Der Autor Ubernimmt infolgedessen keine Verantwortung und wird keine daraus fol­gende oder sonstige Haftung Ubernehmen, die auf irgendeine Art aus der Benutzung dieses Programm­Materials oder Teilen davon entsteht.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne von Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von jedermann benutzt werden dUrfen.

Hochste inhaltliche und technische Qualitat unserer Produkte ist unser Ziel. Bei der Produktion und Auslieferung unserer BUcher wollen wir die Umwelt schonen: Dieses Buch ist auf saurefreiem und chlorfrei gebleichtem Papier gedruckt. Die EinschweiBfolie besteht aus Polyathylen und damit aus organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe freisetzen.

1. Auflage November 2005

Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlag/GWV Fachverlage GmbH, Wiesbaden 2005

Lektorat: Dr. Riccardo Mosena / Andrea BroBler

Der Vieweg-Verlag ist ein Unternehmen von Springer Science+Business Media. www.vieweg-it.de

Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschUtzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere fUr Vervielfaltigungen, Obersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Konzeption und Layout des Umschlags: Ulrike Weigel, www.CorporateDesignGroup.de Umschlagbild: Nina Faber de.sign, Wiesbaden

ISBN -13:978-3-8348-0009-1 e-ISBN-13:978-3-322-82034-1 001: 10.1007/978-3-322-82034-1

Page 5: Wolf-Gert Matthius

Vorwort

Dieses Java-Einsteiger-Buch wurde fur die Auszubildenden in den neuen IT-Be­rufen geschrieben. SchUler und Studenten, fur die die Informatik kein Haupt­fach darstellt, sind angesprochen. Es fuhrt schrittweise, konsequent und ver­standlich in Java ein.

Da das Buch sich an Lemende ohne jegliche Vorkenntnisse wendet, beginnt es deshalb einfuhrend mit einer Klarung der Begriffe Programm und Programmier­sprache, logischer und syntaktischer Fehler. Ein erstes, kleines Java-Programm wird geschrieben und zum Anlass genommen, die elementare Zweischritt-Tech­nologie kennen zu lemen, mit der iiberall und kostenlos Java-Programment­wicklung vorgenommen werden kann.

Es folgen Hinweise auf hilfreiche Entwicklungswerkzeuge und ihre Bezugsmog­lichkeiten, bevor dann in den Kapiteln 6 bis 11 erst einrnal grundlegend auf die klassische strukturierte Programmierung mit Java eingegangen wird. Alles dient dabei dem Ziel, das Basiswissen fur die spateren Kapitel aufzubauen. Dafur gibt es auch die in den Text eingestreuten Obungsaufgaben, deren Losungen sowohl am Ende des Buches angegeben als auch irn online-Service verfugbar sind.

Mit dem Kapitel 12 beginnt die intensive Beschaftigung mit dem Objektbegriff, denn bereits fur Zeichenfolgen besitzt Java keine einfachen Speicherplatze mehr.

Klasse und Konstruktor, Objekt und Datenkem, statische und nicht-statische Methoden und viele weitere Begriffe werden danach ausfuhrlich erklart und genutzt. Die Java-Dokumentation, ebenfalls kostenlos irn Internet verfiigbar, er­weist sich dabei als reiche Quelle.

SchlieBlich ist irn Kapitel 20 die Zeit gekommen, die visuellen Klassen von Java zur Programmierung von Benutzeroberflachen nutzen zu konnen. Reaktionen fur Nutzereinwirkungen auf einfache Bedienelemente werden vorbereitet - und irn­mer wieder werden dabei die Grundlagen wiederholt und gefestigt.

Mit der Einfuhrung in die Applet-Programmierung wird der unmittelbare Bezug zwischen Java- und der Intemet-Programmierung hergestellt.

Das Buch entstand aus den vielfaltigen Erfahrungen, die ich in meiner Lehrtatig­keit und in der Gestaltung von Praktika an verschiedensten Bildungseinrichtun­gen sammeln konnte. Den Teilnehmem meiner Lehrveranstaltungen mochte ich hiermit Dank sagen.

v

Page 6: Wolf-Gert Matthius

VI

Vorwort

Fur Ruckmeldungen und kritische Hinweise ware ich sehr dankbar. Besuchen Sie rnich doch gelegentlich im Internet unter http://www.w-g-m.de und schreiben Sie mir Ihre Meinung.

AbschlieBend mochte ich alien, die rnich wahrend der Zeit der Manuskripterar­beitung untersttitzten und mir viel Versilindnis entgegenbrachten, ganz herzlich danken.

Uenglingen, im Oktober 2005 Wolf-Gert Matthaus

Page 7: Wolf-Gert Matthius

Inhaltsverzeich nis

1 1.1

1.1.1

1.1.2

1.1.3

1.2

1.2.1

1.2.2

1.2.3

1.2.4

1.2.5

1.2.6

1.2.7

1.2.8

1.2.9

2 2.1

2.1.1

2.1.2

2.2

Grundbegriffe: Programme und Programmiersprachen ............. 1

Programme ... ...... ....... .. .......... ... ..... ...... .. .... ...... ...... ... .. .. ...... .... ......... ..... ... . 1

Gedankenexperiment .. ... ..... ..... .. ..... .. ....... ..... .. ... ... ..... .. ...... ...... .. .. ...... .. 1

Das erste Programm .. ................... ... .... .................. .. ....................... ... ... 5

Logische Fehler .. ....... ... .. ......... ...... ... ................ .. .. .. .......... ..... ...... .......... 6

Programmiersprachen ... .......... ....... .... ... ..... .. .. ... .... .... ...... .. ...... ..... ... ... .. .... 6

Symbolbefehle ........... ......... ............... .................. ...... ..................... ...... 6

Syntaktische Fehler ................... ......... .... ................ ... ..... ...................... . 9

Programmiersprachen ..... ..... .... .. ..... ... ...... .. .. ......... .................. .. .... ... .. ... 9

Programmieren in Java ............ .... ....................... .................. ... ... ...... .. 10

Erste Vorschriften der Java-Syntax .... ... ........ ..... ...... ... ............ .. .... .. ... . 10

Deklaration von SpeicherpHitzen .. ... ... .... ... .... ... ..... ....... ..... .. .. ...... ...... 11

Ausfuhrungsteil .. ... ...................... .... .... ......... ..... ...... ....... ...... ....... .. ...... 11

Allgemeines und Besonderes ...... .... ......... ......... .... .. ....... ............ ... .... . 12

Kommentare ... .. ... ........ .. ... ..... .......... ... ...... ............. ...... ........... ...... ... ... . 12

Das Java-Prinzip ............................................................................. 13

Die beiden klassischen Verarbeitungsprinzipien ...... ......... .. ... .... ....... .. 13

Das Compilerprinzip ... .. ................ ....... ............ ..... ... ... ..................... .. . 13

Das Interpreterprinzip ... ... ... ....... ..................... .. ...... .... .. .. ... .... ... .... ..... 15

Internet und Globalisierung ...... .. ........... ....... ... ........ ... ...... ..... ........... ... . 17

VII

Page 8: Wolf-Gert Matthius

Inhaltsverzeichnis

VIII

2.3

2.4

3 3.1

3.1.1

3.1.2

3.1.3

3.2

3.2.1

3.2.2

3.2.3

3.2.4

3.3

3.3.1

3.3.2

3.3.3

3.3.4

3.4

4 4.1

4.1.1

4.1.2

4.1.3

Die Zweischritt-Verarbeitung von Java-Programmen .......................... . 18

Ausblick .... ... ....... ....... ..... ... ...................... .. .... .... .. ...... ... .... ..... .. .... .... .... .. . 20

Einfache Verarbeitung von Java-Programmen ............................ 21

Editieren des Java-Quelltextes ............................................................... 21

Vorbereitung .. .... ... ....... .. ..... ... ..... .. ............. .. ..... .... .... .. ........................ 21

Start des Editors ... .. .... ..... ... ..... .. ... .. ..... ... ...... .. ............... .... ........... .... ... 22

Der Programmrahmen fur Anfanger-Programme .............................. 22

Java-Compiler und Java-Interpreter beschaffen .................................... 26

Herunterladen aus dem Internet .................. .. ........ ...... .. .. ....... ....... .. .. 26

Speichern des Installationsprogramms .. .............. .. ...... ................ .. .... 28

Kaffee fur die Wartezeit ...................................................................... 28

Installation des JD K .... ...... .. .......... .......... .. ..... ........... .................. ........ 28

Arbeit mit Compiler und Interpreter ..................................................... 30

Syntaxkontrolle und Bytecode-Erzeugung ............ .......................... .. 30

Interpretation des Bytecode .. ..... ....... ......... ....... .. ..... ..... .... .... .... ... ...... 32

Syntaxfehlermeldung ................................... ..... ..... ..... .... ........ ............ 33

Logische Fehler ................................................................................... 34

Zusammenfassung .......................................................... .. ...... .. ........ .. .... 35

Einige Java-Entwicklungssysteme ................................................. 37

Fantastic-Bits JOE von Timo Haberkern ...... .... .... ............ .. ................... 37

Beschreibung ...................... ... ...... ..... .... ... .. ... .. ............... ... .... .... ..... ..... 37

JOE aus dem Internet herunterladen ................................................. 38

JOE installieren .... ............ ... ........ ................. .. ..................................... 38

Page 9: Wolf-Gert Matthius

4.1.4

4.1.5

4.1.6

4.2

4.2.1

4.2.2

4.2.3

4.2.4

4.2.5

4.2.6

4.3

4.3.1

4.3.2

4.3.3

4.4

4.4.1

4.4.2

5 5.1

5.1.1

5.1.2

5.1.3

5.1.4

5.1.5

5.2

Inhaltsverzeichnis

JOE einrichten .......................... ........................................................... 39

Programmentwieklung mit JOE ......................... .. ...................... .. ....... 41

Arbeit mit mehreren Java-Quelltextdateien ....................................... 43

Eclipse ..................................................................................................... 43

Allgemeines ......................................................................................... 43

Eclipse aus dem Internet laden .......................................................... 43

Eclipse entpaeken und vorbereiten ................................................... 44

Eclipse erstmalig starten und einrichten ............................................ 45

Projekte und Dateien ..... ............ ......... .................................... .. .......... 47

Syntaxpriifung, Byteeode-Erzeugung und Ausfuhrung .................... 48

NetBeans IDE ........................................... ....................... ........... .. .......... 50

Allgemeines ................................................................................. .. ...... 50

Starten und Einriehten von NetBeans ................................................ 51

Projekte und Dateien .......................... ............ .................................... 51

Weitere Java-Entwicklungsumgebungen ............. ...................... ........... 53

JPadPro ............................... .............................................. ................... 53

JBuilder und Visual J++ ...................................................................... 54

Online-Unterstiitzung .................................................................... 55

Herunterladen der Dateien eines bestimmten Kapitels ........... .. ... ....... 55

Ausgangspunkt .. .................................... .... ......... .. ... .......... ... ....... ....... . 55

Konkrete Angabe des Zielordners ..................... ..................... ........... 56

Speichern auf Desktop .............................. ........................................ . 58

Entpaeken mit reehter Maustaste .............................. ......................... 58

Entpaeken mit einem Entpaekprogramm .......................................... 59

Arbeit mit den heruntergeladenen Dateien .................... .. .... ................ 60

IX

Page 10: Wolf-Gert Matthius

Inhaltsverzeichnis

x

5.2.1

5.2.2

5.2.3

5.3

5.3.1

5.3.2

6 6.1

6.2

6.3

6.3.1

6.3.2

6.4

6.4.1

6.4.2

6.5

6.5.1

6.5.2

6.5 .3

6.6

6.6.1

6.6.2

6.7

6.8

Java elementar ...... ........... ..... .... ....... .......... .... .... .... ... ... ...... ......... ..... .... 60

Arbeit mit JOE ...... .... .. ... ....... ........ ......... ...... .... ........ ..... .... ..... ... .. ..... ..... 61

Arbeit mit ec 1 ipse ............................................................................... 62

Erste Dbungen ........................................................................................ 63

Grundsatzliches .......... ..... ......... ...... .. ... .. ..... ... ..... .. ........ ......... ... ........... 63

Dbungen zu den Kapiteln 1 bis 5 ...................................................... 64

Speicherpliitze fUr ganze Zahlen .................................................. 67

Bit und Byte ........................................................................................... 67

Java-Datentypen fur ganze Zahlen .. ...... .. .... ............. .... ............... .. ... ... .. 69

Belegung ganzzahliger Speicherplatze ......... .. .................... .. ..... .. ......... 70

Belegung durch Nutzereingabe ... .............. .............. ... .. ... .. ...... .. .. ...... 70

Belegung durch feste Werte ............................................................... 71

Zuweisungen verschiedener Typen .... ... .... ............ .... .... ........ ... ............ 71

Zum grbBeren Zahlenbereich ... .... ............................................. .... .... 71

Zum kleineren Zahlenbereich ...... ..... ... .... .... ........ ... ... ...... ........... .. ..... 72

Fehler ...................................................................................................... 73

Rezept zur Fehlervermeidung .. ... ........... .. ........... ............... ... ......... .. .. 73

Dberlauf. .. .. ...... .... .... .... ..... ............ ....... ... .... ... ...... .... .. ........ .. ....... ... ..... . 74

Konvertierungsfehler ... ..... ... ... ..... ...... .... ............................. ........... .... . 75

Rechnen mit ganzzahligen Speicherplatzen ......................................... 78

Addition bis Multiplikation ........ ...... .......... .. ........ ... .............. .............. 78

Division ganzer Zahlen .... .. ....................... ..... ... .... .... ..... ... .. ...... ... .... .. . 80

Divisionsrest und Teilbarkeit ................ .................. .......... ..... ........... .... . 81

Namensgebung fur ganzzahlige Speicherplatze ................................... 82

Page 11: Wolf-Gert Matthius

7 7.1

7.1.1

7.1.2

7.1.3

7.1.4

7.2

7.3

7.4

8 8.1

8.1.1

8.1.2

8.2

8.2 .1

8.2.2

8.2.3

8.2.4

8.2.5

8.2.6

Inbaltsverzeicbnis

Speicherpliitze fUr Dezimalbriiche ............................................... 83

Interne Darstellung von Dezimalbriichen .. ........ ....... .... .... ... ............ ... .. 83

float und double .... .... ...... ......... ..... ... .... ............. ..... .. ......... ....... .... ...... 83

Komrna oder Punkt ....... ............. ... ....... ..... ....... ... ... .. .... ......... .. .... ...... . 86

Belegung durch Nutzereingabe ....... ............ ... ... ... ......... .... ... ........ .... . 87

Goldene Regel: SpeicherpHitze fUr Dezimalbriiche .. ....... ..... ...... .... .. 87

Beispiel: Division ..... .... ....... .. .... ... ... .......... ...... ........ ... ...... ........ ... .... ...... . 87

Versuch der Rundung ................. .. .. .. .... ........... .. ..... ... ..... .. ......... ..... ..... .. 88

Beispiel: Mehrwertsteuer ..... .... ...... ....... ..................... .... .... ..... ... ...... ...... 91

Strukturiertes Programmieren ...................................................... 93

Strukturierter Entwurf .. ... ... ... ... .. ... ... ... .... .. ... .... ..... ... ....... .... ....... ....... ... .. 93

Bedeutung .. .. ...... ..... .. ........ .. .. .... .......... ..... ... .. ... ... ....... .... ..... .. ......... ..... 93

Strukturierter Entwurf .. .. ...... .... ........ .... ................... ... ..... ................. .. . 93

Strukturelemente .... ....... .. ...... .... ........... .. .... .......... .. ... ....... ....... ...... .... .... . 94

Folge ... .......... ................. ... ...... .. ......... ...... ..... ....... .. ... ....... ..... ...... ..... ... . 94

Abweisende Schleife (kopfgesteuerte Schleife) ... ...... .. .... .... .. ....... .. .. 97

Bedingungen ... ...... .. ...... ........ .... .. ..... .... ..... ... .... ......... .. ... ... ... .. ... .. .... ... 1 00

Nichtabweisende Schleife (fulSgesteuerte Schleife) ...... ..... ........ ..... . 101

Einfacher Test (unvollstandige Alternative) .. ..... .... ...... ... ... ..... ..... ..... 102

Vollstandiger Test (Alternative) ...... ....... ........... ..... ...... ... ... ... ............. 105

XI

Page 12: Wolf-Gert Matthius

Inhaltsverzeichnis

XII

E 1 Einschub: Verkiirzte Schreibweisen in Java .............................. 109

ELl

El.Ll

El.l.2

El.l.3

El.2

El.3

El.4

9 9.1

9.2

9.2.1

9.2.2

9.2.3

9.2.4

9.2.5

9.2.6

9.3

9.3.1

9.3.2

9.3.3

9.3.4

Inkrementieren und Dekrementieren ................................ .. .... .. .. .. ...... 109

Postfix-Notation ............................................................... ... ......... ... .. . 109

Prafix-Notation ................................................................................... 110

Wirkungen und Unterschiede ................ .... .................................... .. . 110

Kurzschreibweise einfacher Alternativen ................................ .......... ... 111

Kombinierte Zuweisungsoperatoren ............................................ ........ 113

Die Vielfalt von Java ............................................................................. 114

Felder ..•...................................................................................•...... 119

Begriff und Vereinbarung .. .. ..... ... ........ ... ... ....... ... .................... ............. 119

Grundaufgaben mit Feldern ................................................................. 120

Summieren tiber Feldern .. ................................................................. 120

Zahlschleife .... ...... .... ................. .......... ....................... .......... .......... .. .. 121

Abzahlen in Feldern ......... .... ........... ....... ........ ................ ................... 125

Finden in Feldern ...................... .. ....... .... ... ........ ........... ..................... 126

Extremwertsuche in Zahlen-Feldern .... ....... ... .. ... ............. .. ...... ......... 127

Extremwertsuche mit Positionsangabe .. ... .. ... .. .... ............................. 129

Belegung von Feldern ........ .. ........ ............ ........ ...... ...... .. ....... ... ............ 131

Differenzierte Zuweisung oder Nutzereingabe ................................ 131

Li.ickenlose Belegung mit bekannter Anzahl.. .................................. 132

Initialisierung von Feldern .... .................... .. ...................................... 133

Li.ickenlose Belegung bei unbekannter Anzahl.. .............................. 134

Page 13: Wolf-Gert Matthius

Inhaltsverzeichnis

1 0 Logische SpeicherpIatze (boo 1 ean) ............................................. 135

10.1

10.2

10.3

10.4

10.5

10.5.1

10.5.2

11 11.1

11.1.1

11.1.2

11.2

11.2.1

11.2.2

11.2.3

Vereinbarung ......................................................................................... 13 5

Belegung ........................... ... ....... .... .......... ............ .. ....... ... ........ ... .......... 135

Ausgabe .................... : ............................................................................ 136

Vergleiche und Rechnungen ................................................................ 137

Anwendungen, Methode der Unschuldsvermutung ..... ..... .................. 138

Felder vergleichen ............................................................................. 138

Such en in Feldern ............................................ .. ................................ 140

SpeicherpIatze fUr einzelne Zeichen (char) .............................. 141

Vereinbarung und Belegung ......... .. ..................................................... 141

SpeicherpHitze fur einzelne Zeichen ................................................. 141

char-Felder ............................................. ............................................ 141

char und int .. ... ........................................................ .......... ................... 143

Zusarnmenhange .......... ...................................................................... 143

Anwendungen .................................................................................... 146

Rechnen mit char-Speicherplatzen .............................................. ...... 147

1 2 Zeichenketten in Java .................................................................. 149

12.1 Das Ende der klassischen Prograrnmierung ...... .. ................................ 149

12.2 Stri ng -Objekte ................................ ... ..... ..... ..... .. ............ .......... ...... ...... 150

XIII

Page 14: Wolf-Gert Matthius

Inbaltsverzeicbnis

XIV

12.2.1

12.2.2

12.2.3

12.3

12.4

12.5

12.5.1

12.5.2

12.5.3

13 13.1

13.1.1

13.1.2

13.1.3

13.2

Erzeugung von Stri ng-Objekten .... ... .... ............ ... ... ..... .. .... ........ ....... 150

Belegung der Datenkeme .... ........ .... ........... ....... ... .. ... ... ..... .... .... .. ... .. 151

Information tiber Datenkem-Inhalte ............ ...... .... .. ... ... .......... .. .. ... .. 152

Methoden .... ... ........................... ...... ....... .. .... .... .. ....... ... ..... ...... .. ... ...... ... . 153

Java-Dokumentation herunterladen ..... ... ..... .......... ......... ... .. .. ... .. ... ...... 154

Die ersten String-Methoden .... ......... .. .. ...... .. ..... .. ... .. .... ...... ... ... ...... .... .. 157

Vier Arten von Methoden .. .... .... .... ..... .. ..... ...... ... ..... .. .... ..... ... ... ... ... ... 157

String-Methoden, die Hefem, aber nichts ben6tigen .... ..... ......... ..... 157

Stri ng-Methoden, die Hefem und damr etwas ben6tigen ........ .. .. .. . 163

Die erste eigene Klasse ................................................................ 171

Die Klasse Auto .... ... ........... ....... ... .. ....... .... .......... ...... ... .. .... .. ... .. .... .. ... .... 172

Datenkem festlegen ...... .. ... .. ..... ..... ....... ... ... ... ... .... ......... ... ... ...... ... ... .. 172

Methode ho 1 eHers tell er .... .... .... .. .. .... ... ... ..... .... ......... ..... ...... ....... .. .... 174

Methode setzeHers tell er .. .... .... .... .... .... .. .... .. ..... ... ... ...... ............. ...... 176

Konstruktor ... .... ........... .......... ... ..... .... ... .... ... ... ... ... ........ .. .... ........ ... ... ..... 178

1 4 Statische Methoden ...................................................................... 181

14.1

14.1.1

14.1.2

14.1.3

14.1.4

14.2

14.3

Klassen als Methodensammlungen .... ..... .. .... ... ...... .... .. .... ..... ....... .... .. .. 181

Zwei Fragen ...... ... .. .. .. .... .. .. ... .. ... ...... ..... .... .. .... ... ... .. ....... .... .. ... .... ....... 181

Beispiel: Klasse mit Quadratmethoden .... ...... ......... ..... ....... .... ... ... ... . 182

Nutzung statischer Methoden ...... ... ... ................ ... ...... ................ .. .... . 183

Statische Methoden in beHebigen Klassen ........ .. ... ..... ..... .. .... ....... ... 186

Klassen und Pakete ..... ........... ..... ... ... ... ....... ... ....... ....... ....... ..... ....... ..... . 188

Der Programm-Rahmen ...... ...... ....... ..... ......... ... ...... ... ..................... ... .. . 189

Page 15: Wolf-Gert Matthius

Inhaltsverzeichnis

15 Uberladen ..................................................................................... 191

15.1 Dberladen von Methoden ........... .......................................................... 191

15.1.1 Beispiel .. ........................................................................ ..................... 191

15.1.2 Dberladene Methoden der Klasse String ......................................... 193

15.2 Dberladen von Konstruktoren .......... ........... ......................................... 198

15.2.1 Beispiel ............................................................. .................................. 198

15.2.2 Dberladene Konstruktoren der Klasse Stri ng ........... ....................... 200

16 Noch einma1: Methoden ............................................................. 203

16.1

16.2

16.2.1

16.2.2

16.2.3

16.2.4

16.2.5

16.2.6

16.3

16.3.1

16.3.2

16.3.3

16.3.4

16.4

16.4.1

Methodensarnmlungen in Java ........................... ...... ............................ 203

Die Klasse Math des Paketes j av a . 1 ang ................................................ 204

Die Gruppe der abs-Methoden ......................................................... 204

Die Gruppe der max- und mi n-Methoden .......................................... 205

Methoden fur die mathematischen Funktionen ............................... 209

Die Gruppe der round-Methoden und die Rundung ........................ 209

Die Methode pow ................................................................... ............. 211

Die Methode random ................................................................. .......... 213

Die Klasse Character des Paketes java . lang ........................................ 216

Allgemeines ............................................................ ............................ 216

Diagnosemethoden fur Zeichen ........................................................ 219

Ziffernzeichen und Zahlen ................................................................ 221

Nicht -Dezimalzahlen ..... .......... ........................................................... 222

Die Klasse Integer des Paketes java. lang ........................................... 224

Konstruktoren .................................................................................... 224

xv

Page 16: Wolf-Gert Matthius

Inbaltsverzeicbnis

XVI

16.4.2

16.4.3

16.5

16.6

16.7

16.7.1

16.7.2

16.7.3

16.7.4

16.7.5

17 17.1

17.2

17.2.1

17.2.2

17.2.3

17.2.4

17.2.5

17.3

17.3.1

17.3.2

17.3.3

17.3.4

Vom Dezimalsystem in andere Zahlensysteme ..... ..... ... .. .. .... .. .... ... .. 225

Von anderen Zahlensystemen zum Dezimalsystem .... ................ .... . 227

Die Klasse Long des Paketes java . l ang .... ....... ........ ...... ... .. ............. .... . 228

Die Klassen Float und Double des Paketes java . lang .. ...... .... ... ..... .. ... 229

Die Klasse Arrays des Paketes java.util ... ..... ... ..... ............................. 231

Felder fuBen .... .. ..... .. .... .. ....... ..... .. ..... ....... .............. ........ ...... .. ...... ...... 232

Felder ansehen .. .... ..... .. .. ....... ... .... ... .. ..... .. ...... ...... ........ .. ... .. .. .. ...... ..... 233

Felder vergleichen .... ....... ... ........ ....... ..... ..... ........ ... ..... .. .................... 234

Felder sortieren ...... ............... .. ............ ... ..... .. ................ .................... . 236

Finden in sortierten Feldern .... ......... ............ .. .. ... .. .. .... ...... ... ..... .. ...... 237

Vererbung ..................................................................................... 239

Vorwort .............. ........... .. ... ..... .... .... ... ... .. ... ... .... ..... .... ...... .. ..... ........... .... 239

Klassen ableiten .................................................................................... 239

Erblasser- und Erbnehmer-Klasse ..... ............. .. .. .. .......... .... .... ........ ... 239

Beispiel fur eine Erblasser-Klasse ........ ............................................. 240

Ableitung von Klassen ....................................................................... 242

Konstruktoren fur die abgeleiteten Klassen ...... .. ............ ... .............. 244

Erweiterung des Datenkerns, verbesserte und neue Methoden ..... . 246

Noch einmal: Statische Methoden ........... ................. ... ..................... .... 248

Die equa 1 s-Methode der Klasse Stri ng .... ..... .. ...... ....... .. .... ... ..... ....... 248

Statische Methoden der Klasse Arrays fur String-Objekte ..... .. .. ...... 251

Stri ng-Felder ... ....... .... ..... .. ... ... ... .... ...... .......... .... .... ............ ...... .......... 252

Beispiel ........ .. ... .. ..... ....... ...... ..... ... .. ... .... ... ....... ..... .. .... .... .... ...... ... ....... 253

Page 17: Wolf-Gert Matthius

Inbaltsverzeicbnis

18 Abstrakte Klassen und Interfaces ............................................... 255

18.1

18.1.1

18.1.2

18.1.3

18.1.4

18.1.5

18.2

18.2.1

18.2.2

18.2.3

Abstrakte Klassen .. ......... ........................................................ ... ...... .. .... 255

Der reiche Erblasser .... .... ....................... .... ....... .. .... .. ..... .. ..... .. ... ....... . 255

Abstrakte Klassen .............. ... .................................. ... .. .... ... .. ...... ... ..... 255

Abstrakte Klassen mit abstrakten Methoden, Prototypen ..... ....... .. .. 256

Abstrakte Klassen mit konkreten Methoden ..................... ... ... ..... .... 260

Abstrakte Klassen ohne Datenkem ................................................... 263

Interfaces .................................... .............. .............................. ..... .. ...... .. 265

BegriffserkHirung, Zusammenhange ..... ........ .. .................................. 265

Interfaces, abstrakte und konkrete Klassen ..... .. ............................... 266

Schnittstelle ...... ..... .. .... ... ...... .. ............ ... ........ ..... ...... ... ........ .... .. ......... 268

1 9 Polymorphie ................................................................................. 269

19.1

19.2

19.2.1

19.2.2

19.2.3

19.3

Begriffserklarung, erster Versuch ......................................................... 269

Polymorphie in Objekthierarchien ........ .. ..... ........ ..... ............ .. ......... .... 269

Oberste Klasse der Hierarchie programmieren ........ ... .. ... ......... ... .... 270

Untergeordnete Klassen ableiten ............................................ .......... 271

Objektfelder und Klassen-Hierarchien ........................................ .... 273

Begriffserklarung, zweiter Versuch ......... ........ .. ..... .. ...... ...... ................ 276

XVII

Page 18: Wolf-Gert Matthius

Inbaltsverzeicbnis

XVIII

2 0 Benutzeroberflachen ................................................................... 277

20.1

20.1.1

20.1.2

20.2

20.2.1

20.2.2

20.2.3

20.2.4

20.2.5

20.2.6

20.2.7

20.3

20.3.1

20.3.2

20.3.3

20.3.4

20.3.5

20.3.6

Konsolenanwendung und heutige Programmierung ... ................ ... .... 277

Klassische Programrnierung: Konsolenanwendung .... .. ............. ... ... 277

Heutige Programrnierung: BenutzeroberfHichen ............ .. ................ 278

Das Forrnular ......................................................................................... 279

Wiederholung: Klassen, abstrakte Klassen, Interfaces ..... ...... ..... ... .. 279

Visuelle Klassen .................................... ...... .. ..................................... 280

Vorbereitung des Forrnulars .............................................................. 280

Forrnular sichtbar machen .. ....... ... ... ......... .... ..................................... 282

GroBe und Titel setzen ...................................................................... 284

Nutzung des Konstruktors ... .. ... .... ..... .. .. .. ... ....... ................................ 285

Hintergrundfarbe einstellen ............................................................... 287

Ereignisbehandlung ................ ............................. ........... ... ...... ....... ...... 290

Nutzereinwirkung und Ereignis ........................................................ 290

Reaktionen auf Ereignisse ...................... ......... ..... .......... ................ ... 291

Ereignis-Lauscher ankoppeln ............................................................ 292

Interface implementieren .................................................................. 293

Ereignis-Methoden programmieren .. ......... .............. .. ............ ..... .. .... 295

Verwendung von Adapter-Klassen ......... ...... .... ... ................... ..... ..... 296

E 2 Einschub: Weitere verkiirzende Schreibweisen ........................ 299

E2.1 Objektvereinbarung und -erzeugung zusammenfassen ................ ... .. . 299

E2.2 Namenlose Objekte verwenden ............. .. ... ...... .... ................ ... ............ 299

Page 19: Wolf-Gert Matthius

21 21.1

21.2

21.2.1

21.2.2

21.2.3

21.3

21.3.1

21.3.2

21.4

21.5

21.6

Inhaltsverzeichnis

Einfache Bedienelemente ............................................................ 301

Layout festlegen ........... ... .... ......... ... .. ........ ..... ....... .. ... .. ... ................. ..... 301

Button und Labels fUr die Arbeitsflache .. .. .... .... .... .... ...... ....... .... ..... .... 304

Vereinbarung, Erzeugung und Einbettung in die Arbeitsflache ...... 304

Reaktion bei Mausklick auf den Button vorbereiten ............ ... .. ...... 307

Reaktion prograrnrnieren ... .. .... .... .. .... ... ........ .. ... .... .... ... .... ....... ..... .. ... 309

Ein kleiner Taschenrechner fUr ganze Zahlen ............ ............ ......... .... 311

Herstellung cler Benutzeroberflache ............... ... .. ............................. 311

Inhalt der Methode act; onPerformed fUr den Plus-Button .. ...... ..... .. 313

Checkboxen ..... ... ...... ........ .......... .... ... .. .... ........ ... .. .... ................... .... .. ... 314

Zwei horizon tale Scrollbars (Schieberegler) ...... ... ... .................. ....... ... 319

Textfenster und Label ... ...... ........ ... ...... .............. ... ..... ...... ...... ..... ..... ..... 322

2 2 Gruppierte Radiobuttons und Listen .......................................... 325

22 .1

22.1.1

22.1.2

22.1.3

22.2

22.2.1

22.2.2

22.2.3

22.2.4

22.2.5

Gruppierte Radiobuttons ......... ............ ......... ...... ..... ..... ... ......... .... ........ 325

Erzeugung und Platzierung auf der Arbeitsflache .. ......................... . 325

Reaktionen auf Nutzerklick .. .... ... ..... ... ............ ... .. ... ................. ....... .. 327

Eine kleine Anwendungsaufgabe ..... .. .... .. ..... ....... .. ...... ... ... .... ... .. ..... 328

Listen ..... ........................ .. .. .......................................... .. ......................... 330

Herstellung von Listen .................... .. ......................................... .. ... .. . 330

Reaktionen auf Nutzerauswahl in einer Liste ........ ... ........... ... .... ...... 332

Beispiele fUr Arbeit mit Listen: Sortierung ....... ... ..... ............ .. ....... ... . 334

Summen tiber Zahlenlisten ............ .......................... ... ............ .. .. ... .... 335

Wichtige L; st-Methoden .... ... ........... .......... ... ... .. ... .... .... ............. ..... ... 337

XIX

Page 20: Wolf-Gert Matthius

Inhaltsverzeichnis

xx

2 3 Sichere Programme ...................................................................... 339

23.1 Bedienelemente aktivieren und deaktivieren .. .......... ... .. ........ ...... .... ... 339

23.2 Falsche Tasten wegfangen .... ... ......... ... .. .... .. ..... ..... .... ................. ... ... .... 342

23.2.1 Nur Zifferntasten zulassen .... ......... ... ............ ...... ...... ....... ..... ....... ..... . 342

23.2.2 Komma zu Punkt wandeln .. .... ....... .. .. ..... ...... .. ..... ... ........... ..... ....... . -.. 347

2 4 Timer ............................................................................................. 349

24.1 Grundsatzliches .... ...... ...... ..... ... ......... .. ........ .... .... .... ..... .. .. .... .. ..... .. .... .... 349

24.2 Ohne Nutzer passiert nichts ..... ... ..... ... .... .... .... .... .... ..... .... ... ... ...... ........ 350

24.3 Arbeit mit Timern .... .. .... .... .... ........ .... ....... .. .......... .. ...... ... .. ... .. ............ ... 351

24.3.1 Einen einzelnen Timer einrichten ..... .. .. .... ...... ... .... ..... .... ..... ....... ... ... 351

24.3.2 Blinkende Schrift. ....... .... .. ....... .. ... ... ...... ........ .... ... .... ......... ... ......... ... .. 354

24.3.3 Laufschrift ...... ....................... .. ........... .. ............... .. ..... .... ....... ... ..... ..... . 355

24.3.4 Start und Stop eines Timers ...... ... ... .... ... ... ... ....... .. ... ....... .... .... ... .... ... 355

24.4 Mehrere Timer .... ... ............ .... ..... .... .... ..... ... ... ...... .... .... .. .. ............ .......... 358

2 5 Applet ............................................................................................ 361

25 .1

25.2

25.2.1

25.2.2

25.3

25.3.1

25.3.2

Das Geheimnis des Erfolges von Java ... .. .. .... .............. ... .... .... .... ....... .. 361

Weltweite Kommunikation ..... ... ..... ... ..... ........ ........ .. ... ....... ... .. ....... ..... . 362

Browser und HTML .... ............. .. ...... ..... ..... ... ......... ..... .... .... ... ......... .. . 362

HTML-Ausgabefenster fur ein Java-Programm ...... .... .. ....... .. .. ...... .... 363

Beispiel: Benutzeroberflache fur HTML-Dokument.. ....... .... ...... ...... .. . 364

HTML-Dokument ... ... ... ....... .. .. .. ... ... ..... ... ........ ... .... .. ...... .. .......... ... ... .. 364

Applet fur eine Benutzeroberflache .... .... ........ ...... .. ........ .... ..... .. .... ... 365

Anhang L: LOsungen ............................................................................... 367

Sachwortverzeichnis ............................................................................... 383


Recommended