lehrerbibliothek.deDatenschutzerklärung
Java lernen mit BlueJ Eine Einführung in die Objektorientierte Programmierung mit Java
Java lernen mit BlueJ
Eine Einführung in die Objektorientierte Programmierung mit Java




David J. Barnes, Michael Kölling

Pearson
EAN: 9783868940015 (ISBN: 3-86894-001-4)
608 Seiten, 17 x 24cm, Februar, 2009

EUR 39,95
alle Angaben ohne Gewähr

Umschlagtext
Java lernen mit BlueJ

Das vorliegende Buch -eines der erfolgreichsten auf dem Markt zu diesem Thema - führt Programmieranfänger in die objektorientierte Programmierung mit Java ein und ist das erste Lehrbuch, das BlueJ vollständig in den didaktischen Aufbau integriert. Eigens für die Lehre entwickelt, ermöglicht BlueJ den interaktiven Umgang mit Objekten und visualisiert die Klassenstruktur von Java-Projekten. Die Integration von BlueJ führt dazu, dass Objekte und Klassen von der ersten Seite an Schritt für Schritt thematisiert werden (»Objects First«). Die Autoren führen außerdem durchgängig in Rahmen von Projekten in neue Themen ein und liefern zu allen wichtigen Aspekten Übungen, die dem Leser helfen, den Lernerfolg zu überprüfen. Für die vorliegende vierte Auflage wurde das Buch erneut um viele Übungen und Beispiele ergänzt.

Aus dem Inhalt:

* Objekte und Klassen

* Klassendefinitionen

* Objektinteraktion, Objektsammlungen

* Benutzung von Bibliotheksklassen

* Vermeiden von Fehlern, Fehlerbehandlung

* Klassenentwurf

* Vererbung

* Grafische Benutzungsoberflächen (GUIs)

* Entwurf von Anwendungen

David J. Barnes unterrichtet Informatik an der University of Kent in Canterbury und ist Experte für objektorientierte Programmierung.

Michael Kölling ist einer der Entwickler von BlueJ. Er lehrt an der University of Kent in Canterbury.

Fachlektor Axel Schmolitzky hat das Buch aus dem Englischen übersetzt. Er ist Dozent im Arbeitsbereich Softwaretechnik an der Universität Hamburg und hat etliche Jahre Erfahrung in der einführenden Programmierausbildung.



AUF DER CD-ROM:

* Alle Projekte, die im Buch verwendet werden

* Link zur aktuellen BlueJ Version

* BlueJ Tutorial

* BlueJ Reference Manual

* Java 6 Documentation

* Java 6 SDK für Mac OS X, Linux, Windows und Solaris

AUF DER COMPANION WEBSITE:

Für Dozenten

- Foliensätze und weitere Unterrichtsmaterialien für Dozenten

Für Studenten

- Lösungen zu den einzelnen Kapiteln mit Listings

- Links
Rezension
Einführung ins Programmieren - das geschah früher indem man von den kleinsten Einheiten ausging. Einzelne Befehle, wurden "zusammengesetzt", Kontrollstrukturen kamen dazu, wurden zu Prozeduren zusammengefasst und zuletzt - als Krönung des Ganzen - wurden Prozeduren und Daten zu Objekten verbunden. Seit aber die Objektorientierung in vielen Bereichen zu dem Paradigma (nicht nur) der Schulinformatik geworden ist, heißt es "Objects First!" Das heißt, man beginnt mit Klassen und Objekten und erschließt die Programmierung von dort aus. Zu diesem Ansatz gehört auch die Programmierumgebung BlueJ, die es ermöglicht direkt mit den Objekten umzugehen, auch mit Ihnen zu spielen, was auch einen spielerischen Einstieg in die Programmierung unterstützt.
Anhand kleiner Projekte werden die Konzepte der Objektorientierten Programmierung erläutert. Dabei geht es, ganz besonders in den ersten Kapiteln, primär um die Konzepte der objektorientierten Programmierung, erst in zweiter Linie um die Realisierung der Ideen mit Hilfe von Java. Der Untertitel des Buchs (Einführung in die Objektorientierte Programmierung) ist in dieser Hinsicht aussagekräftiger als der eigentliche Buchtitel.
Wie bei Pearson üblich, wird viel Wert auf den didaktischen Aufbau des Buches gelegt. So gehören gut gestaltete Diagramme, Aufgaben zur Weiterarbeit, Zusammenfassungen ... zu jedem Kapitel.
Volker Pfueller, Lehrerbibliothek.de
Verlagsinfo
Das vorliegende Buch - eines der erfolgreichsten auf dem Markt zu diesem Thema - führt Programmieranfänger in die objektorientierte Programmierung mit Java ein und ist das erste Lehrbuch, das BlueJ vollständig in den didaktischen Aufbau integriert. Eigens für die Lehre entwickelt, ermöglicht BlueJ den interaktiven Umgang mit Objekten und visualisiert die Klassenstruktur von Java-Projekten. Die Integration von BlueJ führt dazu, dass Objekte und Klassen von der ersten Seite an Schritt für Schritt thematisiert werden (»Objects First«). Die Autoren führen außerdem durchgängig in Rahmen von Projekten in neue Themen ein und liefern zu allen wichtigen Aspekten Übungen, die dem Leser helfen, den Lernerfolg zu überprüfen. Für die vorliegende vierte Auflage wurde das Buch erneut um viele Übungen und Beispiele ergänzt.
Aus dem Inhalt:
* Objekte und Klassen
* Klassendefinitionen
* Objektinteraktion, Objektsammlungen
* Benutzung von Bibliotheksklassen
* Vermeiden von Fehlern, Fehlerbehandlung
* Klassenentwurf
* Vererbung
* Grafische Benutzungsoberflächen (GUIs)
* Entwurf von Anwendungen
AUF DER COMPANION WEBSITE:
Für Dozenten
Foliensätze und weitere Unterrichtsmaterialien für Dozenten
Für Studenten
Lösungen zu den einzelnen Kapiteln

AUF DER CD-ROM:
* Alle Projekte, die im Buch verwendet werden
* Link zur aktuellen BlueJ Version
* BlueJ Tutorial
* BlueJ Reference Manual
* Java 6 Documentation
* Java 6 SDK für Mac OS X, Linux, Windows und Solaris
Inhaltsverzeichnis
Vorwort von James Gosling, Sun Microsystems 15
Vorwort an Kursleiter 16
Vorwort zur vierten deutschen Ausgabe 24
Projekte, die in diesem Buch detailliert besprochen werden 25
Danksagungen 27
Teil 1 Grundlagen der Objektorientierung 29
Kapitel 1 Objekte und Klassen 31
1.1 Objekte und Klassen 31
1.2 Instanzen erzeugen 32
1.3 Methoden aufrufen 33
1.4 Parameter 34
1.5 Datentypen 35
1.6 Eine Klasse, viele Instanzen 37
1.7 Zustand 37
1.8 Das Innenleben eines Objekts 38
1.9 Objektinteraktion 40
1.10 Quelltext 41
1.11 Ein weiteres Beispiel 43
1.12 Aufrufergebnisse 43
1.13 Objekte als Parameter 44
1.14 Zusammenfassung 46
Kapitel 2 Klassendefinitionen 49
2.1 Ticketautomaten 49
2.2 Eine Klassendefinition untersuchen 51
2.3 Datenfelder, Konstruktoren und Methoden 53
2.4 Datenübergabe mit Parametern 59
2.5 Zuweisungen 61
2.6 Sondierende Methoden 62
2.7 Verändernde Methoden 64
2.8 Ausgaben in Methoden 66
2.9 Zusammenfassung des naiven Ticketautomaten 69
2.10 Bewertung des Entwurfs des naiven Ticketautomaten 70
2.11 Entscheidungen treffen: die bedingte Anweisung 73
2.12 Ein weiteres Beispiel für eine bedingte Anweisung 74
2.13 Lokale Variablen 76
2.14 Datenfelder, Parameter und lokale Variablen 77
2.15 Zusammenfassung des besseren Ticketautomaten 79
2.16 Übungen zur Selbstüberprüfung 79
2.17 Vertrautes neu betrachtet 81
2.18 Ausdrücke testen: die Direkteingabe 84
2.19 Zusammenfassung 85
Kapitel 3 Objektinteraktion 91
3.1 Das Uhren-Beispiel 91
3.2 Abstraktion und Modularisierung 92
3.3 Abstraktion in Software 93
3.4 Modularisierung im Uhren-Beispiel 94
3.5 Implementierung der Uhrenanzeige 94
3.6 Klassendiagramme und Objektdiagramme 95
3.7 Primitive Typen und Objekttypen 99
3.8 Der Quelltext im Projekt Zeitanzeige 99
3.9 Objekte erzeugen Objekte 107
3.10 Mehrere Konstruktoren 109
3.11 Methodenaufrufe 110
3.12 Ein weiteres Beispiel für Objektinteraktion 113
3.13 Die Benutzung eines Debuggers 117
3.14 Mehr zu Methodenaufrufen 122
3.15 Zusammenfassung 123
Kapitel 4 Objektsammlungen 125
4.1 Objektsammlungen mit flexibler Größe 125
4.2 Ein persönliches Notizbuch 126
4.3 Ein erster Blick auf Bibliotheksklassen 126
4.4 Objektstrukturen mit Sammlungen 129
4.5 Generische Klassen 130
4.6 Nummerierung in Sammlungen 131
4.7 Elemente aus einer Sammlung entfernen 133
4.8 Komplette Sammlungen verarbeiten 134
4.9 Zusammenfassung des Notizbuch-Beispiels 144
4.10 Ein weiteres Beispiel: ein Auktionssystem 145
4.11 Zusammenfassung: Sammlungen mit flexibler Größe 153
4.12 Sammlungen mit fester Größe 153
4.13 Zusammenfassung 167
Kapitel 5 Bibliotheksklassen nutzen 169
5.1 Die Dokumentation der Bibliotheksklassen 170
5.2 Das Kundendienstsystem 171
5.3 Die Klassendokumentation lesen 177
5.4 Zufälliges Verhalten einbringen 183
5.5 Pakete und Importe 189
5.6 Benutzung von Map-Klassen für Abbildungen 190
5.7 Der Umgang mit Mengen 195
5.8 Zeichenketten zerlegen 196
5.9 Abschluss des Kundendienstsystems 198
5.10 Die Klassendokumentation schreiben 200
5.11 Öffentliche und private Eigenschaften 203
5.12 Klassen über ihre Schnittstelle verstehen 206
5.13 Klassenvariablen und Konstanten 209
5.14 Zusammenfassung 211
Kapitel 6 Fehler vermeiden 215
6.1 Einführung 215
6.2 Testen und Fehlerbeseitigung 216
6.3 Modultests in BlueJ 217
6.4 Tests automatisieren 223
6.5 Modularisierung und Schnittstellen 233
6.6 Ein Szenario für Fehlerbeseitigung 235
6.7 Kommentierung und Programmierstil 236
6.8 Manuelle Ausführung 237
6.9 Ausgabeanweisungen 243
6.10 Die Wahl der richtigen Teststrategie 246
6.11 Debugger 247
6.12 Techniken umsetzen 248
6.13 Zusammenfassung 248
Kapitel 7 Klassenentwurf 251
7.1 Einführung 252
7.2 Die Welt von Zuul 253
7.3 Kopplung und Kohäsion 255
7.4 Code-Duplizierung 257
7.5 Erweiterungen für Zuul 260
7.6 Kopplung 263
7.7 Entwurf nach Zuständigkeiten 269
7.8 Änderungen lokal halten 272
7.9 Implizite Kopplung 272
7.10 Vorausdenken 276
7.11 Kohäsion 277
7.12 Refactoring 281
7.13 Refactoring für Sprachunabhängigkeit 286
7.14 Entwurfsregeln 290
7.15 Programmausführung ohne BlueJ 291
7.16 Zusammenfassung 293
Teil 2 Anwendungsstrukturen 297
Kapitel 8 Bessere Struktur durch Vererbung 299
8.1 DoME 299
8.2 Einsatz von Vererbung 309
8.3 Vererbungshierarchien 311
8.4 Vererbung in Java 312
8.5 Weitere Medien für DoME 316
8.6 Vorteile durch Vererbung (bis hierher) 319
8.7 Subtyping 320
8.8 Die Klasse Object 326
8.9 Autoboxing und Wrapper-Klassen 328
8.10 Die Hierarchie der Sammlungstypen 329
8.11 Zusammenfassung 329
Kapitel 9 Mehr über Vererbung 333
9.1 Das Problem: die Methode zum Ausgeben 333
9.2 Statischer und dynamischer Typ 335
9.3 Überschreiben von Methoden 338
9.4 Dynamische Methodensuche 340
9.5 super-Aufrufe in Methoden 343
9.6 Methoden-Polymorphie 344
9.7 Methoden aus Object: toString 344
9.8 Objektgleichheit: equals und hashCode 347
9.9 Der Zugriff über protected 350
9.10 Der Operator instanceof 352
9.11 Ein weiteres Beispiel für Vererbung mit Überschreiben 353
9.12 Zusammenfassung 356
Kapitel 10 Weitere Techniken zur Abstraktion 359
10.1 Simulationen 359
10.2 Die Füchse-und-Hasen-Simulation 360
10.3 Abstrakte Klassen 376
10.4 Weitere abstrakte Methoden 383
10.5 Multiple Vererbung 385
10.6 Interfaces 389
10.7 Zusammenfassung von Vererbung 396
10.8 Zusammenfassung 396
Kapitel 11 Grafische Benutzungsoberflächen 399
11.1 Einführung 399
11.2 Komponenten, Layout und Ereignisbehandlung 400
11.3 AWT und Swing 401
11.4 Das Beispiel: ein Bildbetrachter 402
11.5 Bildbetrachter 1.0: die erste komplette Version 416
11.6 Bildbetrachter 2.0: die Programmstruktur verbessern 431
11.7 Bildbetrachter 3.0: weitere GUI-Komponenten 436
11.8 Zusätzliche Erweiterungen 441
11.9 Ein weiteres Beispiel: der Sound-Player 443
11.10 Zusammenfassung 446
Kapitel 12 Fehlerbehandlung 449
12.1 Das Adressbuch-Projekt 450
12.2 Defensive Programmierung 454
12.3 Fehlermeldungen durch den Dienstleister 457
12.4 Prinzipien der Ausnahmebehandlung 461
12.5 Die Behandlung von Exceptions 468
12.6 Neue Exception-Klassen definieren 475
12.7 Die Verwendung von Zusicherungen 476
12.8 Wiederaufsetzen und Fehlervermeidung 480
12.9 Dateibasierte Ein- und Ausgabe 483
12.10 Zusammenfassung 493
Kapitel 13 Entwurf von Anwendungen 495
13.1 Analyse und Entwurf 495
13.2 Klassenentwurf 503
13.3 Dokumentation 505
13.4 Kooperation 506
13.5 Prototyping 506
13.6 Softwarewachstum 507
13.7 Der Einsatz von Entwurfsmustern 509
13.8 Zusammenfassung 516
Kapitel 14 Eine Fallstudie 519
14.1 Die Fallstudie 519
14.2 Analyse und Entwurf 520
14.3 Klassenentwurf 524
14.4 Iterative Entwicklung 531
14.5 Ein weiteres Beispiel 540
14.6 Ein Blick nach vorn 540
Anhang A Arbeiten mit BlueJ-Projekten 541
A.1 BlueJ installieren 541
A.2 Ein Projekt öffnen 541
A.3 Der Debugger in BlueJ 541
A.4 Inhalt der Begleit-CD 542
A.5 BlueJ konfigurieren 543
A.6 Auf deutsche Schnittstelle umstellen 543
A.7 Einbinden lokaler API-Dokumentation 544
A.8 Vorlagen für neue Klassen ändern 544
Anhang B Datentypen in Java 545
B.1 Primitive Typen 545
B.2 Cast-Operator für primitive Typen 546
B.3 Objekttypen 547
B.4 Wrapper-Klassen 547
B.5 Cast-Operator für Objekttypen 548
Anhang C Operatoren 549
C.1 Arithmetische Ausdrücke 549
C.2 Boolesche Ausdrücke 550
Anhang D Kontrollstrukturen in Java 553
D.1 Kontrollstrukturen 553
D.2 Auswahlanweisungen 553
D.3 Schleifen 556
D.4 Exceptions 558
D.5 Zusicherungen 559
Anhang E Java ohne BlueJ 561
E.1 Java ohne BlueJ ausführen 561
E.2 Konsolenanwendungen und die Problematik der Umlaute 563
E.3 Ausführbare jar-Dateien erzeugen 565
E.4 Entwickeln ohne BlueJ 566
Anhang F Benutzung des Debuggers 567
F.1 Haltepunkte 568
F.2 Die Kontrollknöpfe 568
F.3 Anzeige der Variablen 569
F.4 Die Anzeige der Aufruffolge 570
F.5 Die Thread-Anzeige 571

Anhang G Testwerkzeuge für Modultests mit JUnit 573
G.1 Aktivieren der Test-Funktionalität 573
G.2 Eine Testklasse erzeugen 573
G.3 Eine Testmethode erzeugen 573
G.4 Zusicherungen bei Tests 574
G.5 Tests ausführen 574
G.6 Testgerüste 574
Anhang H Werkzeuge für die Teamarbeit 575
H.1 Server-Einrichtung 575
H.2 Teamarbeit-Funktionalität aktivieren 575
H.3 Ein Projekt zur gemeinsamen Nutzung einrichten 575
H.4 An einem Projekt gemeinsam arbeiten 576
H.5 Aktualisieren und Abgeben 576
H.6 Weitere Informationen 576
Anhang I Javadoc 577
I.1 Dokumentationskommentare 577
I.2 Unterstützung für Javadoc in BlueJ 579
Anhang J Quelltextkonventionen 581
J.1 Benennung 581
J.2 Layout 581
J.3 Dokumentation 583
J.4 Restriktionen bei der Sprachbenutzung 583
J.5 Programmiermuster 584
Anhang K Wichtige Bibliotheksklassen 585
K.1 Das Paket java.lang 585
K.2 Das Paket java.util 586
K.3 Das Paket java.io 588
K.4 Das Paket java.net 589
K.5 Weitere wichtige Pakete 589
Sachregister 591
Lizenzvereinbarung 599