Grundkurs Programmieren in Java:
Gespeichert in:
Hauptverfasser: | , , , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
München
Hanser
[2018]
|
Ausgabe: | 8., aktualisierte Auflage |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | 758 Seiten Diagramme, Illustrationen |
ISBN: | 9783446452121 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV044699044 | ||
003 | DE-604 | ||
005 | 20231108 | ||
007 | t | ||
008 | 180104s2018 gw a||| |||| 00||| ger d | ||
020 | |a 9783446452121 |c hbk. |9 978-3-446-45212-1 | ||
035 | |a (OCoLC)1057858410 | ||
035 | |a (DE-599)BVBBV044699044 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BY | ||
049 | |a DE-20 |a DE-1102 |a DE-739 |a DE-91G |a DE-B768 |a DE-355 |a DE-522 |a DE-29T |a DE-860 |a DE-859 |a DE-1050 |a DE-12 |a DE-1049 |a DE-473 |a DE-M347 |a DE-2070s |a DE-Aug4 |a DE-83 |a DE-523 |a DE-19 |a DE-210 |a DE-1046 |a DE-634 |a DE-11 |a DE-526 |a DE-29 |a DE-91 |a DE-706 | ||
082 | 0 | |a 005.133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 362f |2 stub | ||
100 | 1 | |a Ratz, Dietmar |e Verfasser |0 (DE-588)113296509 |4 aut | |
245 | 1 | 0 | |a Grundkurs Programmieren in Java |c Dietmar Ratz, Dennis Schulmeister-Zimolong, Detlef Seese, Jan Wiesenberger |
250 | |a 8., aktualisierte Auflage | ||
264 | 1 | |a München |b Hanser |c [2018] | |
264 | 0 | |c © 2018 | |
300 | |a 758 Seiten |b Diagramme, Illustrationen | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java Standard Edition 8 |0 (DE-588)1049861094 |2 gnd |9 rswk-swf |
655 | 7 | |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a Java Standard Edition 8 |0 (DE-588)1049861094 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 1 | |5 DE-604 | |
700 | 1 | |a Schulmeister-Zimolong, Dennis |e Verfasser |0 (DE-588)1171536925 |4 aut | |
700 | 1 | |a Seese, Detlef |e Verfasser |0 (DE-588)108918505 |4 aut | |
700 | 1 | |a Wiesenberger, Jan |d 1977- |e Verfasser |0 (DE-588)1171537255 |4 aut | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-3-446-45384-5 |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030095813&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-030095813 |
Datensatz im Suchindex
_version_ | 1810738969845956608 |
---|---|
adam_text |
\
Inhaltsverzeichnis
Vorwort. 17
Einleitung. 19
Java - mehr als nur kalter Kaffee? . . . . . . . . . . 19
Java für Anfänger - das Konzept dieses Buches. 20
Zusatzmaterial und Kontakt zu den Autoren . 21
Verwendete Schreibweisen. 22
I Einstieg in das Programmieren in Java . 23
1 Einige Grundbegriffe aus der Welt des Programmierens. . . . 25
1.1 Computer, Software, Informatik und das Internet . . 25
1.2 Was heißt Programmieren? . . . 27
1.3 Welche Werkzeuge brauchen wir? . 30
2 Aller Anfang ist schwer . . . . . • . 33
2.1 Mein erstes Programm . 33
2.2 Formeln, Ausdrücke und Anweisungen . . . 34
2.3 Zahlenbeispiele . . . . . . . . . . 35
2.4 Verwendung von Variablen . 36
2.5 „Auf den Schirm!". 36
2.6 Das Programmgerüst . . 37
2.7 Eingeben, übersetzen und ausführen . . . . . . 39
2.8 Übungsaufgaben . . . . . . . . . . . . 40
3 Grundlagen der Programmierung in Java . . 41
3.1 Grundelemente eines Java-Programms. 41
3.1.1 Kommentare . 43
3.1.2 Bezeichner und Namen . . . . . . . . . . . . 45
3.1.3 Literale. 46
3*1.4 Reservierte Wörter, Schlüsselwörter . 47
3.1.5 Trennzeichen. . . . 47
6
Inhaltsverzeichnis
3.1.6 Interpunktionszeichen . . . . . . 48
3.1.7 Operatorsymbole . . . . 49
3.1.8 Import-Anweisungen. . 49
3.1.9 Zusammenfassung. . . 50
3.1.10 Übungsaufgaben . . . . . . . . . . . . 51
3.2 Erste Schritte in Java . 52
3.2.1 Grundstruktur eines Java-Programms . . 52
3.2.2 Ausgaben auf der Konsole. . . . . . . . . . . 53
3.2.3 Eingaben von der Konsole . 55
3.2.4 Schöner programmieren in Java . . 55
3.2.5 Zusammenfassung . 56
3.2.6 Übungsaufgaben. 57
3.3 Einfache Datentypen . . . . . . 57
3.3.1 Ganzzahlige Datentypen. .". . . . . . . . . . 57
3.3.1.1 Literalkonstanten in anderen Zahlensystemen . . . 59
3.3.1.2 Unterstrich als Trennzeichen in Literalkonstanten . 60
3.3.2 Gleitkommatypen . . . . . ; . . . . . . . . . . . . 61
3.3.3 Der Datentyp char für Zeichen . . . . . 63
3.3.4 Zeichenketten . . . . . . . . . . . . . . . . . . . . . 63
3.3.5 Der Datentyp boolean für Wahrheitswerte . 64
3.3.6 Implizite und explizite Typumwandlungen . . . . . . 64
3.3.7 Zusammenfassung . . . . . . . . . . 65
3.3.8 Übungsaufgaben . . . 66
3.4 Der Umgang mit einfachen Datentypen . . . . . . . . . . 66
3.4.1 Variablen. . . . . . . .;.;Ü. yü'. . 67
3.4.2 Operatoren und Ausdrücke . . . . . . . . 70
- 3.4.2.1 Arithmetische Operatoren . . . . . . 72
3.4.2.2 Bitoperatoren . . . _ . . . . . . 74
3.4.2.3 Zuweisimgsoperator. . . . . . . . . 76
3.4.2.4 Vergleichsoperatoren und logische Operatoren . . 76
3.4.2.5 Inkrement- und Dekrementoperatoren . . 79
3.4.2.6 Priorität und Auswertungsreihenfolge der
Operatoren . . . . . . 79
3.4.3 Allgemeine Ausdrücke . 81
3.4.4 Ein-und Ausgabe . . . . . . . . . . . . . . . . . 81
3.4.4.1 Statischer Import der IOTools-Methoden . V 83
3.4.5 Zusammenfassung . . . . . . 84
3.4.6 Übungsaufgaben . . . . . . . . . . . . . . . 84
3.5 Anweisungen und Ablaufsteuerung. 88
3.5.1 Anweisungen. 88
3.5.2 Blöcke und ihre Struktur. 89
3.5.3 Entscheidungsanweisung. 89
3.5.3.1 Die if-Anweisung . . . 89
3.5.3.2 Die switch-Anweisung . 91
Inhaltsverzeichnis
7
3.5.4 Wiederholungsanweisungen, Schleifen . . . . . . . 95
3.5.4.1 Die f or-Anweisung . . . . . 95
3.5.4.2 Vereinfachte f or-Schleifen-Notation. 96
3.5.4.3 Die while-Anweisung . . . . . 97
3.5.4.4 Die do-Anweisung . . , . 97
3.5.4.5 Endlosschleifen. 98
3.5.5 Sprungbefehle und markierte Anweisungen . 99
3.5.6 Zusammenfassung .101
3.5.7 Übungsaufgaben . . . 101
4 Referenzdatentypen. 111
4.1 Felder. . 113
4.1.1 Was sind Felder? . .s. 115
4.1.2 Deklaration, Erzeugung und Initialisierung von Feldern . . 117
4.1.3 Felder unbekannter Länge . .119
4.1.4 Referenzen . . 121
4.1.5 Ein besserer Terminkalender . 126
4.1.6 Mehrdimensionale Felder . 128
4.1.7 Mehrdimensionale Felder unterschiedlicher Länge.132
4.1.8 Vorsicht, Falle: Kopieren von mehrdimensionalen Feldern . 134
4.1.9 Vereinfachte for-Schleifen-Notation . . . . . . . . . . 135
4.1.10 Zusammenfassung. 136
4.1.11 Übungsaufgaben . . . . . . . . . . . . . . . . , . . 137
4.2 Klassen'. 140
4.2.1 Willkommen in der ersten Klasse! . 141
4.2.2 Komponentenzugriff bei Objekten . . . . . . . . . . 145
4.2.3 Ein erstes Adressbuch. 145
4.2.4 Klassen als Referenzdatentyp . 147
4.2.5 Felder von Klassen. 150
4.2.6 Vorsicht, Falle: Kopieren von geschachtelten Referenzdaten-
typen . 153
4.2.7 Zusammenfassung. 154
4.2.8 Übungsaufgaben . 154
5 Methoden, Unterprogramme . . . 157
5.1 Methoden. 158
5.1.1 Was sind Methoden?. 158
5.1.2 Deklaration von Methoden . 159
5.1.3 Parameterübergabe und Ergebnisrückgabe . . .160
5.1.4 Aufruf von Methoden. 161
5.1.5 Überladen von Methoden. 163
5.1.6 Variable Argumentanzahl bei Methoden .164
5.1.7 Vorsicht, Falle: Referenzen als Parameter . 165
5.1.8 Sichtbarkeit und Verdecken von Variablen . 168
5.1.9 Zusammenfassung. 169
8
Inhaltsverzeichnis
5.1.10 Übungsaufgaben . . . . . . . . . . . . . 170
5.2 Rekursiv definierte Methoden . . . . . . . . . . . 171
5.2.1 Motivation. . . _ . . . . . . 171
5.2.2 Gute und schlechte Beispiele für rekursive Methoden . 173
5.2.3 Zusammenfassung . . . . . . 176
5.3 Die Methode main. . . . . 176
5.3.1 Kommandozeilenparameter. . . . . . 176
5.3.2 Anwendung der vereinfachten f or-Schleifen-Notation . . . 178
5.3.3 Zusammenfassung .*. . . . v . . . . . . 178
5.3.4 Übungsaufgaben . 179
5.4 Methoden aus anderen Klassen aufrufen. . . . . . . . 180
5.4.1 Klassenmethoden . . . . . . . . . 181
5.4.2 Die Methoden der Klasse java. lang .Math . 182
5.4.3 Statischer Import . . . . . . . . . . . . . . . . . . . . 183
5.5 Methoden von Objekten aufrufen . . . . . . . . 184
5.5.1 Instanzmethoden . . . . . . . . . . . . . 184
5.5.2 Die Methoden der Klasse java. lang. String . . . . . .'. 185
5.6 Übungsaufgaben . . . . . . . . . . . . . . . . . 187
II Objektorientiertes Programmieren in Java . . . . . . 193
6 Die objektorientierte Philosophie. . . . . . . . 195
6.1 Die Welt, in der wir leben . . . . . . . . . . . 195
6.2 Programmierparadigmen - Objektorientierung im Vergleich . . . . . 196
6.3 Die vier Grundpfeiler objektorientierter Programmierung . . . . . . 198
6.3.1 Generalisierung . 198
6.3.2 Vererbung . . . . . . .;. . . . . . . . . . . . 200
6.3.3 Kapselung . . . . . . . . . . . . 203
6.3.4 Polymorphie . . . . . . . . .; . . . . . . . 204
6.3.5 Weitere wichtige Grundbegriffe . . . .205
6.4 Modellbildung - von der realen Welt in den Computer . . 206
6.4.1 Grafisches Modellieren mit UML . . . . . . ; . . . 206
6.4.2 Entwurfsmuster. . . . . 207
6.5 Zusammenfassung . . . . 208
6.6 Übungsaufgaben . . . . . . . . . . 209
7 Der grundlegende Umgang mit Klassen . . . . . . . . . . . . . 211
7.1 Vom Referenzdatentyp zur Objektorientierung . . . . . . . . 211
7.2 Instanzmethoden. . . . . . . 213
7.2.1 Zugriffsrechte . . . . . . . . . . . 213
7.2.2 Was sind Instanzmethoden? . . . . . . . . . . . . 214
7.2.3 Instanzmethoden zur Validierung von Eingaben . . . . . 217
7.2.4 Instanzmethoden als erweiterte Funktionalität . . . . . . . . 218
7.3 Statische Komponenten einer Klasse . 219
Inhaltsverzei chnis
9
7.3.1 Klassenvariablen und -methoden . 220
7.3.2 Klassenkonstanten. . . . . 222
7.4 Instanziierung und Initialisierung . . . . . . . . . . . . 225
7.4.1 Konstruktoren. 225
7.4.2 Überladen von Konstruktoren . 227
7.4.3 Der statische Initialisierer . . . . 229
7.4.4 Der Mechanismus der Objekterzeugung .v. . . . . 231
7.5 Zusammenfassung. . . . . 236
7.6 Übungsaufgaben. . 237
8 Vererbung und Polymorphie .257
8.1 Wozu braucht man Vererbung?. 257
8.1.1 Aufgabenstellung. .,. 257
8.1.2 Analyse des Problems . 258
8.1.3 Ein erster Ansatz . . . 258
8.1.4 Eine Klasse für sich . . . 259
8.1.5 Stärken der Vererbung. 260
8.1.6 Vererbung verhindern durch final . 263
8.1.7" Übungsaufgaben . . . . . . . . . . . . . . 264
8.2 Die super-Referenz. . 265
8.3 Überschreiben von Methoden und Variablen.267
8.3.1 Dynamisches Binden . . . . . . . . . . . . 267
8.3.2 Uberschreiben von Methoden verhindern durch final . . . 269
8.4 Die Klasse ja va. lang. Ob je ct . . . . 269
8.5 Übungsaufgaben . . . . 273
8.6 Abstrakte Klassen und Interfaces . . 273
8.6.1 Einsatzszenarien am Beispiel . . . . . . . . . . . . . . . 273
8.6.2 Abstrakte Klassen im Detail. . 277
8.6.3 Interfaces im Detail.280
8.7 Interfaces mit Default-Methoden und statischen Methoden . 283
8.7.1 Deklaration von Default-Methoden . . 283
8.7.2 Deklaration von statischen Methoden . 284
8.7.3 Auflösung von Namensgleichheiten bei Default-Methoden . 285
8.7.4 Interfaces und abstrakte Klassen im Vergleich . . . . . 287
8.8 Weiteres zum Thema Objektorientierung . . . . . . . .". . . 287
8.8.1 Erstellen von Paketen. 287
8.8.2 Zugriffsrechte . 289
8.8.3 Innere Klassen . . . . . . . . _ . . . . . 290
8.8.4 Anonyme Klassen . .296
8.9 Zusammenfassung. 299
8.10 Übungsaufgaben. 299
9 Exceptions und Errors . 311
9.1 Eine Einführung in Exceptions. 312
9.1.1 Was ist eine Exception? . 312
10
Inhaltsverzeichnis
9.1.2 Übungsaufgaben . . .'. . . . . . . . . . . 314
9.1.3 Abfangen von Exceptions . . . . . . . . . . . . 314
9.1.4 Ein Anwendungsbeispiel _ . . . . . . . . . . 315
9.1.5 Die RuntimeException . . . . . . . . . . . . . 318
9.1.6 Übungsaufgaben . . . . . . . . . 319
9.2 Exceptions für Fortgeschrittene . . . _ . . . . . . . . . 321
9.2.1 Definieren eigener Exceptions . . . . . . . . . . . . 321
9.2.2 Übungsaufgaben . . . . . .\ . . 323
9.2.3 Vererbung und Exceptions . . . . . . 1 . . 323
9.2.4 Vorsicht, Falle! .327
9.2.5 Der finally-Block . ; . . . . . . 329
9.2.6 Die Klassen Throwable und Error . . . . . . 333
9.2.7 Zusammenfassung. . . . . . 335
9.2.8 Übungsaufgaben. . . . . .:. . . . . 335
9.3 Assertions . .'. . . . . . 336
9.3.1 Zusicherungen im Programmcode . . . . . . . . 336
9.3.2 Ausfuhren des Programmcodes . . . . . . 337
9.3.3 Zusammenfassung . . . . ; . . . . . . . . . . . . ". . . . . . . 338
9.4 Mehrere Ausnahmetypen in einem catch-Block . . . . . . 338
9.5 Ausblick: try-Block mit Ressourcen . . . . . . . . . . . . . . . 340
10 Fortgeschrittene objektorientierte Programmierung . . . . . . . 341
10.1 Aufzählungstypen . . . . . . . . . . . . . 341
10.1.1 Deklaration eines Aufzählungstyps . . . . . . . . . . . 342
10.1.2 Instanzmethoden der enum-Objekte _ . A; . . 342
10.1.3 Selbstdefinierte Instanzmethoden für enum-Objekte . . . . . 343
10.1.4 Übungsaufgaben . . . . . . . . . 344
10.2 Generische Datentypen . . . . . . . . . . . . 346
10.2.1 Herkömmliche Generizität . . . . . . . . . . . . . . . . . . . 347
10.2.2 Generizität durch Typ-Parameter . . . . . . . 349
10.2.3 Einschränkungen der Typ-Parameter . . . . . . 351
10.2.4 Wildcards . . . 353
10.2.5 BoundedWildcards . . . . . . . . . . . . . . . . . 354
10.2.6 Generische Methoden . . . . . . . . . 356
10.2.7 Verkürzte Notation bei generischen Datentypen . . . 358
10.2.8 Ausblick. . . v . . . . . 361
10.2.9 Übungsaufgaben . . . . . . . . 361
10.3 Sortieren von Feldern und das Interface Comparable . . . 366
11 Einige wichtige Hilfsklassen. 369
11.1 Die Klasse StringBuff er . . . . . . . . . 369
11.1.1 Arbeiten mit String-Objekten . .369
11.1.2 Arbeiten mit StringBuff er-Objekten . . . . 372
11.1.3 Übungsaufgaben . . . . . . . . . 374
11.2 Die Wrapper-Klassen (Hüll-Klassen) . . . . . . . . . . . . 375
Inhaltsverzeichnis
11
11.2.1 Arbeiten mit „eingepackten" Daten . . . . . . . . 375
11.2.2 Aufbau der Wrapper-Klassen . 377
11.2.3 Ein Anwendungsbeispiel . . 379
11.2.4 Automatische Typ Wandlung für die Wrapper-Klassen . . . 380
11.2.5 Übungsaufgaben . . i ^ . 382
11.3 Die Klassen Biglnteger und BigDecimal. 382
11.3.1 Arbeiten mit langen Ganzzahlen . . . . . 383
11.3.2 Aufbau der Klasse Biglnteger . . . . . . . . . . . 384
11.3.3 Übungsaufgaben. . . . .386
11.3.4 Arbeiten mit langen Gleitkommazahlen . 387*
11.3.5 Aufbau der Klasse BigDecimal . . . . . . . 390
11.3.6 Viele Stellen von Nullstellen gefällig? . 392
11.3.7 Übungsaufgaben. 394
11.4 Die Klasse DecimalFormat.394
11.4.1 Standardausgaben in Java . 394
11.4.2 Arbeiten mit Format-Objekten . . . 395
11.4.3 Vereinfachte formatierte Ausgabe. 398
11.4.4 Übungsaufgaben . 398
11.5 Die Klassen Date und Calendar . . 1. 399
11.5.1 Arbeiten mit „Zeitpunkten" . . 399
11.5.2 Auf die Plätze, fertig, los! . . . . 400
11.5.3 Spezielle Calendar-Klassen . . . 401
11.5.4 Noch einmal: Zeitmessung . . 404
11.5.5 Übungsaufgaben . 405
11.6 Die Klassen SimpleDateFormat und DateFormat.405
11.6.1 Arbeiten mit Format-Objekten für Datum/Zeit-Angaben . . 405
11.6.2 Übungsaufgaben. 410
11.7 Die Collection-Klassen . 410
11.7.1 „Sammlungen" von Objekten - der Aufbau des Interface
Collection . 411
11.7.2 „Sammlungen" durchgehen — der Aufbau des Interface
Iterator . 413
11.7.3 Mengen . 414
11.7.3.1 Das Interface Set . 414
11.7.3.2 Die Klasse HashSet.415
11.7.3.3 Das Interface SortedSet . . . . . . 416
11.7.3.4 Die Klasse TreeSet. 417
11.7.4 Listen. . . . . . . 419
11.7.4.1 Das Interface List . 419
11.7.4.2 Die Klassen ArrayList und LinkedList . . 420
11.7.4.3 Suchen und Sortieren - die Klassen
Collections und Arrays . 422
11.7.5 Verkürzte Notation bei Collect ion-Datentypen . 424
11.7.6 Übungsaufgaben . 426
12
Inhaltsverzeichnis
11.8 Die Klasse StringTokenizer . . . . . . . . 426
11.8.1 Übungsaufgaben . . . . . . . . . . . . . 429
III Grafische Oberflächen in Java . . . . . . . . . . . . . . . 431
12 Aufbau grafischer Oberflächen in Frames - von AWT nach Swing . . . 433
12.1 Grundsätzliches zum Aufbau grafischer Oberflächen . . . . . 433
12.2 Ein einfaches Beispiel mit dem AWT . . . . . . . . . . 434
12.3 Let's swing now! . . . . . . . . . . 437
12.4 Etwas „Fill-in" gefällig? . . . . . . . ; . . 439
12.5 Die AWT-und Swing-Klassenbibliothek im Überblick . . .v. . . 441
12.6 Übungsaufgaben . . . . . . . . . . . 443
13 Swing-Komponenten . . . . . . . . . . . 445
13.1 Die abstrakte Klasse Component . ^ . 445
13.2 Die Klasse Container . . . . . . . . . . . . . . . . . . . . . 446
13.3 Die abstrakte Klasse JComponent . . . . . . . . I . 447
13.4 Layout-Manager, Farben und Schriften . . . . . . 448
13.4.1 Die Klasse Color . . . . . . . . . . . .v. 449
13.4.2 Die Klasse Font . . . . . . . . . 451
13.4.3 Layout-Manager . . ." . . . . . . . . . . . . . 452
13.4.3.1 Die Klasse FlowLayout . . . . . . . . . . . . . 453
13.4.3.2 Die Klasse BorderLayout . . . .455
13.4.3.3 Die Klasse GridLayout . . . . 456
13.5 Einige Grundkomponenten . . . . 458
13.5.1 Die Klasse JLabel . . . 459
13.5.2 Die abstrakte Klasse AbstractButton . . 461
13.5.3 Die Klasse JButton . . . . . . . . . . . . . 461
13.5.4 Die Klasse JToggleButton. 463
13.5.5 Die Klasse JCheckBox . . . . . . . . . . . . . . 464
13.5.6 Die Klassen JRadioButton und ButtonGroup . . . . . . 465
13.5.7 Die Klasse JComboBox . 467
13.5.8 Die Klasse JList. 470
13.5.9 Die abstrakte Klasse JTextComponent . 473
13.5.10 Die Klassen JTextField und JPasswordField.473
13.5.11 Die Klasse JTextArea . . . . . . . . . 476
13.5.12Die Klasse JScrollPane . . . . . . . . . . . . . . . . . 478
13.5.13 Die Klasse JPanel . . .480
13.6 Spezielle Container, Menüs und Toolbars . 481
13.6.1 Die Klasse JFrame . . . . . . . . .'. . . . 482
13.6.2 Die Klasse JWindow . .483
13.6.3 Die Klasse JDialog. . . . . . . . 483
13.6.4 Die Klasse JMenuBar. . . . 486
13.6.5 Die Klasse JToolBar . 489
Inhaltsverzeichnis
13
13.7 Übungsaufgaben. 492
14 Ereignisverarbeitung. . . . . . 495
14.1 Zwei einfache Beispiele. _ . . . . . . . . . .496
14.1.1 Zufällige Grautöne als Hintergrund . 496
14.1.2 Ein interaktiver Bilderrahmen . . . . . . . . . . . . . . 499
14.2 Programmiervarianten für die Ereignisverarbeitung . 503
14.2.1 Innere Klasse als Listener-Klasse . . . . . . . . . . 503
14.2.2 Anonyme Klasse als Listener-Klasse . 503
14.2.3 Container-Klasse als Listener-Klasse :•. 504
14.2.4 Separate Klasse als Listener-Klasse. 505
14.3 Event-Klassen und-Quellen. . . 507
14.4 Listener-Interfaces und Adapter-Klassen. . 510
14.5 Listener-Registrierung bei den Event-Quellen.516
14.6 Auf die Plätze, fertig, los! .519
14.7 Übungsaufgaben. . . . 524
15 Einige Ergänzungen zu Swing-Komponenten . . . . . . . . 529
15.1 Zeichnen in Swing-Komponenten . 529
15.1.1 Grafische Darstellung von Komponenten. 529
15.1.2 Das Grafikkoordinatensystem . 530
15.1.3 Die abstrakte Klasse Graphics . 531
15.1.4 Ein einfaches Zeichenprogramm . 534
15.1.5 Layoutveränderungen und der Einsatz von revalidate . 536
15.2 Noch mehr Swing gefällig? .538
15.3 Übungsaufgaben. 540
IV Threads, Datenströme und Netzwerkanwendungen . . 543
16 Parallele Programmierung mit Threads.545
16.1 Ein einfaches Beispiel.545
16.2 Threads in Java. 547
16.2.1 Die Klasse Thread. 548
16.2.2 Das Interface Runnable. . . . . . 552
16.2.3 Threads vorzeitig beenden .554
16.3 Wissenswertes über Threads .556
16.3.1 Lebenszyklus eines Threads.556
16.3.2 Thread-Scheduling . 558
16.3.3 Dämon-Threads und Thread-Gruppen . . 558
16.4 Thread-Synchronisation und-Kommunikation.559
16.4.1 Das Leser/Schreiber-Problem . 560
16.4.2 Das Erzeuger/Verbraucher-Problem . . . . . . . . 563
16.5 Threads in Swing-Anwendungen . . . . . . . . . . . . . . 571
16.5.1 Auf die Plätze, fertig, los! . . . . . . . . . . . . 571
14
Inhaltsverzeichnis
16.5.2 Spielereien . . . . . . . -- . . . . . . . . . 574
16.5.3 Swing-Komponenten sind nicht Thread-sicher . 577
16.6 Übungsaufgaben . . . . . . . . . . . •*. . . . . . . . . . . 578
17 Ein-und Ausgabe über I/O-Streams . . . . . . . . . 581
17.1 Grundsätzliches zu I/O-Streams in Java . . . . . . . . . 582
17.2 Dateienund Verzeichnisse-die Klasse File . . . . . . .'. . . 582
17.3 Ein- und Ausgabe über Character-Streams . . . . . . 585
17.3.1 Einfache Reader-und Writer-Klassen . . . . M . . . . 586
17.3.2 Gepufferte Reader-und Writer-Klassen . . . . . . 589
17.3.3 Die Klasse StreamTokenizer . . . . . . . . . 591
17.3.4 Die Klasse PrintWriter . . . 1 . . 592
17.3.5 Die Klassen IOTools und Scanner . . . . . . *. .'. . . 594
17.3.5.1 Was machen eigentlich die IOTools? . . . . . . . 594
17.3.5.2 Konsoleneingabe über ein Scanner-Objekt . . . . 595
17.4 Ein- und Ausgabe über Byte-Streams . . . . . *. ; . . . . . ; . 1. 596
17.4.1 Einige Input St ream-und Output St re am-Klassen . 597
17.4.2 Die Serialisierung und Deserialisierung von Objekten . . * 599
17.4.3 Die Klasse Print St ream . . . . . . . . . . . . 601
17.5 Streams im try-Block mit Ressourcen .;. . . . . . ; . . . 602
17.6 Einige abschließende Bemerkungen . . . . . . . 604
17.6.1 Das Paket java. nio . . . . . . . . . . . . . 605
17.6.2 Das Paket java. nio. file . . . . . . . . . . 606
17.6.2.1 Das Interface Path und die Klasse Paths . . . . . 606
17.6.2.2 Die Klasse Files . . . . . . 1. . . . . . 607
17.7 Übungsaufgaben . . . . . . . . . . . . 1 . .;. . . . . . . . ; 610
18 Client/Server-Programmierung in Netzwerken . 613
18.1 Wissenswertes über Netzwerkkommunikation . . . . 614
18.1.1 Protokolle . . . . . . . . • • • • • 614
18.1.2 IP-Adressen . . . . . . 616
18.1.3 Ports und Sockets . . . . . . . . . . . . . . . . . . . . . 617
18.2 Client/Server-Programmierung . . . . . . . . . . . . . . . . . 618
18.2.1 Die Klassen ServerSocket und Socket . . . . . . . . 619
18.2.2 Ein einfacher Server . . . . . . . . . • . . . . i . . . 621
18.2.3 Ein einfacher Client. . . . . . . . . . . . . . . 624
18.2.4 Ein Server für mehrere Clients . . . . . . . . 625
18.2.5 Ein Mehrzweck-Client . . . . . 628
18.2.6 Client/Server-Kommunikation über URLs . . . . . . . 631
18.3 Übungsaufgaben . . . . . . . . . . . . . . . v . . . . . 632
19 Lambda-Ausdrücke, Streams und Pipeline-Operationen. . . . . . . . • 637
19.1 Lambda-Ausdrücke . . . . . . . . . . . . . . . ;. . . 637
19.1.1 Lambda-Ausdrücke in Aktion - zwei Beispiele . . . . . 638
19.1.2 Lambda-Ausdrücke im Detail. . i . . . . 641
Inhaltsverzeichnis
15
19.1.3 Lambda-Ausdrücke und funktionale Interfaces. 643
19.1.4 Vordefinierte funktionale Interfaces und Anwendungen auf
Datenstrukturen. 645
19.1.5 Methodenreferenzen als Lambda-Ausdrücke.649
19.1.6 Zugriff auf Variablen aus der Umgebung innerhalb eines
Lambda-Ausdrucks . 652
19.1.7 Übungsaufgaben. 653
19.2 Streams und Pipeline-Operationen. 654
19.2.1 Streams in Aktion.655
19.2.2 Streams und Pipelines im Detail.657
19.2.3 Erzeugen von endlichen und unendlichen Streams.658
19.2.4 Die Stream-API. . 661
19.2.5 Übungsaufgaben. . 664
V Abschluss, Ausblick und Anhang . 667
20 Blick über den Tellerrand . 669
20.1 JShell für kleine Skripte . 670
20.2 Das Java-Modulsystem. 674
20.3 Bühne frei für JavaFX. 681
20.4 Beginn einer neuen Zeitrechnung . . 690
20.5 Webprogrammierung und verteilte Systeme . . 692
20.6 Zu guter Letzt . . . 695
A Der Weg zum guten Programmierer. .697
A.l Die goldenen Regeln der Code-Formatierung.698
A.2 Die goldenen Regeln der Namensgebung. 701
A. 3 Zusammenfassung . 703
B Ohne Werkzeug geht es nicht.705
B. l Die API-Dokumentation zum Nachschlagen . 706
B.2 Die IDE, dein Freund und Helfer. 708
B.3 Alle Versionen stets im Griff. 710
B.4 Testen bitte nicht vergessen. 712
B. 5 Der Automat kann es besser. 714
C Die Klasse iOTools - Tastatureingaben in Java.717
C. l Kurzbeschreibung. 717
C.2 Anwendung der IOTools-Methoden. 718
Glossar . . . . 721
i '
Stichwortverzeichnis. . . . . 741
\ |
any_adam_object | 1 |
author | Ratz, Dietmar Schulmeister-Zimolong, Dennis Seese, Detlef Wiesenberger, Jan 1977- |
author_GND | (DE-588)113296509 (DE-588)1171536925 (DE-588)108918505 (DE-588)1171537255 |
author_facet | Ratz, Dietmar Schulmeister-Zimolong, Dennis Seese, Detlef Wiesenberger, Jan 1977- |
author_role | aut aut aut aut |
author_sort | Ratz, Dietmar |
author_variant | d r dr d s z dsz d s ds j w jw |
building | Verbundindex |
bvnumber | BV044699044 |
classification_rvk | ST 250 |
classification_tum | DAT 362f |
ctrlnum | (OCoLC)1057858410 (DE-599)BVBBV044699044 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 8., aktualisierte Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV044699044</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20231108</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">180104s2018 gw a||| |||| 00||| ger d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783446452121</subfield><subfield code="c">hbk.</subfield><subfield code="9">978-3-446-45212-1</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1057858410</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV044699044</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BY</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-20</subfield><subfield code="a">DE-1102</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-522</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-12</subfield><subfield code="a">DE-1049</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-2070s</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-210</subfield><subfield code="a">DE-1046</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-526</subfield><subfield code="a">DE-29</subfield><subfield code="a">DE-91</subfield><subfield code="a">DE-706</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 362f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Ratz, Dietmar</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)113296509</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Grundkurs Programmieren in Java</subfield><subfield code="c">Dietmar Ratz, Dennis Schulmeister-Zimolong, Detlef Seese, Jan Wiesenberger</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">8., aktualisierte Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">München</subfield><subfield code="b">Hanser</subfield><subfield code="c">[2018]</subfield></datafield><datafield tag="264" ind1=" " ind2="0"><subfield code="c">© 2018</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">758 Seiten</subfield><subfield code="b">Diagramme, Illustrationen</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java Standard Edition 8</subfield><subfield code="0">(DE-588)1049861094</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Java Standard Edition 8</subfield><subfield code="0">(DE-588)1049861094</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Schulmeister-Zimolong, Dennis</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1171536925</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Seese, Detlef</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)108918505</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Wiesenberger, Jan</subfield><subfield code="d">1977-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1171537255</subfield><subfield code="4">aut</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe</subfield><subfield code="z">978-3-446-45384-5</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030095813&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-030095813</subfield></datafield></record></collection> |
genre | (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
id | DE-604.BV044699044 |
illustrated | Illustrated |
indexdate | 2024-09-20T18:00:49Z |
institution | BVB |
isbn | 9783446452121 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-030095813 |
oclc_num | 1057858410 |
open_access_boolean | |
owner | DE-20 DE-1102 DE-739 DE-91G DE-BY-TUM DE-B768 DE-355 DE-BY-UBR DE-522 DE-29T DE-860 DE-859 DE-1050 DE-12 DE-1049 DE-473 DE-BY-UBG DE-M347 DE-2070s DE-Aug4 DE-83 DE-523 DE-19 DE-BY-UBM DE-210 DE-1046 DE-634 DE-11 DE-526 DE-29 DE-91 DE-BY-TUM DE-706 |
owner_facet | DE-20 DE-1102 DE-739 DE-91G DE-BY-TUM DE-B768 DE-355 DE-BY-UBR DE-522 DE-29T DE-860 DE-859 DE-1050 DE-12 DE-1049 DE-473 DE-BY-UBG DE-M347 DE-2070s DE-Aug4 DE-83 DE-523 DE-19 DE-BY-UBM DE-210 DE-1046 DE-634 DE-11 DE-526 DE-29 DE-91 DE-BY-TUM DE-706 |
physical | 758 Seiten Diagramme, Illustrationen |
publishDate | 2018 |
publishDateSearch | 2018 |
publishDateSort | 2018 |
publisher | Hanser |
record_format | marc |
spelling | Ratz, Dietmar Verfasser (DE-588)113296509 aut Grundkurs Programmieren in Java Dietmar Ratz, Dennis Schulmeister-Zimolong, Detlef Seese, Jan Wiesenberger 8., aktualisierte Auflage München Hanser [2018] © 2018 758 Seiten Diagramme, Illustrationen txt rdacontent n rdamedia nc rdacarrier Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Java Standard Edition 8 (DE-588)1049861094 gnd rswk-swf (DE-588)4123623-3 Lehrbuch gnd-content Java Standard Edition 8 (DE-588)1049861094 s DE-604 Java Programmiersprache (DE-588)4401313-9 s Schulmeister-Zimolong, Dennis Verfasser (DE-588)1171536925 aut Seese, Detlef Verfasser (DE-588)108918505 aut Wiesenberger, Jan 1977- Verfasser (DE-588)1171537255 aut Erscheint auch als Online-Ausgabe 978-3-446-45384-5 Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030095813&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Ratz, Dietmar Schulmeister-Zimolong, Dennis Seese, Detlef Wiesenberger, Jan 1977- Grundkurs Programmieren in Java Java Programmiersprache (DE-588)4401313-9 gnd Java Standard Edition 8 (DE-588)1049861094 gnd |
subject_GND | (DE-588)4401313-9 (DE-588)1049861094 (DE-588)4123623-3 |
title | Grundkurs Programmieren in Java |
title_auth | Grundkurs Programmieren in Java |
title_exact_search | Grundkurs Programmieren in Java |
title_full | Grundkurs Programmieren in Java Dietmar Ratz, Dennis Schulmeister-Zimolong, Detlef Seese, Jan Wiesenberger |
title_fullStr | Grundkurs Programmieren in Java Dietmar Ratz, Dennis Schulmeister-Zimolong, Detlef Seese, Jan Wiesenberger |
title_full_unstemmed | Grundkurs Programmieren in Java Dietmar Ratz, Dennis Schulmeister-Zimolong, Detlef Seese, Jan Wiesenberger |
title_short | Grundkurs Programmieren in Java |
title_sort | grundkurs programmieren in java |
topic | Java Programmiersprache (DE-588)4401313-9 gnd Java Standard Edition 8 (DE-588)1049861094 gnd |
topic_facet | Java Programmiersprache Java Standard Edition 8 Lehrbuch |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030095813&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT ratzdietmar grundkursprogrammiereninjava AT schulmeisterzimolongdennis grundkursprogrammiereninjava AT seesedetlef grundkursprogrammiereninjava AT wiesenbergerjan grundkursprogrammiereninjava |