Grundkurs Programmieren in Java

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

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java

Inhaltsverzeichnis. Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger. Grundkurs Programmieren in Java. ISBN (Buch):

Grundkurs Programmieren in Java

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Grundkurs Programmieren in Java

JAVA GRUNDKURS PROGRAMMIEREN IN. EXTRA: Mit kostenlosem E-Book MIT JAVA7. dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER. 6.

JAVA GRUNDKURS PROGRAMMIEREN IN. EXTRA: Mit kostenlosem E-Book MIT JAVA7. dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER. 6.

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

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

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

VBA mit Microsoft Excel für Kids

GRUNDKURS PROGRAMMIEREN IN JAVA

GRUNDKURS PROGRAMMIEREN IN JAVA

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

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

Objektorientiert in C++

Inhaltsverzeichnis. Vorwort.11

Ralf Kirsch Uwe Schmitt. Programmieren inc. Eine mathematikorientierte Einführung. Mit 24 Abbildungen und 13 Tabellen. Springer

Objektorientierte Programmierung in Java

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

Vorlesung Modellierung und Programmierung I Inhaltsverzeichnis

Richtig einsteigen: Access 2010 VBA-Programmierung

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

Einstieg in die Informatik mit Java

Programmieren lernen mit Perl

Repetitorium Informatik (Java)

Programmieren mit Java

Programmiertechnik II WS 2017/18

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Grundkurs Software- Entwicklung mit C++

Einstieg in die Informatik mit Java

Objektorientierte Programmierung mit Java

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

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

C++ Einführung und professionelle Programmierung. von Ulrich Breymann. 8., erweiterte Auflage. Hanser München 2005

Objektorientiertes Programmieren

C für Java-Programmierer

Programmieren lernen in ASP.NET mit C#

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

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

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

Programmieren I + II Regeln der Code-Formatierung

Objektorientiertes Programmieren in C++

Einführung in die Programmierung mit BlueJ

Ratz/Scheffler/Seese/Wiesenberger Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Einführung in die Informatik

Geschachtelte Klassen

Java Programmierung Grundlagen

Objektorientierte Programmierung und Klassen

Programmieren I + II Regeln der Code-Formatierung

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21

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

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Einstieg in die Informatik mit Java

Effektiv Programmieren in С und C++

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

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

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

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

Richtig einsteigen: Programmieren lernen mit Visual C# 2010

Ausdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI

Arten von Klassen-Beziehungen

Ulrich Kaiser Christoph Kecher C/C++ Von den Grundlagen zur professionellen Programmierung. в.. Galileo Computing

C-Programmierung unter TOS ATARI ST

Vorlesung Programmieren

Java-Programmierung mit NetBeans

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

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Praktische Eine Einführung

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

Java lernen mit BlueJ

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Funktionales C++ zum Ersten

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

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

1.1 In diesem Kapitel Ein wenig C-Geschichte Warum in C programmieren? Die Struktur dieses Buches 19

Die С ++-Programmiersprache

Übungen zu Programmieren - Code-Formatierung -

Einstieg in die Informatik mit Java

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

Transkript:

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung von Dietmar Ratz, Jens Scheffler, Detlef Seese 2. Auflage Hanser München 2004 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 22878 8 Zu Leseprobe schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

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, Ausdrücke 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ühren... 36 3.8 Übungsaufgaben... 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 Wörter, Schlüsselwörter... 45 4.1.5 Trennzeichen... 45 4.1.6 Interpunktionszeichen... 46

8 Inhaltsverzeichnis 4.1.7 Operatorsymbole... 47 4.1.8 import-anweisungen... 47 4.1.9 Zusammenfassung... 48 4.1.10 Übungsaufgaben... 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 Schöner Programmieren in Java... 53 4.2.5 Zusammenfassung... 54 4.2.6 Übungsaufgaben... 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 Übungsaufgaben... 62 4.4 Der Umgang mit einfachen Datentypen... 63 4.4.1 Variablen... 64 4.4.2 Operatoren und Ausdrücke... 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 Operatoren... 76 4.4.3 Allgemeine Ausdrücke... 77 4.4.4 Ein- und Ausgabe... 78 4.4.5 Zusammenfassung... 80 4.4.6 Übungsaufgaben... 80 4.5 Anweisungen und Ablaufsteuerung... 83 4.5.1 Anweisungen... 84 4.5.2 Blöcke 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

Inhaltsverzeichnis 9 4.5.4.4 Endlosschleifen... 91 4.5.5 Sprungbefehle und markierte Anweisungen... 92 4.5.6 Zusammenfassung... 94 4.5.7 Übungsaufgaben... 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 Übungsaufgaben... 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 Übungsaufgaben... 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 Übungsaufgaben... 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 Länge... 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 Länge... 138 6.1.8 Vorsicht, Falle: Kopieren von mehrdimensionalen Feldern. 140 6.1.9 Zusammenfassung... 141 6.1.10 Übungsaufgaben... 141 6.2 Klassen... 144 6.2.1 Was sind Klassen?... 145 6.2.2 Deklaration und Instantiierung von Klassen... 146

10 Inhaltsverzeichnis 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 Referenzdatentypen... 156 6.2.8 Auslagern von Klassen... 157 6.2.9 Zusammenfassung... 159 6.2.10 Übungsaufgaben... 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 Übungsaufgaben... 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 Lösungsidee... 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 Lösung... 182 7.2.3 Zusammenfassung... 184 7.2.4 Übungsaufgaben... 184 7.3 Die Methode main... 184 7.3.1 Zusammenfassung... 186 7.3.2 Übungsaufgaben... 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 Übungsaufgaben... 195

Inhaltsverzeichnis 11 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 Überblick... 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 Überblick... 214 8.3 Black Jack... 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 Überblick... 224 8.3.7 Übungsaufgaben... 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 Übungsaufgaben... 248

12 Inhaltsverzeichnis 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 Funktionalität... 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 Übungsaufgaben... 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 Stärken der Vererbung... 302 11.1.6 Übungsaufgaben... 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 Übungsaufgaben... 313 11.6 Abstrakte Klassen und Interfaces... 314 11.7 Übungsaufgaben... 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

Inhaltsverzeichnis 13 12.1.3 Verschlüsselung durch Aufblähen... 347 12.1.4 XOR-Verschlüsselung... 349 12.1.5 Ein einfacher Test... 351 12.1.6 Übungsaufgaben... 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 Übungsaufgaben... 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: Zufällige Belegung der Zellen 371 12.3.4.3 Zweiter Konstruktor: Die neue Generation... 374 12.3.4.4 Die komplette Klasse im Überblick... 375 12.3.5 Die Klasse Life... 377 12.3.6 Fazit... 379 12.3.7 Übungsaufgaben... 380 13 Exceptions und Errors 383 13.1 Eine Einführung in Exceptions.... 384 13.1.1 Was ist eine Exception?... 384 13.1.2 Übungsaufgaben... 386 13.1.3 Abfangen von Exceptions... 386 13.1.4 Ein Anwendungsbeispiel... 388 13.1.5 Die RuntimeException... 391 13.1.6 Übungsaufgaben... 393 13.2 Exceptions für Fortgeschrittene... 396 13.2.1 Definieren eigener Exceptions... 396 13.2.2 Übungsaufgaben... 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 Übungsaufgaben... 411

14 Inhaltsverzeichnis 13.3 Assertions... 412 13.3.1 Zusicherungen im Programmcode... 412 13.3.2 Compilieren des Programmcodes... 413 13.3.3 Ausführen 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 Oberflächen 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 Aufzählungstypen... 448 C.7 Generische Datentypen... 451 C.8 Automatische Typwandlung für die Wrapper-Klassen... 457 D Glossar 459 Literaturverzeichnis 469 Stichwortverzeichnis 471