lehrerbibliothek.deDatenschutzerklärung
Grundkurs Programmieren in Java Band 1 <br> Der Einstieg in Programmierung und Objektorientierung  2. Auflage
Grundkurs Programmieren in Java
Band 1
Der Einstieg in Programmierung und Objektorientierung


2. Auflage

Dietmar Ratz, Jens Scheffler, Detlef Seese

Carl Hanser Verlag
EAN: 9783446228788 (ISBN: 3-446-22878-0)
479 Seiten, paperback, 17 x 24cm, September, 2004, 2., neu bearbeitete Auflage

EUR 29,90
alle Angaben ohne Gewähr

Umschlagtext
Der erfolgreiche Einstieg in Programmierung und Objektorientierung am Beispiel von Java



Dieses Lehrbuch vermittelt die Grundlagen der Programmierung auf Basis der Programmiersprache Java, wie sie in Einführungsvorlesungen an Hochschulen gelehrt werden.



Der erste von zwei Bänden konzentriert sich auf die Grundlagen der Programmierung und der Objektorientierung. Nach den elementaren Sprachelementen, Datentypen und Kontrollstrukturen behandeln die Autoren die Themen Referenzdatentypen (Felder, Klassen) und Methoden. Danach folgen die Grundzüge der Objektorientierung (Klassen, Vererbung, Polymorphismus, Modellierung mit der UML) und die Ausnahmebehandlung.



Alle Themenkomplexe werden anhand von Praxisbeispielen illustriert. Jedes Kapitel enthält Übungsaufgaben.





Die Highlights:

- Setzt wirklich keine Programmierkenntnisse voraus.

- Mit zahlreichen Übungsaufgaben und Praxisbeispielen

- Berücksichtigt den Sprachstandard 1.4 und gibt einen Ausblick auf Java 5.0.

- "Die goldenen Regeln der Code-Formatierung" zum Heraustrennen und überall hin Mitnehmen...





Die Zielgruppe:

Studenten und Programmiereinsteiger





Im Internet:

Unter www.grundkurs-java.de finden Sie:

- Links zu Software und Tools

- Alle Beispiel-Programme

- Zusätzliche Übungen

- Lösungen zu allen Übungsaufgaben

- Aktualisierungen und mehr





Sie wollen mehr?

Lesen Sie Band 2 "Programmierung kommerzieller Systeme" ISBN 3-446-21814-9
Rezension
"Grundkurs Programmieren in Java" ist ein Buch für alle Einsteiger, die diese Programmiersprache für das Internet erlernen möchten. Das schöne ist, es setzt überhaupt keine Vorkenntnisse voraus. Auf didaktisch hervorragende Weise und mit gut ausgewählten Praxisbeispielen und Übungsaufgaben bekommt man Java näher gebracht. Somit schafft dieses Buch einen leichten Zugang zum Programmieren.

Erwin Ferrao, lehrerbibliothek.de
Verlagsinfo
Das Lehrbuch vermittelt die Grundlagen der Programmierung auf Basis der Programmiersprache Java. Es richtet sich an Studenten und alle Programmiereinsteiger.

Nach den elementaren Schritten der Programmierung erläutern die Autoren in Band 1 die grundlegenden Strukturen von Java. Darauf folgen die Grundzüge der Objektorientierung. Alle Themenkomplexe werden anhand von Praxisbeispielen mit Übungsaufgaben illustriert.

Im Internet: Links zu Software und Tools, zusätzliche Übungen mit Lösungshinweisen und mehr
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 Weitere Infos und Kontakt zu den Autoren 19

1.4 Verwendete Schreibweisen 20


2 Einige Grundbegriffe aus der Welt des Programmierens 21

2.1 Computer, Software, Informatik und das Internet 21

2.2 Was heißt Programmieren? 24



I Einstieg in das Programmieren in Java 29


3 Aller Anfang ist schwer
31

3.1 Mein erstes Programm 31

3.2 Formeln, Ausdrucke und Anweisungen 32

3.3 Zahlenbeispiele 33

3.4 Verwendung von Variablen 34

3.5 "Auf den Schirm!" 34

3.6 Das Programmgerüst 35

3.7 Eingeben, übersetzen und ausf uhren 36

3.8 Ubungsaufgaben 38


4 Grundlagen der Programmierung in Java 39

4.1 Grundelemente eines Java-Programms 39
4.1.1 Kommentare 41
4.1.2 Bezeichner und Namen 43
4.1.3 Literale 44
4.1.4 Reservierte Worter, Schl usselw orter 45
4.1.5 Trennzeichen 45
4.1.6 Interpunktionszeichen 46
4.1.7 Operatorsymbole 47
4.1.8 import-Anweisungen 47
4.1.9 Zusammenfassung 48
4.1.10 Ubungsaufgaben 48

4.2 Erste Schritte in Java 49
4.2.1 Grundstruktur eines Java-Programms 50
4.2.2 Ausgaben auf der Konsole 51
4.2.3 Eingaben von der Konsole 53
4.2.4 Schoner Programmieren in Java 53
4.2.5 Zusammenfassung 54
4.2.6 Ubungsaufgaben 55

4.3 Einfache Datentypen 55
4.3.1 Ganzzahlige Datentypen 56
4.3.2 Gleitkommatypen 57
4.3.3 Der Datentyp char für Zeichen 59
4.3.4 Zeichenketten 60
4.3.5 Der Datentyp boolean für Wahrheitswerte 60
4.3.6 Implizite und explizite Typumwandlungen 60
4.3.7 Zusammenfassung 62
4.3.8 Ubungsaufgaben 62

4.4 Der Umgang mit einfachen Datentypen 63
4.4.1 Variablen 64
4.4.2 Operatoren und Ausdrucke 67
4.4.2.1 Arithmetische Operatoren 68
4.4.2.2 Bitoperatoren 70
4.4.2.3 Zuweisungsoperator 72
4.4.2.4 Vergleichsoperatoren und Logische Operatoren 74
4.4.2.5 Inkrement- und Dekrementoperatoren 75
4.4.2.6 Priorität und Auswertungsreihenfolge der Opera­toren 76
4.4.3 Allgemeine Ausdrucke 77
4.4.4 Ein- und Ausgabe 78
4.4.5 Zusammenfassung 80
4.4.6 Ubungsaufgaben 80

4.5 Anweisungen und Ablaufsteuerung 83
4.5.1 Anweisungen 84
4.5.2 Blocke und ihre Struktur 84
4.5.3 Entscheidungsanweisung 85
4.5.3.1 Die if-Anweisung 85
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
4.5.4.4 Endlosschleifen 91
4.5.5 Sprungbefehle und markierte Anweisungen 92
4.5.6 Zusammenfassung 94
4.5.7 Ubungsaufgaben 94


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.2.6 Ubungsaufgaben 103

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 Ubungsaufgaben 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 Ubungsaufgaben 112


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 Lange 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 Lange 138
6.1.8 Vorsicht, Falle: Kopieren von mehrdimensionalen Feldern 140
6.1.9 Zusammenfassung 141
6.1.10 Ubungsaufgaben 141

6.2 Klassen 144
6.2.1 Was sind Klassen? 145
6.2.2 Deklaration und Instantiierung von Klassen 146
6.2.3 Komponentenzugriff bei Objekten 147
6.2.4 Ein erstes Adressbuch 148
6.2.5 Klassen als Referenzdatentyp 150
6.2.6 Felder von Klassen 153
6.2.7 Vorsicht, Falle: Kopieren von geschachtelten Referenzdaten­typen 156
6.2.8 Auslagern von Klassen 157
6.2.9 Zusammenfassung 159
6.2.10 Ubungsaufgaben 160


7 Unterprogramme, Methoden 161

7.1 Methoden 162
7.1.1 Was sind Methoden? 162
7.1.2 Deklaration von Methoden 163
7.1.3 Parameterübergabe und -rückgabe 164
7.1.4 Aufruf von Methoden 166
7.1.5 Überladen von Methoden 167
7.1.6 Vorsicht, Falle! 169
7.1.7 Sichtbarkeit und Verdecken von Variablen 171
7.1.8 Zusammenfassung 173
7.1.9 Ubungsaufgaben 173

7.2 Rekursiv definierte Methoden 174
7.2.1 Motivation 174
7.2.2 Das Achtdamenproblem 177
7.2.2.1 Aufgabenstellung 177
7.2.2.2 Losungsidee 177
7.2.2.3 Erste Vorarbeiten: Die Methoden ausgabe und bedroht 177
7.2.2.4 Die Rekursion 179
7.2.2.5 Die Losung 182
7.2.3 Zusammenfassung 184
7.2.4 Ubungsaufgaben 184

7.3 Die Methode main 184
7.3.1 Zusammenfassung 186
7.3.2 Ubungsaufgaben 187

7.4 Methoden aus anderen Klassen aufrufen 188
7.4.1 Klassenmethoden 189
7.4.2 Die Methoden der Klasse java. lang. Math 190

7.5 Methoden von Objekten aufrufen 191
7.5.1 Instanzmethoden 191
7.5.2 Die Methoden der Klasse java. lang. String 192

7.6 Ubungsaufgaben 195


8 Praxisbeispiele 201

8.1 Mastermind zum Ersten 201
8.1.1 Aufgabenstellung 201
8.1.2 Analyse des Problems 202
8.1.3 Unterteilen einer Zahl 202
8.1.4 Gültigkeit einer Zahl 203
8.1.5 Finden einer gültigen Zahl 204
8.1.6 Anzahl der Treffer 205
8.1.7 Ein- und Ausgabe 206
8.1.8 Zum Hauptprogramm 207
8.1.9 Das komplette Programm im Uberblick 208

8.2 Mastermind zum Zweiten 211
8.2.1 Aufgabenstellung 211
8.2.2 Analyse des Problems 211
8.2.3 Verwendete Datenstrukturen 211
8.2.4 Vergleich der Versuche 212
8.2.5 Zum Hauptprogramm 213
8.2.6 Das komplette Programm im Uberblick 214

8.3 BlackJack 216
8.3.1 Aufgabenstellung 216
8.3.2 Analyse des Problems 217
8.3.3 Mischen eines Kartenspiels 219
8.3.4 Die Pflichten des Gebers 219
8.3.5 Zum Hauptprogramm 221
8.3.6 Das komplette Programm im Uberblick 224
8.3.7 Ubungsaufgaben 227



II Objektorientiertes Programmieren in Java 229


9 Die objektorientierte Philosophie 233

9.1 Die Welt, in der wir leben 233

9.2 Programmierparadigmen - Objektorientierung im Vergleich 234

9.3 Die vier Grundpfeiler objektorientierter Programmierung 236
9.3.1 Generalisierung 237
9.3.2 Vererbung 238
9.3.3 Kapselung 241
9.3.4 Polymorphismus 243
9.3.5 Weitere wichtige Grundbegriffe 244

9.4 Modellbildung - von der realen Welt in den Computer 245
9.4.1 Grafisches Modellieren mit UML 245
9.4.2 CRC-Karten 246
9.4.3 Entwurfsmuster 246

9.5 Zusammenfassung 247

9.6 Ubungsaufgaben 248


10 Der grundlegende Umgang mit Klassen 251

10.1 Vom Referenzdatentyp zur Objektorientierung 251

10.2 Instanzmethoden 253
10.2.1 Zugriffsrechte 253
10.2.2 Was sind Instanzmethoden? 254
10.2.3 Instanzmethoden zur Validierung von Eingaben 257
10.2.4 Instanzmethoden als erweiterte Funktionalitat 259

10.3 Statische Komponenten einer Klasse 260
10.3.1 Klassenvariablen und -methoden 260
10.3.2 Konstanten 263

10.4 Instantiierung und Initialisierung 266
10.4.1 Konstruktoren 266
10.4.2 Überladen von Konstruktoren 268
10.4.3 Der statische Initialisierer 270
10.4.4 Der Mechanismus der Objekterzeugung 273

10.5 Zusammenfassung 278

10.6 Ubungsaufgaben 279


11 Vererbung und Polymorphismus 299

11.1 Wozu braucht man Vererbung? 299
11.1.1 Aufgabenstellung 299
11.1.2 Analyse des Problems 300
11.1.3 Ein erster Ansatz 300
11.1.4 Eine Klasse für sich 301
11.1.5 Starken der Vererbung 302
11.1.6 Ubungsaufgaben 305

11.2 Die super-Referenz 307

11.3 Überschreiben von Methoden und Variablen 308

11.4 Die Klasse java. lang.Object 310

11.5 Ubungsaufgaben 313

11.6 Abstrakte Klassen und Interfaces 314

11.7 Ubungsaufgaben 317

11.8 Weiteres zum Thema Objektorientierung 323
11.8.1 Erstellen von Paketen 323
11.8.2 Zugriffsrechte 324
11.8.3 Innere Klassen 325
11.8.4 Anonyme Klassen 330

11.9 Zusammenfassung 332

11.10 Übungsaufgaben 333


12 Praxisbeispiele 345

12.1 Streng geheim 345
12.1.1 Aufgabenstellung 345
12.1.2 Analyse des Problems 346
12.1.3 Verschlüsselung durch Aufbl ahen 347
12.1.4 XOR-Verschlüsselung 349
12.1.5 Ein einfacher Test 351
12.1.6 Ubungsaufgaben 353

12.2 Mastermind zum Dritten 354
12.2.1 Aufgabenstellung 354
12.2.2 Die Klassen GameModel und GameEngine 354
12.2.3 Wir bauen ein Modell 358
12.2.3.1 Grundlegende Datenstruktur 358
12.2.3.2 Implementierung des Interfaces, Teil 1 359
12.2.3.3 Implementierung des Interfaces, Teil 2 360
12.2.4 Programmstart 362
12.2.5 Fazit 363
12.2.6 Ubungsaufgaben 364

12.3 Game of Life 364
12.3.1 Aufgabenstellung 364
12.3.2 Designphase 365
12.3.3 Die Klasse Zelle 368
12.3.4 Die Klasse Petrischale 370
12.3.4.1 Interne Struktur und einfacher Datenzugriff 370
12.3.4.2 Erster Konstruktor: Zufallige Belegung der Zellen 371
12.3.4.3 Zweiter Konstruktor: Die neue Generation 374
12.3.4.4 Die komplette Klasse im Uberblick 375
12.3.5 Die Klasse Life 377
12.3.6 Fazit 379
12.3.7 Ubungsaufgaben 380


13 Exceptions und Errors 383

13.1 Eine Einfuhrung in Exceptions 384
13.1.1 Was ist eine Exception? 384
13.1.2 Ubungsaufgaben 386
13.1.3 Abfangen von Exceptions 386
13.1.4 Ein Anwendungsbeispiel 388
13.1.5 Die RuntimeException 391
13.1.6 Ubungsaufgaben 393

13.2 Exceptions für Fortgeschrittene 396
13.2.1 Definieren eigener Exceptions 396
13.2.2 Ubungsaufgaben 398
13.2.3 Vererbung und Exceptions 399
13.2.4 Vorsicht, Falle! 403
13.2.5 Der finally-Block 404
13.2.6 Die Klassen Throwable und Error 409
13.2.7 Zusammenfassung 411
13.2.8 Ubungsaufgaben 411

13.3 Assertions 412
13.3.1 Zusicherungen im Programmcode 412
13.3.2 Compilieren des Programmcodes 413
13.3.3 Ausfuhren des Programmcodes 414
13.3.4 Zusammenfassung 414


14 Zu guter Letzt 415

14.1 Collections 416

14.2 Sortieren von Feldern 418

14.3 Grafische Oberflachen in Java 421


A Der Weg zum guten Programmierer 429

A.1 Die goldenen Regeln der Code-Formatierung 430

A.2 Die goldenen Regeln der Namensgebung 433

A.3 Zusammenfassung 435


B Die IOTools-Tastatureingaben in Java 439

B.1 Kurzbeschreibung 439

B.2 Anwendung der IOTools-Methoden 440


C Einige Neuerungen in Java 5.0 443

C.1 Vereinfachte Schleifen-Notation 444

C.2 Variable Argument-Anzahl bei Methoden 445

C.3 Formatierte Ausgabe 446

C.4 Vereinfachte Eingabe 446

C.5 Statische Importe 447

C.6 Aufzahlungstypen 448

C.7 Generische Datentypen 451

C.8 Automatische Typwandlung für die Wrapper-Klassen 457


D Glossar 459


Literaturverzeichnis 469

Stichwortverzeichnis 471