Java lernen mit BlueJ

Ähnliche Dokumente
Objektorientierte Programmierung mit Java

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung. Kapitel 1 Objekte und Klassen Objekte und Klassen Instanzen erzeugen Methoden aufrufen

Java lernen mit BlueJ

GERMAN language edition published by PEARSON DEUTSCHLAND GMBH, Copyright 2013.

Java lernen mit BlueJ

Java lernen mit BlueJ

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

Programmieren mit Java

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

Objektorientiertes Programmieren in C++

Paul Molitor und Jörg Ritter VHDL. Eine Einführung. ein Imprint von Pearson Education

Objektorientierte Softwaretechnik

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Java Einführung Vererbung und Polymorphie. Kapitel 13

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

SQL objektorientiert

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky

Objektorientierte Softwaretechnik

Überschreiben von Methoden

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

C++GUI Programmierung mit Qt 4

Windows Scripting lernen

SQL Server 2008 Der schnelle Einstieg

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education

Informatik II Übung 6 Gruppe 7

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs funktionale Programmierung mit Scala ISBN:

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Objektorientiertes Programmieren

Windows Scripting lernen

Java-Programmierung mit NetBeans

SQL Server 2005 Der schnelle Einstieg

Die С ++-Programmiersprache

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

7. Zusammenfassung (1)

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Grundkurs Programmieren in Java

2 Wegweiser Projektbeschreibung...69

Einstieg in die Informatik mit Java

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Judith Bishop. Java lernen. 2. Auflage. Anfangen, anwenden, verstehen. Deutsche Übersetzung von Reder Translations. Revision von Prof. Dr.

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Inhalt. Vorwort 13. Einleitung JavaScript-Grundlagen 17

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

Magento Theme-Design. professionelle Themes für Ihren Shop Y%ADDISON-WESLEY. Entwerfen Sie Schritt für Schritt. Richard Carter

Objektorientiert in C++

C für Java-Programmierer

Programmieren in Java

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Probeklausur: Programmierung WS04/05

Einführung in die Programmierung mit BlueJ

5.5.8 Öffentliche und private Eigenschaften

Einstieg in die Informatik mit Java

Objektorientierte Programmierung in Java

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Einführung in die Programmiersprache Java II

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1

Frank Eller. Delphi 5. yy ADDISON-WESLEY. An imprint of Pearson Education

Grundzüge der Volkswirtschaftslehre Eine Einführung in die Wissenschaft von Märkten

Grundkurs Programmieren in Java

Software Engineering

Einführung in C# Teil 1. Matthias Nübling

Inhaltsverzeichnis. jetzt lerne ich

Michael Kolberg. einfach klipp & klar. Microsofft* Press

Bausteine mechatronischer Systeme

Analyse und Design mit U ML 2.3

Objektorientierte Programmierung Studiengang Medieninformatik

Jasmin Blanchette, Mark Summerfield

Javakurs für Anfänger

Objektorientierung. Helmut Herold Michael Klar Susanne Klar ^-ADDISON-WESLEY. An imprint of Pearson Education

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

1 Klassen anlegen und Objekte erzeugen

Vererbung, Polymorphie

Repetitorium Informatik (Java)

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Geschachtelte Klassen

Transkript:

David J. Barnes Michael Kölling Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung 3. Auflage Übersetzt von Axel Schmolitzky, Universität Hamburg ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

Inhaltsverzeichnis Vorwort von James Gosling, Sun Microsystems Vorwort an Kursleiter Vorwort des Übersetzers Projekte, die in diesem Buch detailliert besprochen werden Danksagungen Teil 1 Grundlagen der Objektorientierung Kapitel 1 Objekte und Klassen 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 Objekte und Klassen Instanzen erzeugen Methoden aufrufen Parameter Datentypen Eine Klasse, viele Instanzen Zustand Das Innenleben eines Objekts Objektinteraktion Quelltext Ein weiteres Beispiel Aufrufergebnisse Objekte als Parameter Zusammenfassung Kapitel 2 Klassendefinitionen 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 Ticketautomaten Eine Klassendefinition untersuchen Datenfelder, Konstruktoren und Methoden Datenübergabe mit Parametern Zuweisungen Sondierende Methoden Verändernde Methoden Ausgaben in Methoden Zusammenfassung des naiven Ticketautomaten Bewertung des Entwurfs des naiven Ticketautomaten Entscheidungen treffen: die bedingte Anweisung Ein weiteres Beispiel für eine bedingte Anweisung Lokale Variablen 15 16 24 25 27 29 31 31 32 33 34 35 37 37 38 40 41 43 43 44 46 49 49 51 53 59 61 62 64 66 69 70 70 74 76

8 Inhaltsverzeichnis 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 Zusammenfassung 84 Kapitel 3 Objektinteraktion 89 3.1 Das Uhren-Beispiel 89 3.2 Abstraktion und Modularisierung 90 3.3 Abstraktion in Software 91 3.4 Modularisierung im Uhren-Beispiel 92 3.5 Implementierung der Uhrenanzeige 92 3.6 Klassendiagramme und Objektdiagramme 93 3.7 Primitive Typen und Objekttypen 95 3.8 Der Quelltext im Projekt Zeitanzeige 97 3.9 Objekte erzeugen Objekte 105 3.10 Mehrere Konstruktoren 106 3.11 Methodenaufrufe 107 3.12 Ein weiteres Beispiel für Objektinteraktion 110 3.13 Die Benutzung eines Debuggers 114 3.14 Mehr zu Methodenaufrufen 119 3.15 Zusammenfassung 120 Kapitel 4 Objektsammlungen 123 4.1 Objektsammlungen mit flexibler Größe 123 4.2 Ein persönliches Notizbuch 124 4.3 Ein erster Blick auf Bibliotheksklassen 124 4.4 Objektstrukturen mit Sammlungen 127 4.5 Generische Klassen 128 4.6 Nummerierung in Sammlungen 129 4.7 Elemente aus einer Sammlung entfernen 131 4.8 Komplette Sammlungen verarbeiten 132 4.9 Zusammenfassung des Notizbuch-Beispiels 140 4.10 Ein weiteres Beispiel: ein Auktionssystem 141 4.11 Zusammenfassung: Sammlungen mit flexibler Größe 149 4.12 Sammlungen mit fester Größe 150 4.13 Zusammenfassung 162 Kapitel 5 Bibliotheksklassen nutzen 165 5.1 Die Dokumentation der Bibliotheksklassen 166 5.2 Das Kundendienstsystem 167 5.3 Die Klassendokumentation lesen 173

Inhaltsverzeichnis 9 5.4 Zufälliges Verhalten einbringen 179 5.5 Pakete und Importe 185 5.6 Benutzung von Map-Klassen für Abbildungen 186 5.7 Der Umgang mit Mengen 191 5.8 Zeichenketten zerlegen 192 5.9 Abschluss des Kundendienstsystems 194 5.10 Die Klassendokumentation schreiben 196 5.11 Öffentliche und private Eigenschaften 199 5.12 Klassen über ihre Schnittstelle verstehen 202 5.13 Klassenvariablen und Konstanten 205 5.14 Zusammenfassung 207 Kapitel 6 Fehler vermeiden 211 6.1 Einführung 211 6.2 Testen und Fehlerbeseitigung 212 6.3 Modultests in BlueJ 213 6.4 Tests automatisieren 219 6.5 Modularisierung und Schnittstellen 229 6.6 Ein Szenario für Fehlerbeseitigung 231 6.7 Kommentierung und Programmierstil 232 6.8 Manuelle Ausführung 233 6.9 Ausgabeanweisungen 238 6.10 Debugger 242 6.11 Techniken umsetzen 243 6.12 Zusammenfassung 243 Kapitel 7 Klassenentwurf 245 7.1 Einführung 246 7.2 Die Welt von Zuul 247 7.3 Kopplung und Kohäsion 249 7.4 Code-Duplizierung 251 7.5 Erweiterungen für Zuul 254 7.6 Kopplung 257 7.7 Entwurf nach Zuständigkeiten 263 7.8 Änderungen lokal halten 266 7.9 Implizite Kopplung 266 7.10 Vorausdenken 270 7.11 Kohäsion 271 7.12 Refactoring 275 7.13 Refactoring für Sprachunabhängigkeit 280 7.14 Entwurfsregeln 284 7.15 Programmausführung ohne BlueJ 285 7.16 Zusammenfassung 287

10 Inhaltsverzeichnis Teil 2 Anwendungsstrukturen 291 Kapitel 8 Bessere Struktur durch Vererbung 293 8.1 DoME 293 8.2 Einsatz von Vererbung 303 8.3 Vererbungshierarchien 305 8.4 Vererbung in Java 306 8.5 Weitere Medien für DoME 310 8.6 Vorteile durch Vererbung (bis hierher) 312 8.7 Subtyping 313 8.8 Der Cast-Operator 318 8.9 Die Klasse Object 320 8.10 Die Hierarchie der Sammlungstypen 322 8.11 Zusammenfassung 323 Kapitel 9 Mehr über Vererbung 327 9.1 Das Problem: die Methode zum Ausgeben 327 9.2 Statischer und dynamischer Typ 329 9.3 Überschreiben von Methoden 332 9.4 Dynamische Methodensuche 334 9.5 super-aufrufe in Methoden 337 9.6 Methoden-Polymorphie 338 9.7 Methoden aus Object: tostring 338 9.8 Der Zugriff über protected 341 9.9 Ein weiteres Beispiel für Vererbung mit Überschreiben 344 9.10 Zusammenfassung 347 Kapitel 10 Weitere Techniken zur Abstraktion 349 10.1 Simulationen 349 10.2 Die Füchse-und-Hasen-Simulation 350 10.3 Abstrakte Klassen 365 10.4 Weitere abstrakte Methoden 372 10.5 Multiple Vererbung 374 10.6 Interfaces 377 10.7 Zusammenfassung von Vererbung 384 10.8 Zusammenfassung 384

Inhaltsverzeichnis 11 Kapitel 11 Grafische Benutzungsoberflächen 387 11.1 Einführung 387 11.2 Komponenten, Layout und Ereignisbehandlung 388 11.3 AWT und Swing 389 11.4 Das Beispiel: ein Bildbetrachter 390 11.5 Bildbetrachter 1.0: die erste komplette Version 403 11.6 Bildbetrachter 2.0: die Programmstruktur verbessern 418 11.7 Bildbetrachter 3.0: weitere GUI-Komponenten 423 11.8 Zusätzliche Erweiterungen 428 11.9 Ein weiteres Beispiel: der Sound-Player 430 11.10 Zusammenfassung 433 Kapitel 12 Fehlerbehandlung 437 12.1 Das Adressbuch-Projekt 438 12.2 Defensive Programmierung 442 12.3 Fehlermeldungen durch den Dienstleister 445 12.4 Prinzipien der Ausnahmebehandlung 449 12.5 Die Behandlung von Exceptions 456 12.6 Neue Exception-Klassen definieren 462 12.7 Die Verwendung von Zusicherungen 464 12.8 Wiederaufsetzen und Fehlervermeidung 468 12.9 Fallstudie: Ein- und Ausgabe von Texten 471 12.10 Zusammenfassung 479 Kapitel 13 Entwurf von Anwendungen 481 13.1 Analyse und Entwurf 481 13.2 Klassenentwurf 489 13.3 Dokumentation 491 13.4 Kooperation 492 13.5 Prototyping 492 13.6 Softwarewachstum 493 13.7 Der Einsatz von Entwurfsmustern 495 13.8 Zusammenfassung 502 Kapitel 14 Eine Fallstudie 505 14.1 Die Fallstudie 505 14.2 Analyse und Entwurf 506 14.3 Klassenentwurf 510 14.4 Iterative Entwicklung 517 14.5 Ein weiteres Beispiel 526 14.6 Ein Blick nach vorn 526

12 Inhaltsverzeichnis Anhang A Arbeiten mit BlueJ-Projekten 527 A.1 BlueJ installieren 527 A.2 Ein Projekt öffnen 527 A.3 Der Debugger in BlueJ 527 A.4 Inhalt der Begleit-CD 528 Anhang B Datentypen in Java 529 B.1 Primitive Typen 529 B.2 Objekttypen 530 B.3 Wrapper-Klassen 531 Anhang C Kontrollstrukturen in Java 533 C.1 Auswahlanweisungen 533 C.2 Schleifen 535 C.3 Exceptions 537 C.4 Zusicherungen 537 Anhang D Operatoren 539 D.1 Arithmetische Ausdrücke 539 D.2 Boolesche Ausdrücke 540 Anhang E Java ohne BlueJ 541 E.1 Java ohne BlueJ ausführen 541 E.2 Ausführbare jar-dateien erzeugen 543 E.3 Entwickeln ohne BlueJ 543 Anhang F BlueJ konfigurieren 545 F.1 Auf deutsche Schnittstelle umstellen 545 F.2 Einbinden lokaler API-Dokumentation 546 F.3 Vorlagen für neue Klassen ändern 546 Anhang G Benutzung des Debuggers 547 G.1 Haltepunkte 548 G.2 Die Kontrollknöpfe 548 G.3 Anzeige der Variablen 549 G.4 Die Anzeige der Aufruffolge 550 G.5 Die Thread-Anzeige 551

Inhaltsverzeichnis 13 Anhang H Testwerkzeuge für Modultests mit JUnit 553 H.1 Aktivieren der Test-Funktionalität 553 H.2 Eine Testklasse erzeugen 553 H.3 Eine Testmethode erzeugen 553 H.4 Zusicherungen bei Tests 554 H.5 Tests ausführen 554 H.6 Testgerüste 554 Anhang I Javadoc 555 I.1 Dokumentationskommentare 555 I.2 Unterstützung für Javadoc in BlueJ 557 Anhang J Quelltextkonventionen 559 J.1 Benennung 559 J.2 Layout 559 J.3 Dokumentation 561 J.4 Restriktionen bei der Sprachbenutzung 561 J.5 Programmiermuster 562 Anhang K Wichtige Bibliotheksklassen 563 K.1 Das Paket java.lang 563 K.2 Das Paket java.util 564 K.3 Das Paket java.io 565 K.4 Das Paket java.net 567 K.5 Weitere wichtige Pakete 567 Sachregister 569 Lizenzvereinbarung 577