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

Ähnliche Dokumente
Objektorientierte Programmierung mit Java

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

Java lernen mit BlueJ

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Java lernen mit BlueJ

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

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

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

Programmieren mit Java

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

Beschreibung des Angebotes. Java Programmierung. LernenimInternet. Ansprechpartner. Angebot-Nr Angebot-Nr Weiterbildung.

Die С ++-Programmiersprache

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

C++GUI Programmierung mit Qt 4

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

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Objektorientierte Programmierung in Java

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

Programmieren in Lua

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

SQL objektorientiert

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

Objektorientierte Programmierung Studiengang Medieninformatik

Programmieren lernen in ASP.NET mit C#

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

Einführung und Vorstellung: Grundlagen der Java- Programmierung. paluno

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

Objektorientiertes Programmieren in C++

Visual Basic.NET mit Methode

Joomla! eigenen Joomla!-Website ^ADDISON-WESLEY. Die Schritt-für-Schritt-Anleitung zur. Stephen Bürge. An imprint of Pearson

C für Java-Programmierer

Programmiertechnik II WS 2017/18

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Inhaltsverzeichnis. jetzt lerne ich

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

Inhaltsverzeichnis. jetzt lerne ich

Grundkurs Software- Entwicklung mit C++

Probeklausur: Programmierung WS04/05

C++für Naturwissenschaftler

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

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21

... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71

AuD-Tafelübung T-B5b

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

C programmieren. Jürgen Wolf

ecommerce Websites Entwicklung erfolgreicher Web-Auftritte mit Java, JavaScript, HTML, XML und SQL Vivek Sharma Rajiv Sharma ADDISON-WESLEY

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Grundkurs Programmieren in Java

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: Weitere Informationen oder Bestellungen unter

Methoden und Wrapperklassen

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Arnold Willemer. Einstieg in C++ Galileo Press

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

VBA mit Office 97 lernen

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Grundkurs Programmieren in Java

Inhaltsverzeichnis. Vorwort.11

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

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Objektorientierte Programmierung Studiengang Medieninformatik

Inhalt. Vorwort 13. Einleitung JavaScript-Grundlagen 17

Kapitel 4: PHP-Grundlagen Kapitel 5: PHP-Bausteine für Programme

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

II.1.1. Erste Schritte - 1 -

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

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)

Programmieren I. Kapitel 13. Listen

Objektorientierte Softwaretechnik

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Vorwort zur sechsten Auflage

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Java Einführung Vererbung und Polymorphie. Kapitel 13

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Hcms-Georg Schumann. Java mit Eclipse. für Kids. mitp

Praktische Eine Einführung

Inhaltsverzeichnis. Warren D. Sande, Carter Sande. Hello World! Programmieren für Kids und andere Anfänger. Übersetzt von Dorothea Heymann-Reder

Matthias-Claudius-Gymnasium Fachcurriculum Informatik

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

Arnold Willemer C++ Der Einstieg. WlLEY

Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten

Objektorientiert in C++

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

jetzt lerne ich тш^шш Visual C# 2008 Das komplette Starterkit für den erfolgreichen Einstieg Markt+Technik

Jasmin Blanchette, Mark Summerfield

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

SQL Server 2008 Der schnelle Einstieg

Netzwerkprogrammierung unter Linux und UNIX

Lehrbuch Grundlagen de r Informati k

Effektiv Programmieren in С und C++

Windows Scripting lernen

Zugriffsrechte. im gleichen Package. Stilregel: Datenelemente immer private mit zugehörigen get- und set-methoden, wenn nötig.

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Arnold Willemer. Einstieg in C++ Galileo Press

Einführung in die Programmierung II. 5. Zeiger

9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Programmieren I + II Regeln der Code-Formatierung

Transkript:

Judith Bishop Java lernen 2. Auflage Anfangen, anwenden, verstehen Deutsche Übersetzung von Reder Translations Revision von Prof. Dr. Uwe Kastens PEARSON Studium ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

Inhaltsverzeichnis B Beispiele und Fallstudien 15 V Vorwort zur dritten Auflage von Java Gently 19 V.l Ein Lehrmodell für Java 19 V.2 Der Ansatz von Java lernen 20 V.3 Beispiele 21 V.4 Programmieren lehren und Java lehren 22 V.5 Reihenfolge der Themen 23 V.6 Lernhilfen und die Website 24 V.7 An wen wendet sich das Buch? 25 V.8 Die Icons in diesem Buch 26 V.10 Danksagungen 28 V.ll Die Entwicklung von Java lernen 29 1 Einleitung 31 1.1 Willkommen bei Java 31 1.2 Das Projekt Erhaltung der Natur 33 1.3 Software-Entwicklung 36 Der Programmierprozess 36 Betriebssysteme 36 Editoren und Übersetzer 37 Entwicklungsumgebungen 38 Wartung 39 Der Ansatz dieses Buchs 39 Algorithmen 40 Klassenentwurf 41 Programme 41 Zusammenfassungen 42 1.4 Erste Schritte mit Java 43 Das JDK herunterladen 43 Das System testen 43 Das Paket javagently 44 Dokumentation und Tutorial 44 L

Integrierte Entwicklungsumgebungen für Java 45 Java-Websites 45 1.5 Die Website Java Gently 45 1.6 Übungen 47 2 Einfache Programme 49 2.1 Drei Programme zum Auftakt 49 2.2 Die Struktur eines Programms 55 Grundkonzepte 55 Modelldiagramme 57 Syntax-Schemata für Java 58 Die Java-Semantik 59 Bezeichner und Schlüsselwörter 60 Java-Symbole 61 Erstellen und Ausführen eines Programms 62 2.3 Grundlagen objektorientierter Programmierung 62 Klassen 62 Objekte 63 Variablen 64 Darstellung der Instanziierung 65 2.4 Objektvariablen deklarieren und Objekte erzeugen 65 Auf Objektattribute zugreifen 67 Objektvariablen manipulieren 68 Konstruktoren und ihre Parameter 69 2.5 Anfangen mit der Ausgabe 70 Zeichenreihen für die Ausgabe 71 Konkatenation 74 Layout 75 2.6 Einfache Berechnungen 75 Typen 76 Variablen deklarieren 76 Ausdrücke 77 Zuweisung 78 Präzedenz 80 Werte von Ausdrücken ausgeben 80 Die Methode tostring 81 Mehr über das Testen von Programmen 84 2.7 Zusammenfassung 85 2.8 Übungen 87 2.9 Aufgaben 88 3 Typen und Methoden 91 3.1 Typen 91 Ganze und reelle Zahlen ausgeben 93 Die Klasse Math 93 Klassenmethoden 96 Methoden mit Ergebnis 96 Typumwandlungen 97

3.2 Wiederholung mit For-Schleifen 98 Einfache Bedingungen 98 Die Form einer For-Schleife 99 Verwendung der Schleifenvariablen 101 Andere Möglichkeiten für Schleifen 104 3.3 Methoden erstellen 105 Eine Methode deklarieren 106 Eine Methode aufrufen 107 Strukturierung mit void-methoden 107 3.4 Parameter übergeben und Ergebnisse zurückgeben 108 Modelldiagramme für Methoden 113 Objekte als Parameter 114 Ergebnisse einer Methode 115 3.5 Methoden mit Ergebnis 115 3.6 Der Typ boolean 123 Bedingungen 123 Boolesche Ausdrücke 124 Vergleich von Objekten 127 3.7 Fallstudie 1: Pizzaservice 128 Aufgabe 128 Lösung 129 Ein erster Entwurf 129 Modelldiagramm 131 Programm 1 132 3.8 Test 133 Noch einmal die Aufgabe 134 Die Java-Klassen Date und Calendar 135 Klassenentwurf für Time 136 Die Klasse testen 138 For-Schleifen mit Objekten 139 Objekte als Parameter 141 Programm 2 143 3.9 Zusammenfassung 146 3.10 Übungen 147 3.11 Aufgaben 149 4 Eingabe und Ausgabe 155 4.1 Interaktive Eingabe 155 Eingabeströme 155 Zeichenreihen lesen 157 Zahlen einlesen mit Java 158 4.2 Benutzerfreundliche Ein- und Ausgabe 159 Die GUI-Klasse Display von Java Gently 159 Der Ausgabeteil 160 Der Eingabeteil 161 Die Methoden der Klasse Display 161 Die Display-Klasse starten 162 Eingabe über die Anzeige 163 L

Die Stream-Klasse von Java Gently 165 Konstanten 168 Folgen eingeben 171 4.3 Paketerstellung und -zugriff 172 Modelldiagramme für Pakete 173 4.4 Auswahl mit If-Anweisungen 174 Schema der If-Anweisung 175 Aufeinander folgende Else-Ifs 181 4.5 Ein- und Ausgabe mit Dateien 183 Ausgabe in eine Datei 183 4.6 Ausnahmebehandlung 187 Eine Ausnahme abfangen 188 Ausnahmen auslösen 190 Beheben einer Ausnahmesituation 191 Ausnahmen bei Zahlen 195 4.7 Zusammenfassung 198 4.8 Übungen 200 4.9 Aufgaben 202 5 Ablaufsteuerung 207 5.1 Eigenschaften eines guten Programms 207 Korrektheit 207 Lesbarkeit 208 Wiederverwendbarkeit 208 Effizienz 209 Methodenentwurf 209 Top-Down-Programmierung 210 Schutz und Zugriffsmöglichkeit 211 Richtlinien für den Klassenentwurf 212 5.2 Bedingte Schleifen mit while und do 213 Das Schema bedingter Schleifen 214 Die Do-Anweisung 223 Entwicklung einer bedingten Schleife 223 5.3 Benutzerdefinierte Ausnahmen 225 5.4 Der Typ char 228 Zeichen umwandeln 230 5.5 Die Switch-Anweisung 232 Wann Switch-Anweisungen nicht eingesetzt werden sollen 236 5.6 Fallstudie 2: Das Spiel Stein-Schere-Papier" 237 Lösung 237 Programm 240 Test 243 Mehrspielermodus 244 5.7 Zusammenfassung 244 5.8 Übungen 245 5.9 Aufgaben 247

6 Arrays und Tabellen 253 6.1 Einfache Arrays 253 Schema eines Arrays 253 Das Array-Modell 254 Auf Array-Elemente zugreifen 255 Eigenschaften von Arrays 258 Arrays im Zusammenhang mit Klassen 261 Arrays als Abstraktion 264 6.2 Tabellen 275 6.3 Die Klasse Graph 281 Methoden der Klasse Graph 281 Wie Graph funktioniert 283 Die fortgeschrittenen Funktionen 283 6.4 Sortieren und Suchen 289 Sortieren durch Auswählen 290 Suchen 292 6.5 Klassenunabhängige Tabellen 295 Die Vector-Klasse 296 Hashtabellen 297 Eine Hashtabelle deklarieren und darauf zugreifen 298 Aufzählungen 299 Aufwerte in einer Hashtabelle zugreifen 300 6.6 Zusammenfassung 305 6.7 Übungen 306 6.8 Aufgaben 308 7 Formatierung 313 7.1 Zeichenreihen und ihre Behandlung 313 Operationen mit Zeichenreihen 315 Die Klasse StringBuffer 319 Zeichenreihen und Zeichen-Arrays 320 7.2 Tokenizer und Wrapper-Klassen 323 Tokenizer 324 Die Menge der Begrenzungszeichen ändern 325 Wrapper-Klassen 325 7.3 Innenansicht der Klasse Stream 327 Algorithmen 328 Die Klasse Stream 329 7.4 Zahlenformatierung 333 Das Konzept eines Formatierers : 334 Die Gebietseinstellung des Computers 334 Die Klasse NumberFormat 338 Formatierung reeller Zahlen 339 Währungen 340 Eingabe formatierter Daten 342

7.5 Datum, Kalender und Uhrzeit 343 Das Datum formatieren 346 Das Datum parsen 346 Zeitzonen 350 Lokalisierte Datumsformatierung 351 7.6 Zusammenfassung 355 7.7 Übungen 357 7.8 Aufgaben 359 8 Objekte bei der Arbeit 363 8.1 Entwerfen eines objektorientierten Programms 363 8.2 Eigenschaften von Objekten 373 Mit Referenzen arbeiten 373 Die null-referenz 377 Der Bezeichner this 378 Die Oberklasse Object 378 Objektgleichheit 378 Objektzuweisung 379 Typumwandlung von Referenzen 381 Modifikatoren 382 Klassenattribute 383 Konstanten 384 Innere Klassen 385 8.3 Listen und Iteratoren 388 Javas Listenklassen 388 Listeniteratoren 390 8.4 Fallstudie 3: Nelsons Kaffeegeschäft 392 Möglichkeit 392 Algorithmen 392 Umwandlung des Programms 393 Programm 395 Test 400 8.5 Zusammenfassung 403 8.6 Übungen 404 8.7 Aufgaben 406 9 Abstraktion und Vererbung 409 9.1 Mächtigkeit von Klassen 409 Abstraktion 409 Vererbung 410 Interfaces 411 9.2 Vererbung 412 Zugriffsart protected 414 Arbeiten mit Oberkonstruktoren 414 In einer Hierarchie arbeiten 415 Variablen verdecken 416 Methoden überladen 416 Methoden überschreiben 417 Dynamische Bindung 417

9.3 Abstraktion durch Interfaces 418 9.4 Abstrakte Methoden und Klassen 426 Abstrakte Methoden 426 Abstrakte Klassen 426 9.5 Fallstudie 4: Kennzeichen für Haustiere 427 Lösung 1 und Klassenentwurf 427 Lösung 2 429 Programm 429 Sortieren des Registers 433 9.6 Serialisierung 435 9.7 Zusammenfassung 441 9.8 Übungen 442 9.9 Aufgaben 445 10 Grafik und Benutzungsschnittstellen 447 10.1 Einführung in das AWT 447 Gesamtstruktur von AWT 448 Swing 449 10.2 Ein Fenster mit Grafik versehen 450 Frame - die Grundlage für Fenster 450 Grafik zu einem Fenster hinzufügen 451 Mit drawstring in ein AWT-Fenster schreiben 453 Ein Fenster schließen 456 Mit Zeichenflächen arbeiten 460 Zusammenfassung der Klassen und Methoden aus AWT 464 10.3 GUI-Layout 464 Layoutmanager 466 Auf Knöpfe reagieren 467 Erweiterte Richtlinien für Einrückungen 468 Weitere Layoutmanager 471 Weitere Möglichkeiten für Komponenten 472 Panels und Zeichenflächen zum Gruppieren 473 10.4 Zusammenfassung 478 10.5 Übungen 479 10.6 Aufgaben 481 11 Ereignisgesteuerte Programmierung 483 11.1 Interaktion mit Textfeldern 483 Zahlen eingeben 485 Die Eingabe vermeiden 486 11.2 Ereignisse, Listener und Behandler 488 11.3 Fallstudie 5: Der Flaggendesigner 490 Aufgabe 490 Lösung 490 Konstruktion der GUI 491 Reaktion auf Ereignisse 492 Die Flaggen zeichnen 493 Programm 494 Test 499 L

11.4 Ereignisfolgen organisieren 499 11.5 Fallstudie 6: Eine Supermarktkasse 509 Aufgabe 509 Lösung 510 Bildschirmentwurf 510 Ereignisbehandlung 511 Dateneingabe 512 Programm 512 Test 516 11.6 Fallstudie 7: Der Umrechner mit Swing 516 Die Komponenten von Swing 517 Die Klasse Rates aktualisieren 518 Die Datenstruktur 519 Look and Feel 519 Icons 520 Das Programm 520 Test 524 11.7 Zusammenfassung 525 11.8 Übungen 526 11.9 Aufgaben 528 12 Applets im Einsatz 531 12.1 Von Anwendungen zu Applets 531 Eine Anwendung in ein Applet umwandeln 532 Einfaches HTML 533 Funktionsweise von Applets 535 12.2 Applets in Browsern 537 Wo sind die Applets? 537 Sicherheit von Applets 542 Die PARAM-Funktion 544 Signierte Applets 545 JAR-Dateien 545 12.3 Klänge und Bilder 554 Klänge 554 Bilder 554 Bilder laden 555 Bilder verschieben 556 Auf Mausereignisse reagieren 556 12.4 Fallstudie 8: Das Projekt Erhaltung der Natur" 560 Web-Seiten 561 Ein Applet einbinden 562 Ein Applet mit Daten versehen 563 Baum-Codes 564 Das Innere des Applets 565 Test 570 Juristische Fragen 571 12.5 Zusammenfassung 571 12.6 Übungen 572 12.7 Aufgaben 575 J

r 13 Mehrere Threads 577 13.1 Einführung in die Arbeit mit mehreren Threads 577 Warum Threads? 578 13.2 Threads einrichten 579 Die Klasse Thread 582 Umwandlung in Threads 583 Kommunikation zwischen Threads 590 13.3 Threads synchronisieren 597 Schutz gemeinsam genutzter Ressourcen 598 Signale zwischen Threads 602 13.4 Innenansicht der Klasse Display 603 Die Struktur der Klasse Display 603 Die Tabelle mit den Eingabewerten 604 Der ready-beobachter 605 13.5 Fallstudie 9: Walkmanverleih 610 Besprechung der Lösung 611 Klassenentwurf 612 Synchronisierte Objekte 612 Test 616 13.6 Zusammenfassung 617 13.7 Übungen 618 13.8 Aufgaben 620 14 Netzwerkprogrammierung 623 14.1 Verbindung über das Internet 623 URL-Verbindungen 623 Bilderholen 628 14.2 Ports und Sockets 630 14.3 Fallstudie 10: Das Chat-System 637 Clients im Auge behalten 637 An alle Clients senden 638 Aktivitäten synchronisieren 638 Ein Modelldiagramm 638 Der Server 639 Beispiel für eine Chat-Sitzung 642 14.4 Datenbankanbindung 643 14.5 Zugriff auf entfernt gespeicherte Objekte 653 14.6 Fallstudie 11: Das Flughafendurchsagen-System 658 Die Applets der Fluggesellschaften 659 HTML der Fluggesellschaften 661 Die Applets 662 Verbindung über RMI 664 Das System ausführen 667 14.7 Zusammenfassung 668 14.8 Übungen 669 14.9 Aufgäben 671

15 Datenstrukturen und Algorithmen 675 15.1 Über Datenstrukturen 675 Eigenschaften 676 Darstellung 676 Algorithmen 677 Was Java bietet 677 15.2 Lineares und binäres Suchen 678 Binäre Suche 680 Bedingungen für die binäre Suche 681 15.3 Quicksort und Leistung 686 Ein Blick auf die Leistung 688 Sortierverfahren im Vergleich 688 Suchverfahren im Vergleich 690 Konsequenzen 690 15.4 Keller und Schlangen 691 Eigenschaften von Kellern 691 Die Klasse Stack 692 Anwendungen von Kellern 694 Schlangen 694 Eigenschaften von Schlangen 695 Der abstrakte Datentyp Queue 695 Mit Arrays implementierte Schlangen 699 Auf Listen basierende Schlangen 701 15.5 Noch einmal verkettete Listen 702 Eigenschaften verketteter Listen 702 15.6 Bitsets 708 15.7 Zusammenfassung 714 15.8 Übungen 715 15.9 Aufgaben 717 A Modellnotation für Java lernen 719 A.l Teil 1 - Grundbestandteile 719 A.2 Teil 2 - Assoziationen 721 B Lösungen zu den Übungen 723 Stichwortverzeichnis 725 Lizenzvereinbarung 747