Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung Bearbeitet von Dietmar Ratz, Jens Scheffler, Detlef Seese 1. Auflage 2001. Taschenbuch. 463 S. Paperback ISBN 978 3 446 21813 0 Format (B x L): 16,9 x 24,1 cm Gewicht: 874 g Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden > Objektorientierte Programmierung Zu Leseprobe schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, ebooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.
CARL HANSER VERLAG Dietmar Ratz, Jens Scheffler, Detlef Seese Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung 3-446-21813-0 www.hanser.de
Inhaltsverzeichnis Vorwort 15 1 Einleitung 17 1.1 Java mehr als nur kalter Kaffee?... 17 1.2 Java für Anfänger Das Konzept dieses Buches.... 18 1.3 WeitereInfosundKontaktzudenAutoren... 19 1.4 VerwendeteSchreibweisen... 20 2 Einige Grundbegriffe aus der Welt des Programmierens 21 2.1 Computer, Software, Informatik und das Internet... 21 2.2 WasheißtProgrammieren?... 24 I Einstieg in das Programmieren in Java 29 3 Aller Anfang ist schwer 31 3.1 Mein erstes Programm.... 31 3.2 Formeln, Ausdrücke und Anweisungen... 32 3.3 Zahlenbeispiele... 33 3.4 VerwendungvonVariablen... 34 3.5 Auf den Schirm!... 34 3.6 Das Programmgerüst..... 35 3.7 Eingeben, übersetzen und ausführen... 36 3.8 Übungsaufgaben... 38 4 Grundlagen der Programmierung in Java 39 4.1 Grundelemente eines Java-Programms... 39 4.1.1 Kommentare... 41 4.1.2 BezeichnerundNamen... 43 4.1.3 Literale... 44 4.1.4 Reservierte Wörter, Schlüsselwörter... 45 4.1.5 Trennzeichen... 45 4.1.6 Interpunktionszeichen... 47
8 Inhaltsverzeichnis 4.1.7 Operatorsymbole... 47 4.1.8 import-anweisungen... 47 4.1.9 Zusammenfassung... 48 4.1.10 Übungsaufgaben... 49 4.2 ErsteSchritteinJava... 50 4.2.1 GrundstruktureinesJava-Programms... 50 4.2.2 AusgabenaufderKonsole... 51 4.2.3 EingabenvonderKonsole... 53 4.2.4 Schöner Programmieren in Java... 54 4.2.5 Zusammenfassung... 55 4.2.6 Übungsaufgaben... 55 4.3 EinfacheDatentypen... 55 4.3.1 Ganzzahlige Datentypen...... 56 4.3.2 Gleitkommatypen... 57 4.3.3 Der Datentyp char fürzeichen..... 59 4.3.4 Zeichenketten... 60 4.3.5 Der Datentyp boolean fürwahrheitswerte... 60 4.3.6 ImpliziteundexpliziteTypumwandlungen... 61 4.3.7 Zusammenfassung... 62 4.3.8 Übungsaufgaben... 62 4.4 DerUmgangmiteinfachenDatentypen... 63 4.4.1 Variablen... 64 4.4.2 Operatoren und Ausdrücke.... 67 4.4.2.1 ArithmetischeOperatoren... 68 4.4.2.2 Bitoperatoren... 70 4.4.2.3 Zuweisungsoperator... 72 4.4.2.4 Vergleichsoperatoren und Logische Operatoren.. 73 4.4.2.5 Inkrement- und Dekrementoperatoren... 75 4.4.2.6 Priorität und Auswertungsreihenfolge der Operatoren..... 76 4.4.3 Allgemeine Ausdrücke... 77 4.4.4 Ein-undAusgabe... 78 4.4.5 Zusammenfassung... 79 4.4.6 Übungsaufgaben... 80 4.5 AnweisungenundAblaufsteuerung... 83 4.5.1 Anweisungen... 83 4.5.2 Blöcke und ihre Struktur... 84 4.5.3 Entscheidungsanweisung... 84 4.5.3.1 Die if-anweisung... 84 4.5.3.2 Die switch-anweisung.... 86 4.5.4 Wiederholungsanweisungen,Schleifen... 88 4.5.4.1 Die for-anweisung... 88 4.5.4.2 Die while-anweisung... 89 4.5.4.3 Die do-anweisung... 90
Inhaltsverzeichnis 9 4.5.4.4 Unendliche Schleifen... 91 4.5.5 SprungbefehleundmarkierteAnweisungen... 92 4.5.6 Zusammenfassung... 94 4.5.7 Übungsaufgaben... 94 5 Praxisbeispiele 99 5.1 Worum geht es in diesem Kapitel?.... 99 5.2 TeilbarkeitzumErsten... 99 5.2.1 Aufgabenstellung... 99 5.2.2 AnalysedesProblems... 99 5.2.3 AlgorithmischeBeschreibung... 100 5.2.4 ProgrammierunginJava... 101 5.2.5 VorsichtFalle... 102 5.2.6 Übungsaufgaben... 103 5.3 TeilbarkeitzumZweiten... 103 5.3.1 Aufgabenstellung... 103 5.3.2 AnalysedesProblems... 103 5.3.3 AlgorithmischeBeschreibung... 104 5.3.4 ProgrammierunginJava... 104 5.3.5 Vorsicht,Falle!... 105 5.3.6 Übungsaufgaben... 106 5.4 Dreierlei... 107 5.4.1 Aufgabenstellung... 107 5.4.2 AnalysedesProblems... 108 5.4.3 AlgorithmischeBeschreibung... 108 5.4.4 ProgrammierunginJava... 109 5.4.5 VorsichtFalle... 112 5.4.6 Übungsaufgaben... 112 6 Referenzdatentypen 117 6.1 Felder... 119 6.1.1 WassindFelder?... 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 EinbessererTerminkalender... 133 6.1.6 MehrdimensionaleFelder... 134 6.1.7 Mehrdimensionale Felder unterschiedlicher Länge... 138 6.1.8 Vorsicht Falle: Kopieren von mehrdimensionalen Feldern. 140 6.1.9 Zusammenfassung... 141 6.1.10 Übungsaufgaben... 142 6.2 Klassen... 145 6.2.1 WassindKlassen?... 146 6.2.2 DeklarationundInstantiierungvonKlassen... 146
10 Inhaltsverzeichnis 6.2.3 Komponentenzugriff bei Objekten.... 148 6.2.4 EinerstesAdressbuch... 149 6.2.5 KlassenalsReferenzdatentyp... 151 6.2.6 FeldervonKlassen... 154 6.2.7 Vorsicht, Falle: Kopieren von geschachtelten Referenzdatentypen... 157 6.2.8 AuslagernvonKlassen... 158 6.2.9 Zusammenfassung... 160 6.2.10 Übungsaufgaben... 160 7 Unterprogramme, Methoden 163 7.1 Methoden... 164 7.1.1 WassindMethoden?... 164 7.1.2 DeklarationvonMethoden... 165 7.1.3 Parameterübergabe und -rückgabe.... 166 7.1.4 AufrufvonMethoden... 168 7.1.5 Überladen von Methoden... 170 7.1.6 Vorsicht,Falle!... 171 7.1.7 SichtbarkeitundVerdeckenvonVariablen... 174 7.1.8 Zusammenfassung... 175 7.1.9 Übungsaufgaben... 175 7.2 RekursivdefinierteMethoden... 176 7.2.1 Motivation... 176 7.2.2 DasAchtdamenproblem... 179 7.2.2.1 Aufgabenstellung... 179 7.2.2.2 Lösungsidee... 179 7.2.2.3 Erste Vorarbeiten: Die Methoden ausgabe und bedroht... 180 7.2.2.4 DieRekursion... 181 7.2.2.5 Die Lösung.... 184 7.2.3 Zusammenfassung... 186 7.2.4 Übungsaufgaben... 186 7.3 Die Methode main... 187 7.3.1 Zusammenfassung... 189 7.3.2 Übungsaufgaben... 189 7.4 Die Methoden der Klasse java.lang.math... 191 7.5 Die Methoden der Klasse java.lang.string.... 191 7.6 Übungsaufgaben... 194 8 Praxisbeispiele 199 8.1 Mastermind zum Ersten... 199 8.1.1 Aufgabenstellung... 199 8.1.2 AnalysedesProblems... 200 8.1.3 UnterteileneinerZahl... 200
Inhaltsverzeichnis 11 8.1.4 Gültigkeit einer Zahl.... 201 8.1.5 Finden einer gültigen Zahl.... 202 8.1.6 AnzahlderTreffer... 203 8.1.7 Ein-undAusgabe... 204 8.1.8 ZumHauptprogramm... 205 8.1.9 Das komplette Programm im Überblick..... 206 8.2 MastermindzumZweiten... 209 8.2.1 Aufgabenstellung... 209 8.2.2 AnalysedesProblems... 209 8.2.3 VerwendeteDatenstrukturen... 209 8.2.4 VergleichderVersuche... 210 8.2.5 ZumHauptprogramm... 211 8.2.6 Das komplette Programm im Überblick..... 212 8.3 BlackJack... 214 8.3.1 Aufgabenstellung... 214 8.3.2 AnalysedesProblems... 215 8.3.3 MischeneinesKartenspiels... 217 8.3.4 DiePflichtendesGebers... 218 8.3.5 ZumHauptprogramm... 219 8.3.6 Das komplette Programm im Überblick..... 222 8.3.7 Übungsaufgaben... 225 II Objektorientiertes Programmieren in Java 227 9 Die objektorientierte Philosophie 231 9.1 Die Welt, in der wir leben... 231 9.2 Programmierparadigmen Objektorientierung im Vergleich.... 232 9.3 Die vier Grundpfeiler objektorientierter Programmierung...... 234 9.3.1 Generalisierung.... 235 9.3.2 Vererbung... 236 9.3.3 Kapselung... 240 9.3.4 Polymorphismus... 242 9.3.5 WeiterewichtigeGrundbegriffe... 243 9.4 Modellbildung vonderrealenweltindencomputer... 244 9.4.1 Grafisches Modellieren mit UML..... 244 9.4.2 CRC-Karten... 245 9.4.3 Entwurfsmuster... 245 9.5 Zusammenfassung... 246 9.6 Übungsaufgaben... 248 10 Der grundlegende Umgang mit Klassen 251 10.1 Vom Referenzdatentyp zur Objektorientierung..... 251 10.2Instanzmethoden... 253
12 Inhaltsverzeichnis 10.2.1 Zugriffsrechte..... 253 10.2.2 WassindInstanzmethoden?... 254 10.2.3 InstanzmethodenzurValidierungvonEingaben... 257 10.2.4 Instanzmethoden als erweiterte Funktionalität.... 259 10.3StatischeKomponenteneinerKlasse... 260 10.3.1 Klassenvariablenund-methoden... 261 10.3.2 Konstanten... 263 10.4InstantiierungundInitialisierung... 267 10.4.1 Konstruktoren... 267 10.4.2 Überladen von Konstruktoren... 269 10.4.3 DerstatischeInitialisierer... 271 10.4.4 DerMechanismusderObjekterzeugung... 274 10.5Zusammenfassung... 279 10.6 Übungsaufgaben... 280 11Vererbung und Polymorphismus 301 11.1 Wozu braucht man Vererbung?... 301 11.1.1 Aufgabenstellung... 301 11.1.2 AnalysedesProblems... 302 11.1.3 EinersterAnsatz... 302 11.1.4 Eine Klasse für sich... 303 11.1.5 Stärken der Vererbung... 304 11.1.6 Übungsaufgaben... 306 11.2 Die super-referenz..... 308 11.3 Überschreiben von Methoden und Variablen... 309 11.4Die Klasse java.lang.object... 311 11.5 Übungsaufgaben... 314 11.6AbstrakteKlassenundInterfaces... 315 11.7 Übungsaufgaben... 319 11.8WeitereszumThemaObjektorientierung... 324 11.8.1 ErstellenvonPaketen... 324 11.8.2 Zugriffsrechte... 326 11.8.3 InnereKlassen... 326 11.8.4 AnonymeKlassen... 332 11.9Zusammenfassung... 334 11.10Übungsaufgaben... 335 12 Praxisbeispiele 347 12.1 Streng geheim..... 347 12.1.1 Aufgabenstellung... 347 12.1.2 AnalysedesProblems... 348 12.1.3 Verschlüsselung durch Aufblähen.... 349 12.1.4 XOR-Verschlüsselung... 351 12.1.5 EineinfacherTest... 353
Inhaltsverzeichnis 13 12.1.6 Übungsaufgaben... 355 12.2MastermindzumDritten... 356 12.2.1 Aufgabenstellung... 356 12.2.2 Die Klassen GameModel und GameEngine... 356 12.2.3 WirbaueneinModell... 360 12.2.3.1 GrundlegendeDatenstruktur... 360 12.2.3.2 ImplementierungdesInterfaces,Teil1... 361 12.2.3.3 ImplementierungdesInterfaces,Teil2... 363 12.2.4 Programmstart... 365 12.2.5 Fazit... 365 12.2.6 Übungsaufgaben... 366 12.3GameofLife... 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.4.1 Interne Struktur und einfacher Datenzugriff.... 372 12.3.4.2 Erster Konstruktor: Zufällige Belegung der Zellen 374 12.3.4.3 Zweiter Konstruktor: Die neue Generation..... 376 12.3.4.4 Die komplette Klasse im Überblick..... 378 12.3.5 Die Klasse Life... 380 12.3.6 Fazit... 382 12.3.7 Übungsaufgaben... 383 13 Exceptions und Errors 385 13.1 Eine Einführung in Exceptions... 386 13.1.1 WasisteineException?... 386 13.1.2 Übungsaufgaben... 388 13.1.3 AbfangenvonExceptions... 389 13.1.4 EinAnwendungsbeispiel... 390 13.1.5 Die RuntimeException... 393 13.1.6 Übungsaufgaben... 396 13.2 Exceptions für Fortgeschrittene... 398 13.2.1 DefiniereneigenerExceptions... 398 13.2.2 Übungsaufgaben... 400 13.2.3 VererbungundExceptions... 402 13.2.4 Vorsicht,Falle!... 405 13.2.5 Der finally-block.... 407 13.2.6 Die Klassen Throwable und Error... 412 13.2.7 Zusammenfassung... 413 13.2.8 Übungsaufgaben... 414
14 Inhaltsverzeichnis 14 Zu guter Letzt... 417 14.1 Collections... 418 14.2SortierenvonFeldern... 420 14.3 Grafische Oberflächen in Java... 423 A Der Weg zu einem guten Programmierer... 429 A.1 Die goldenen Regeln der Code-Formatierung... 430 A.2 DiegoldenenRegelnderNamensgebung... 433 A.3 Zusammenfassung... 435 B DieIOTools Tastatureingaben in Java 439 B.1 Kurzbeschreibung... 439 B.2 AnwendungderIOTools-Methoden... 440 C Glossar 443 Literaturverzeichnis 453 Stichwortverzeichnis 455