Grundkurs Programmieren in Java 1 - Der Einstieg in Programmierung und Objektorientierung
von: Dietmar Ratz u. a.
Carl Hanser Fachbuchverlag, 2006
ISBN: 9783446408425
Sprache: Deutsch
489 Seiten, Download: 2878 KB
Format: PDF, auch als Online-Lesen
Mehr zum Inhalt
Grundkurs Programmieren in Java 1 - Der Einstieg in Programmierung und Objektorientierung
Inhaltsverzeichnis | 6 | ||
Vorwort | 14 | ||
Kapitel 1 Einleitung | 16 | ||
1.1 Java – mehr als nur kalter Kaffee? | 16 | ||
1.2 Java f ür Anfänger – das Konzept dieses Buches | 17 | ||
1.3 Weitere Infos und Kontakt zu den Autoren | 18 | ||
1.4 Verwendete Schreibweisen | 19 | ||
Kapitel 2 Einige Grundbegriffe aus der Welt des Programmierens | 20 | ||
2.1 Computer, Software, Informatik und das Internet | 20 | ||
2.2 Was heißt Programmieren? | 23 | ||
Teil I Einstieg in das Programmieren in Java | 27 | ||
Kapitel 3 Aller Anfang ist schwer | 29 | ||
3.1 Mein erstes Programm | 29 | ||
3.2 Formeln, Ausdrücke und Anweisungen | 30 | ||
3.3 Zahlenbeispiele | 31 | ||
3.4 Verwendung von Variablen | 32 | ||
3.5 ”Auf den Schirm!“ | 32 | ||
3.6 Das Programmgerüst | 33 | ||
3.7 Eingeben, übersetzen und ausf uhren | 34 | ||
3.8 Übungsaufgaben | 36 | ||
Kapitel 4 Grundlagen der Programmierung in Java | 37 | ||
4.1 Grundelemente eines Java-Programms | 37 | ||
4.1.1 Kommentare | 39 | ||
4.1.2 Bezeichner und Namen | 41 | ||
4.1.3 Literale | 42 | ||
4.1.4 ReservierteW¨ orter, Schlüsselwörter | 43 | ||
4.1.5 Trennzeichen | 43 | ||
4.1.6 Interpunktionszeichen | 44 | ||
4.1.7 Operatorsymbole | 45 | ||
4.1.8 import-Anweisungen | 45 | ||
4.1.9 Zusammenfassung | 46 | ||
4.1.10 Übungsaufgaben | 46 | ||
4.2 Erste Schritte in Java | 47 | ||
4.2.1 Grundstruktur eines Java-Programms | 48 | ||
4.2.2 Ausgaben auf der Konsole | 49 | ||
4.2.3 Eingaben von der Konsole | 51 | ||
4.2.4 Schöner Programmieren in Java | 51 | ||
4.2.5 Zusammenfassung | 52 | ||
4.2.6 Ubungsaufgaben | 53 | ||
4.3 Einfache Datentypen | 53 | ||
4.3.1 Ganzzahlige Datentypen | 53 | ||
4.3.2 Gleitkommatypen | 55 | ||
4.3.3 Der Datentyp char für Zeichen | 57 | ||
4.3.4 Zeichenketten | 58 | ||
4.3.5 Der Datentyp boolean für Wahrheitswerte | 58 | ||
4.3.6 Implizite und explizite Typumwandlungen | 58 | ||
4.3.7 Zusammenfassung | 60 | ||
4.3.8 Übungsaufgaben | 60 | ||
4.4 Der Umgang mit einfachen Datentypen | 61 | ||
4.4.1 Variablen | 62 | ||
4.4.2 Operatoren und Ausdrücke | 65 | ||
4.4.3 Allgemeine Ausdrücke | 75 | ||
4.4.4 Ein- und Ausgabe | 76 | ||
4.4.5 Zusammenfassung | 79 | ||
4.4.6 Übungsaufgaben | 79 | ||
4.5 Anweisungen und Ablaufsteuerung | 82 | ||
4.5.1 Anweisungen | 83 | ||
4.5.2 Blöcke und ihre Struktur | 83 | ||
4.5.3 Entscheidungsanweisung | 84 | ||
4.5.4 Wiederholungsanweisungen, Schleifen | 87 | ||
4.5.5 Sprungbefehle und markierte Anweisungen | 92 | ||
4.5.6 Zusammenfassung | 94 | ||
4.5.7 Übungsaufgaben | 94 | ||
Kapitel 5 Praxisbeispiele | 99 | ||
5.1 Worum geht es in diesem Kapitel? | 99 | ||
5.2 Teilbarkeit zum Ersten | 99 | ||
5.2.1 Aufgabenstellung | 99 | ||
5.2.2 Analyse des Problems | 99 | ||
5.2.3 Algorithmische Beschreibung | 100 | ||
5.2.4 Programmierung in Java | 101 | ||
5.2.5 Vorsicht, Falle! | 102 | ||
5.3 Teilbarkeit zum Zweiten | 103 | ||
5.3.1 Aufgabenstellung | 103 | ||
5.3.2 Analyse des Problems | 103 | ||
5.3.3 Algorithmische Beschreibung | 104 | ||
5.3.4 Programmierung in Java | 104 | ||
5.3.5 Vorsicht, Falle! | 105 | ||
5.3.6 Übungsaufgaben | 106 | ||
5.4 Dreierlei | 107 | ||
5.4.1 Aufgabenstellung | 107 | ||
5.4.2 Analyse des Problems | 108 | ||
5.4.3 Algorithmische Beschreibung | 108 | ||
5.4.4 Programmierung in Java | 108 | ||
5.4.5 Vorsicht, Falle! | 112 | ||
5.4.6 Übungsaufgaben | 112 | ||
Kapitel 6 Referenzdatentypen | 117 | ||
6.1 Felder | 119 | ||
6.1.1 Was sind Felder ? | 122 | ||
6.1.2 Deklaration, Erzeugung und Initialisierung von Feldern | 123 | ||
6.1.3 Felder unbekannter Länge | 126 | ||
6.1.4 Referenzen | 128 | ||
6.1.5 Ein besserer Terminkalender | 133 | ||
6.1.6 Mehrdimensionale Felder | 134 | ||
6.1.7 Mehrdimensionale Felder unterschiedlicher Länge | 138 | ||
6.1.8 Vorsicht, Falle: Kopieren von mehrdimensionalen Feldern | 140 | ||
6.1.9 Vereinfachte for-Schleifen-Notation in Java | 141 | ||
6.1.10 Zusammenfassung | 142 | ||
6.1.11 Übungsaufgaben | 143 | ||
6.2 Klassen | 146 | ||
6.2.1 Was sind Klassen? | 147 | ||
6.2.2 Deklaration und Instantiierung von Klassen | 148 | ||
6.2.3 Komponentenzugriff bei Objekten | 149 | ||
6.2.4 Ein erstes Adressbuch | 150 | ||
6.2.5 Klassen als Referenzdatentyp | 152 | ||
6.2.6 Felder von Klassen | 155 | ||
6.2.7 Vorsicht, Falle: Kopieren von geschachtelten Referenzdatentypen | 158 | ||
6.2.8 Auslagern von Klassen | 159 | ||
6.2.9 Zusammenfassung | 161 | ||
6.2.10 Übungsaufgaben | 161 | ||
Kapitel 7 Methoden, Unterprogramme | 163 | ||
7.1 Methoden | 164 | ||
7.1.1 Was sind Methoden? | 164 | ||
7.1.2 Deklaration von Methoden | 165 | ||
7.1.3 Parameter übergabe und -rückgabe | 166 | ||
7.1.4 Aufruf von Methoden | 168 | ||
7.1.5 Überladen von Methoden | 169 | ||
7.1.6 Variable Argument-Anzahl bei Methoden in Java 5.0 | 171 | ||
7.1.7 Vorsicht, Falle: Referenzen als Parameter | 172 | ||
7.1.8 Sichtbarkeit und Verdecken von Variablen | 174 | ||
7.1.9 Zusammenfassung | 176 | ||
7.2 Rekursiv definierte Methoden | 177 | ||
7.2.1 Motivation | 177 | ||
7.2.2 Das Achtdamenproblem | 179 | ||
7.3 Die Methode main | 187 | ||
7.3.1 Kommandozeilenparameter | 187 | ||
7.3.2 Anwendung der vereinfachten for-Schleifen-Notation in Java 5.0 | 189 | ||
7.3.3 Zusammenfassung | 189 | ||
7.3.4 Übungsaufgaben | 190 | ||
7.4 Methoden aus anderen Klassen aufrufen | 191 | ||
7.4.1 Klassenmethoden | 192 | ||
7.4.2 Die Methoden der Klasse java.lang.Math | 193 | ||
7.4.3 Statischer Import in Java 5.0 | 194 | ||
7.5 Methoden von Objekten aufrufen | 195 | ||
7.5.1 Instanzmethoden | 195 | ||
7.5.2 Die Methoden der Klasse java.lang.String | 196 | ||
7.6 Übungsaufgaben | 198 | ||
Kapitel 8 Praxisbeispiele | 203 | ||
8.1 Mastermind zum Ersten | 203 | ||
8.1.1 Aufgabenstellung | 203 | ||
8.1.2 Analyse des Problems | 204 | ||
8.1.3 Unterteilen einer Zahl | 204 | ||
8.1.4 Gültigkeit einer Zahl | 205 | ||
8.1.5 Finden einer gültigen Zahl | 206 | ||
8.1.6 Anzahl der Treffer | 207 | ||
8.1.7 Ein- und Ausgabe | 208 | ||
8.1.8 Zum Hauptprogramm | 209 | ||
8.1.9 Das komplette Programm im Überblick | 210 | ||
8.2 Mastermind zum Zweiten | 213 | ||
8.2.1 Aufgabenstellung | 213 | ||
8.2.2 Analyse des Problems | 213 | ||
8.2.3 Verwendete Datenstrukturen | 213 | ||
8.2.4 Vergleich der Versuche | 214 | ||
8.2.5 Zum Hauptprogramm | 215 | ||
8.2.6 Das komplette Programm im Überblick | 216 | ||
8.3 Black Jack | 218 | ||
8.3.1 Aufgabenstellung | 218 | ||
8.3.2 Analyse des Problems | 219 | ||
8.3.3 Mischen eines Kartenspiels | 221 | ||
8.3.4 Die Pflichten des Gebers | 221 | ||
8.3.5 Zum Hauptprogramm | 223 | ||
8.3.6 Das komplette Programm im Überblick | 226 | ||
8.3.7 Übungsaufgaben | 229 | ||
Teil II Objektorientiertes Programmieren in Java | 231 | ||
Kapitel 9 Die objektorientierte Philosophie | 235 | ||
9.1 DieWelt, in der wir leben | 235 | ||
9.2 Programmierparadigmen – Objektorientierung im Vergleich | 236 | ||
9.3 Die vier Grundpfeiler objektorientierter Programmierung | 238 | ||
9.3.1 Generalisierung | 239 | ||
9.3.2 Vererbung | 240 | ||
9.3.3 Kapselung | 243 | ||
9.3.4 Polymorphismus | 245 | ||
9.3.5 Weitere wichtige Grundbegriffe | 246 | ||
9.4 Modellbildung – von der realenWelt in den Computer | 247 | ||
9.4.1 Grafisches Modellieren mit UML | 247 | ||
9.4.2 CRC-Karten | 248 | ||
9.4.3 Entwurfsmuster | 248 | ||
9.5 Zusammenfassung | 249 | ||
9.6 Übungsaufgaben | 250 | ||
Kapitel 10 Der grundlegende Umgang mit Klassen | 253 | ||
10.1 Vom Referenzdatentyp zur Objektorientierung | 253 | ||
10.2 Instanzmethoden | 255 | ||
10.2.1 Zugriffsrechte | 255 | ||
10.2.2 Was sind Instanzmethoden? | 256 | ||
10.2.3 Instanzmethoden zur Validierung von Eingaben | 259 | ||
10.2.4 Instanzmethoden als erweiterte Funktionalität | 261 | ||
10.3 Statische Komponenten einer Klasse | 262 | ||
10.3.1 Klassenvariablen und -methoden | 262 | ||
10.3.2 Konstanten | 265 | ||
10.4 Instantiierung und Initialisierung | 268 | ||
10.4.1 Konstruktoren | 268 | ||
10.4.2 Überladen von Konstruktoren | 270 | ||
10.4.3 Der statische Initialisierer | 272 | ||
10.4.4 Der Mechanismus der Objekterzeugung | 275 | ||
10.5 Zusammenfassung | 280 | ||
10.6 Übungsaufgaben | 281 | ||
Kapitel 11 Vererbung und Polymorphismus – der fortgeschrittene Umgang mit Klassen in Java | 301 | ||
11.1 Wozu braucht man Vererbung? | 301 | ||
11.1.1 Aufgabenstellung | 301 | ||
11.1.2 Analyse des Problems | 302 | ||
11.1.3 Ein erster Ansatz | 302 | ||
11.1.4 Eine Klasse für sich | 303 | ||
11.1.5 Stärken der Vererbung | 304 | ||
11.1.6 Übungsaufgaben | 307 | ||
11.2 Die super-Referenz | 309 | ||
11.3 Überschreiben von Methoden und Variablen | 310 | ||
11.4 Die Klasse java.lang.Object | 312 | ||
11.5 Übungsaufgaben | 315 | ||
11.6 Abstrakte Klassen und Interfaces | 316 | ||
11.7 Übungsaufgaben | 319 | ||
11.8 Weiteres zum Thema Objektorientierung | 325 | ||
11.8.1 Erstellen von Paketen | 325 | ||
11.8.2 Zugriffsrechte | 326 | ||
11.8.3 Innere Klassen | 327 | ||
11.8.4 Anonyme Klassen | 332 | ||
11.9 Zusammenfassung | 334 | ||
11.10 Übungsaufgaben | 335 | ||
Kapitel 12 Praxisbeispiele | 347 | ||
12.1 Streng geheim | 347 | ||
12.1.1 Aufgabenstellung | 347 | ||
12.1.2 Analyse des Problems | 348 | ||
12.1.3 Verschlüsselung durch Aufblähen | 349 | ||
12.1.4 XOR-Verschlüsselung | 351 | ||
12.1.5 Ein einfacher Test | 353 | ||
12.1.6 Übungsaufgaben | 355 | ||
12.2 Mastermind zum Dritten | 356 | ||
12.2.1 Aufgabenstellung | 356 | ||
12.2.2 Die Klassen GameModel und GameEngine | 356 | ||
12.2.3 Wir bauen ein Modell | 360 | ||
12.2.4 Programmstart | 364 | ||
12.2.5 Fazit | 365 | ||
12.2.6 Übungsaufgaben | 366 | ||
12.3 Game of Life | 366 | ||
12.3.1 Aufgabenstellung | 366 | ||
12.3.2 Designphase | 367 | ||
12.3.3 Die Klasse Zelle | 370 | ||
12.3.4 Die Klasse Petrischale | 372 | ||
12.3.5 Die Klasse Life | 379 | ||
12.3.6 Fazit | 381 | ||
12.3.7 Übungsaufgaben | 382 | ||
Kapitel 13 Exceptions und Errors | 385 | ||
13.1 Eine Einführung in Exceptions | 386 | ||
13.1.1 Was ist eine Exception? | 386 | ||
13.1.2 Ubungsaufgaben | 388 | ||
13.1.3 Abfangen von Exceptions | 388 | ||
13.1.2 Übungsaufgaben | 388 | ||
13.1.3 Abfangen von Exceptions | 388 | ||
13.1.4 Ein Anwendungsbeispiel | 390 | ||
13.1.5 Die RuntimeException | 393 | ||
13.1.6 Übungsaufgaben | 395 | ||
13.2 Exceptions für Fortgeschrittene | 398 | ||
13.2.1 Definieren eigener Exceptions | 398 | ||
13.2.2 Übungsaufgaben | 400 | ||
13.2.3 Vererbung und Exceptions | 401 | ||
13.2.4 Vorsicht, Falle! | 405 | ||
13.2.5 Der finally-Block | 406 | ||
13.2.6 Die Klassen Throwable und Error | 411 | ||
13.2.7 Zusammenfassung | 413 | ||
13.2.8 Übungsaufgaben | 413 | ||
13.3 Assertions | 414 | ||
13.3.1 Zusicherungen im Programmcode | 414 | ||
13.3.2 Compilieren des Programmcodes | 415 | ||
13.3.3 Ausführen des Programmcodes | 416 | ||
13.3.4 Zusammenfassung | 416 | ||
Kapitel 14 Fortgeschrittene objektorientierte Programmierung in Java 5.0 | 417 | ||
14.1 Aufzählungstypen | 418 | ||
14.1.1 Deklaration eines Aufzählungstyps | 418 | ||
14.1.2 Instanzmethoden der enum-Objekte | 419 | ||
14.1.3 Selbstdefinierte Instanzmethoden für enum-Objekte | 420 | ||
14.1.4 Übungsaufgaben | 421 | ||
14.2 Generische Datentypen | 423 | ||
14.2.1 Generizität in alten Java-Versionen | 424 | ||
14.2.2 Generizität in Java 5.0 | 426 | ||
14.2.3 Einschränkungen der Typ-Parameter | 428 | ||
14.2.4 Wildcards | 430 | ||
14.2.5 Bounded Wildcards | 432 | ||
14.2.6 Generische Methoden | 434 | ||
14.2.7 Ausblick auf Band 2 | 436 | ||
14.2.8 Übungsaufgaben | 436 | ||
Kapitel 15 Zu guter Letzt . . . | 441 | ||
15.1 Collections | 442 | ||
15.2 Sortieren von Feldern | 444 | ||
15.3 Grafische Oberfl¨achen in Java | 447 | ||
Anhang | 453 | ||
Anhang A Der Weg zum guten Programmierer . . | 455 | ||
A.1 Die goldenen Regeln der Code-Formatierung | 456 | ||
A.2 Die goldenen Regeln der Namensgebung | 459 | ||
A.3 Zusammenfassung | 461 | ||
Anhang B Die Klasse IOTools - Tastatureingaben in Java | 465 | ||
B.1 Kurzbeschreibung | 465 | ||
B.2 Anwendung der IOTools-Methoden | 466 | ||
Anhang C Glossar | 469 | ||
Literaturverzeichnis | 479 | ||
Stichwortverzeichnis | 481 | ||
Mehr eBooks bei www.ciando.com | 0 |