lehrerbibliothek.deDatenschutzerklärung
Programmieren mit Java Eine methodische Einführung
Programmieren mit Java
Eine methodische Einführung




Reinhard Schiedermeier

Pearson
EAN: 9783827371164 (ISBN: 3-8273-7116-3)
452 Seiten, hardcover, 17 x 24cm, Januar, 2005

EUR 39,95
alle Angaben ohne Gewähr

Umschlagtext
Das vorliegende Buch führt in die objektorientierte Programmierung mit Java ab Version 5.0 ein. Dabei beginnt der Autor mit den Grundlagen der Programmierung, erläutert dann wichtige Strukturen und Konzepte der Programmiersprache Java. Er befasst sich mit Vererbung und dem Umgang mit Laufzeitfehlern und stellt Containerdatenstrukturen und Generics vor. Das Buch konzentriert sich auf die für den Studierenden beim Einstieg in das Gebiet der Java-Programmierung relevanten Themen. Der Leser ist nach Lektüre des Buchs in der Lage, zielgerichtet und effizient mit Java zu programmieren und sich selbst weitere Details der Sprache und der umfangreichen Bibliotheken zu erarbeiten. Übungsaufgaben mit unterschiedlichen Schwierigkeitsgraden zu jedem Kapitel helfen dem Leser, erste praktische Erfahrungen zu sammeln und den Lernerfolg zu überprüfen. Ein Testservice für die Lösungen steht auf der Website des Buchs zur Verfügung,



Aus dem Inhalt:

Einführung

Arithmetik und Variablen

Kontrollstrukturen

Klassen

Characters und Strings

Packages

Dokumentation

Vererbung

Assertions and Exceptions

Arrays

Collections

Generics



REINHARD SCHIEDERMEIER ist Professor am Fachbereich Informatik/ Mathematik der Fachhochschule München und hält dort die Einführungsvorlesung zur Programmierung.



Companion Website zum Buch unter www.pearson-studium.de

AUF DER COMPANION WEBSITE:

- Vorlesungsfolien

- Beispielprogramme und zusätzliche Aufgaben

Testservice zum Überprüfen der Lösungen ausgewählter Aufgaben Online-Compiler für kleinere eigene Programme
Rezension
Immer mehr wird Java zur Sprache der Wahl in der Schulinformatik. Auch dies ist ein „Java- Buch“ wobei der Verfasser eigentlich das Programmieren lehrt und die Sprache „nur“ als Mittel zum Zweck verwendet. So wird z.B. auch der Algorithmusbegriff in diesem Buch geklärt.
Der Autor setzt allerdings nicht mit der objektorientierten Programmierung ein, sondern beginnt mit den Grundlagen der algorithmenorientierten Programmierung. (Im Gegensatz zum Buch von David J. Barnes und Michael Kölling aus dem selben Verlag.)
Das Buch ist flüssig geschrieben, ohne dabei an Genauigkeit zu verlieren. Die kurzen Inhaltsangaben am Beginn jedes Kapitels sorgen dafür, dass man nicht die Übersicht verliert, Grafiken helfen den manchmal schwierigen Stoff besser zu verstehen. Am Ende jedes Kapitels finden sich eine Vielzahl von Übungsaufgaben. Die Erklärungen und Beispiele sind oft auch für die schulische Unterrichtssituation geeignet. Die einfacheren Beispiele und Übungen können auch im Unterricht verwendet werden. Auch als Nachschlagewerk ist das Buch geeignet.
Verlagsinfo
Zum Buch:

Das Buch führt den Leser in die objektorientierte Programmierung mit der Sprache Java ein. Dabei werden die Ausdrucksmittel schrittweise von den Grundbausteinen über Kontrollstrukturen und Klassen bis zur Vererbung aufeinander geschichtet. Technische Details stellt der Autor zurück, dafür werden wichtige Zusammenhänge klar hervorgehoben. Der Leser ist nach Lektüre des Buchs in der Lage, sich selbst weitere Details der Programmiersprache Java und der umfangreichen Bibliotheken zu erarbeiten. Das Buch richtet sich an Studienanfänger der Informatik, bietet aber zusätzliche Kapitel zu weiterführenden Themen auf der Companion Website an. Es eignet sich durch die starke Praxisorientierung insbesondere für den Unterricht an Fachhochschulen.


Über den Autor:

Reinhard Schiedermeier ist Professor für Informatik an der Fachhochschule München und bietet dort seit mehreren Jahren die Einführungsvorlesung in die Programmierung mit Java an.
Inhaltsverzeichnis
Kapitel 1 Einführung 1

1.1 Erstes Beispielprogramm . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Programmiersprachen . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Compiler und virtuelle Maschine . . . . . . . . . . . . . . . . . 12
1.4 Java-Quallt.st . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Kapitel 2 Arithmetik und Variablen 23

2.1 Numerische Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 Ausertung arithmetischer Ausdrücke . . . . . . . . . . . . . . 29
2.3 Variablen und Wortzuweisungen . . . . . . . . . . . . . . . . . . 32
2.4 Floatingpoint-Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5 Bibliotheksmethoden . . . . . . . . . . . . . . . . . . . . . . . . 45
2.6 Fin- und Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Kapitel 3 Kontrollstrukturen 57

3.1 Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2 if-Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3 Wahhaftswart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4 Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.5 break und continue . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.6 Gültigkeitsbsreich . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.7 for-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.8 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Kapitel 4 Klassen 103

4.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.2 Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.3 Referenzvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.4 Datenelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

4.5 Methoden . . . . . . . . . . . . . . . . . . . . . . . . .116
4.6 Parameter . . . . . . . . . . . . . . . . . . . . . . . . .123
4.7 Überladen . . . . . . . . . . . . . . . . . . . . . . . . .128
4.8 Konstruktoren . . . . . . . . . . . . . . . . . . . . . . . . .132
4.9 Ergebnisrückgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

4.10 Unveränderliche Klassen . . . . . . . . . . . . . . . . . . . . . . 142
4.11 Datenkapselung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
4.12 Statische Datenelemente . . . . . . . . . . . . . . . . . . . . . 151
4.13 Statische Methoden . . . . . . . . . . . . . . . . . . . . . . . 155
4.14 Enum-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
4.15 Kopieren und Vergleichen . . . . . . . . . . . . . . . . . . . . . . 163
4.16 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168


Kapitel 5 Characters und Strings 177
5.1 javatyp char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
5.2 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
5.3 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

Kapitel 6 Packages 197
6.1 Idee 198
6.2 Umgang mit Packages 202
6.3 Zugriffsschutz 207
6.4 Archivdatelen 208
6.5 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211


Kapitel 7 Dokumentation 213

7.1 Aufbau von Doc-Kommentaren . . . . . . . . . . . . . . . . . . . 215
7.2 javadoc-Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
7.3 Generlerte HTML-Dokumentation 219
7.4 Aufgaben 221

Kapitel 8 Vererbung 223

8.1 Interfaces 224
8.2 Implementlerung von Interfaces 227
8.3 Vererbung konkreter Klassen 241
8.4 Abstrakte Basisklassen 257
8.5 Dynamische Typinformation 260

8.6 Wurzelklasse Object . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.7 Umgang mit Vererbung . . . . . . . . . . . . . . . . . . . . . . . 271
8.8 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

Kapitel 9 Assertions und Exceptions 279

9.1 Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

9.2 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
9.3 Exceptionklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
9.4 Behandeln von Exceptions . . . . . . . . . . . . . . . . . . . . . 302
9.5 Umgang mit Exceptions . . . . . . . . . . . . . . . . . . . . . . . 309
9.6 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

Kapitel 10 Arrays 315

lo.1 Idee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
10.2 Allokieren und Initialisieren . . . . . . . . . . . . . . . . . . . . 318
10.3 Elementzugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
10.4 foreach-ScWeifen . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
10.5 Varargs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
10.6 Geschachtelte Arrays . . . . . . . . . . . . . . . . . . . . . . . . . 327
10.7 Kopieren und Vergleichen . . . . . . . . . . . . . . . . . . . . . . 333
10.8 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
10.9 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342


Kapitel 11 Collections 349

11.1 ArrayList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
11.2 Autoboxing und Wrapperklassen . . . . . . . . . . . . . . . . . . 355
11.3 Aufbau des Collection-Frameworks . . . . . . . . . . . . . . . . 359
11.4 Iteratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
11.5 foreach-Schleifen über Collections . . . . . . . . . . . . . . . . . 366
11.6 Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
11.7 Collection-Algorithmen . . . . . . . . . . . . . . . . . . . . . . . 371
11.8 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
11.9 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378


Kapitel 12 Generics 381
12.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
12.2 Definition und Anwendung . . . . . . . . . . . . . . . . . . . . . . 387
12.3 Wildcardtypen 396
12.4 Type-Erasure und Rawtypes . . . . . . . . . . . . . . . . . . . . 404
12.5 Grenzen generischer Typen . . . . . . . . . . . . . . . . . . . . . 409
12.6 Polymorphe Methoden . . . . . . . . . . . . . . . . . . . . . . . 414
12.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

Anhang A 425

A Reservierte Wörter . . . . . . . . . . . . . . . . . . . . . . . . . . 426
B Operatorentabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
c Primitive Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
D Zeichensatz ISO-Latin-1 . . . . . . . . . . . . . . . . . . . . . . . 432
E Typkompatibilitäten . . . . . . . . . . . . . . . . . . . . . . . . . . 433
F Programmrahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . 434

Register 443