Java-Intensivkurs (eBook)

In 14 Tagen lernen Projekte erfolgreich zu realisieren

(Autor)

eBook Download: PDF
2009 | 2. Aufl. 2010
300 Seiten
Springer Berlin (Verlag)
978-3-642-03955-3 (ISBN)

Lese- und Medienproben

Java-Intensivkurs - Marco Block
Systemvoraussetzungen
39,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Das Buch bietet eine kompakte Einführung in die Softwareentwicklung mit Java. Dabei liegt der Fokus eher auf Konzepten und Methoden als auf Sprachelementen. Die Konzepte werden anhand der beispielhaften Realisierung von Projekten vermittelt. Dabei setzt der Autor auf kreative Projektbeispiele, die verschiedene Gebiete der Informatik streifen wie z. B. Künstliche Intelligenz, Bildverarbeitung oder Spieleentwicklung. Die 2. Auflage wurde komplett aktualisiert. Beispiele, Aufgabenlösungen und zusätzliches Material werden auf einer Webseite angeboten.

1 Tag 1: Vorbereitungen und Javas kleinste Bausteine 21
1.1 Warum gerade mit Java beginnen? 22
1.2 Installation von Java 23
1.2.1 Wahl einer Entwicklungsumgebung 23
1.2.2 Testen wir das installierte Java-System 24
1.3 Vorteile des Selbststudiums 26
1.4 Primitive Datentypen und ihre Wertebereiche 27
1.4.1 Primitive Datentypen allgemein 28
1.4.2 Primitive Datentypen in Java 28
1.5 Variablen und Konstanten 30
1.5.1 Deklaration von Variablen 30
1.5.2 Variablen versus Konstanten 31
1.6 Primitive Datentypen und ihre Operationen 32
1.6.1 Datentyp boolean 32
1.6.2 Datentyp char 35
1.6.3 Datentyp int 35
1.6.4 Datentypen byte, short und long 36
1.6.5 Datentypen float und double 37
1.7 Umwandlungen von Datentypen 38
1.7.1 Explizite Typumwandlung 39
1.7.2 Übersicht zu impliziten Typumwandlungen 40
1.7.3 Die Datentypen sind für die Operation entscheidend 40
1.8 Zusammenfassung und Aufgaben 41
2 Tag 2: Grundlegende Prinzipien der Programmentwicklung 43
2.1 Programm als Kochrezept 44
2.2 Methoden der Programmerstellung 45
2.2.1 Sequentieller Programmablauf 46
2.2.2 Verzweigungen 46
2.2.3 Sprünge 47
2.2.4 Schleifen 47
2.2.5 Parallelität 47
2.2.6 Kombination zu Programmen 48
2.3 Programme in Java 48
2.3.1 Erstellen eines Javaprogramms in Pseudocode 49
2.3.2 Erstellen eines Javaprogramms 49
2.4 Programmieren mit einem einfachen Klassenkonzept 50
2.5 Sequentielle Anweisungen 52
2.6 Verzweigungen 53
2.6.1 Verzweigung mit if 54
2.6.2 Verzweigung mit switch 55
2.7 Verschiedene Schleifentypen 56
2.7.1 Schleife mit for 56
2.7.2 Schleife mit while 58
2.7.3 Schleife mit do-while 59
2.8 Sprunganweisungen 60
2.8.1 Sprung mit break 60
2.8.2 Sprung mit continue 62
2.9 Funktionen in Java 63
2.10 Zusammenfassung und Aufgaben 66
3 Tag 3: Daten laden und speichern 68
3.1 Externe Programmeingaben 69
3.2 Daten aus einer Datei einlesen 70
3.3 Daten in eine Datei schreiben 72
3.4 Daten von der Konsole einlesen 72
3.5 Zusammenfassung und Aufgaben 73
4 Tag 4: Verwendung einfacher Datenstrukturen 75
4.1 Arrays 76
4.1.1 Deklaration und Zuweisung 77
4.1.2 Vereinfachte Schleife mit for 78
4.2 Matrizen oder multidimensionale Arrays 78
4.3 Conway's Game of Life 79
4.3.1 Einfache Implementierung 81
4.3.2 Auswahl besonderer Muster und Ausblick 84
4.4 Zusammenfassung und Aufgaben 84
5 Tag 5: Debuggen und Fehlerbehandlungen 86
5.1 Das richtige Konzept 87
5.2 Exceptions in Java 89
5.2.1 Einfache try-catch-Behandlung 90
5.2.2 Mehrfache try-catch-Behandlung 91
5.3 Fehlerhafte Berechnungen aufspüren 92
5.3.1 Berechnung der Zahl pi nach Leibniz 92
5.3.2 Zeilenweises Debuggen und Breakpoints 95
5.4 Zusammenfassung und Aufgaben 95
6 Tag 6: Erweitertes Klassenkonzept 97
6.1 Entwicklung eines einfachen Fußballmanagers 98
6.2 Spieler und Trainer 98
6.2.1 Generalisierung und Spezialisierung 98
6.2.2 Klassen und Vererbung 99
6.2.3 Modifizierer public und private 101
6.2.4 Objekte und Instanzen 102
6.2.5 Konstruktoren in Java 103
6.3 Torwart 105
6.4 Die Mannschaft 106
6.5 Turniere und Freundschaftsspiele 107
6.5.1 Ein Interface Freundschaftsspiel festlegen 107
6.5.2 Freundschaftsspiel FC Steinhausen-Oderbrucher SK 110
6.5.3 Beispiel zu Interface 113
6.5.4 Interface versus abstrakte Klasse 115
6.6 Zusammenfassung und Aufgaben 116
7 Tag 7: Aufarbeitung der vorhergehenden Kapitel 118
7.1 Referenzvariablen 119
7.2 Zugriff auf Attribute und Methoden durch Punktnotation 120
7.3 Die Referenzvariable this 121
7.4 Prinzip des Überladens 121
7.4.1 Überladung von Konstruktoren 122
7.4.2 Der Copy-Konstruktor 123
7.5 Garbage Collector 123
7.6 Statische Attribute und Methoden 124
7.7 Primitive Datentypen und ihre Wrapperklassen 125
7.8 Die Klasse String 126
7.8.1 Erzeugung und Manipulation von Zeichenketten 126
7.8.2 Vergleich von Zeichenketten 127
7.9 Zusammenfassung und Aufgaben 129
8 Tag 8: Verwendung von Bibliotheken 131
8.1 Standardbibliotheken 132
8.2 Funktionen der Klasse Math 134
8.3 Zufallszahlen in Java 134
8.3.1 Ganzzahlige Zufallszahlen vom Typ int und long 135
8.3.2 Zufallszahlen vom Typ float und double 136
8.3.3 Weitere nützliche Funktionen der Klasse Random 136
8.4 Das Spielprojekt BlackJack 137
8.4.1 Spielregeln 137
8.4.2 Spieler, Karten und Kartenspiel 138
8.4.2.1 Verwendungsbeispiel für die Datenstruktur Vector 138
8.4.2.2 Implementierung der Klassen Spieler, Karteund Kartenspiel 140
8.4.3 Die Spielklasse BlackJack 143
8.5 JAMA -- Lineare Algebra 149
8.6 Eine eigene Bibliothek bauen 151
8.7 Zusammenfassung und Aufgaben 152
9 Tag 9: Grafische Benutzeroberflächen 154
9.1 Fenstermanagement unter AWT 155
9.1.1 Ein Fenster lokal erzeugen 155
9.1.2 Vom Fenster erben und es zentrieren 156
9.2 Zeichenfunktionen innerhalb eines Fensters 157
9.2.1 Textausgaben 158
9.2.2 Zeichenfunktionen 158
9.2.3 Die Klasse Color 159
9.2.4 Bilder laden und anzeigen 160
9.3 Auf Fensterereignisse reagieren und sie behandeln 162
9.3.1 Fenster mit dem Interface WindowListener schließen 162
9.3.2 GUI-Elemente und ihre Ereignisse 165
9.3.2.1 Layoutmanager 165
9.3.2.2 Die Komponenten Label und Button 165
9.3.2.3 Die Komponente TextField 167
9.4 Auf Mausereignisse reagieren 168
9.5 Zusammenfassung und Aufgaben 170
10 Tag 10: Appletprogrammierung 171
10.1 Kurzeinführung in HTML 172
10.2 Applets im Internet 172
10.3 Funktionen eines Applets 173
10.4 Verwendung des Appletviewers 174
10.5 Eine Applikation zum Applet umbauen 176
10.5.1 Konstruktor zu init 176
10.5.2 paint-Methoden anpassen 177
10.5.3 TextField-Beispiel zum Applet umbauen 178
10.6 Flackernde Applets vermeiden 179
10.6.1 Die Ghosttechnik anwenden 181
10.6.2 Die update-Methode überschreiben 182
10.7 Ein Beispiel mit mouseDragged 183
10.8 Diebstahl von Applets erschweren 184
10.8.1 Download und Dekompilierung 185
10.8.2 Verwirrung durch einen Obfuscator 187
10.9 Zusammenfassung und Aufgaben 187
11 Tag 11: Techniken der Programmentwicklung 189
11.1 Der Begriff Algorithmus 190
11.2 Techniken zum Entwurf von Algorithmen 190
11.2.1 Prinzip der Rekursion 190
11.2.2 Brute Force 192
11.2.3 Greedy 193
11.2.4 Dynamische Programmierung und Memoisation 193
11.2.5 Teile und Herrsche 195
11.3 Algorithmen miteinander vergleichen 195
11.4 Kleine algorithmische Probleme 196
11.4.1 Identifikation und Erzeugung von Primzahlenmit Brute Force 196
11.4.2 Sortieralgorithmen 197
11.4.2.1 InsertionSort 197
11.4.2.2 BubbleSort 198
11.4.2.3 QuickSort 199
11.4.3 Needleman-Wunsch-Algorithmus 201
11.5 Zusammenfassung und Aufgaben 203
12 Tag 12: Bildverarbeitung 204
12.1 Das RGB-Farbmodell 205
12.2 Grafische Spielerei: Apfelmännchen 207
12.2.1 Mathematischer Hintergrund 207
12.2.2 Das Apfelmännchen-Fraktal in grau 209
12.2.3 Die Klasse BufferedImage 211
12.2.4 Bilder laden und speichern 212
12.2.5 Das Apfelmännchen-Fraktal in Farbe 214
12.3 Bilder bearbeiten 217
12.3.1 Ein Bild invertieren 218
12.3.2 Erstellung eines Grauwertbildes 219
12.3.3 Binarisierung eines Grauwertbildes 220
12.4 Zusammenfassung und Aufgaben 221
13 Tag 13: Methoden der Künstlichen Intelligenz 222
13.1 Mustererkennung 223
13.1.1 Einlesen der Trainingsdaten 223
13.1.2 k-nn Algorithmus 228
13.1.2.1 Visualisierung des Algorithmus 228
13.1.2.2 Implementierung eines k-nn Klassifikators 228
13.1.3 k-means Algorithmus 231
13.1.3.1 Bestimmung der k Prototypen 231
13.1.3.2 Expectation-Maximizationals Optimierungsverfahren 232
13.1.3.3 Allgemeine Formulierungdes k-means Algorithmus 233
13.1.3.4 Implementierung des k-means 233
13.2 Ein künstlicher Spielegegner 237
13.2.1 Der MinMax-Algorithmus 238
13.2.2 MinMax mit unbegrenzter Suchtiefe 238
13.2.3 MinMax mit begrenzter Suchtiefe und Bewertungsfunktion 240
13.2.4 Spieleprojekt TicTacToe 241
13.3 Zusammenfassung und Aufgaben 247
14 Tag 14: Entwicklung einer größeren Anwendung 248
14.1 Entwurf eines Konzepts 249
14.1.1 GUI Klassen 250
14.1.2 Spiellogik 251
14.1.3 Spieldatenverwaltung 251
14.1.4 Komplettes Klassendiagramm 253
14.2 Implementierung 253
14.2.1 Klasse TeeTristBox 253
14.2.2 Klasse TeeTristStein 253
14.2.3 Klasse TeeTristSpielfeld 257
14.2.4 Klasse SpielThread 261
14.2.5 Klasse TeeTristPanel 264
14.2.6 Klasse TeeTrist 265
14.3 Spielen wir ein Spiel TeeTrist 266
14.4 Dokumentation mit javadoc 266
14.5 Zusammenfassung und Aufgaben 267
15 Java -- Weiterführende Konzepte 269
15.1 Professionelle Entwicklungsumgebungen 270
15.2 Das Klassendiagramm als Konzept einer Software 270
15.3 Klassendiagramm mit UML 270
15.3.1 Klasse 271
15.3.2 Vererbung 271
15.3.3 Beziehungen zwischen Klassen 272
15.3.3.1 Beziehungen 272
15.3.3.2 Kardinalitäten 272
15.3.3.3 Aggregation und Komposition 273
15.4 Verwendung externer Bibliotheken 273
15.5 Zusammenarbeit in großen Projekten 274
Glossar 275
Literaturverzeichnis 280
Sachverzeichnis 283

2 Tag 2: Grundlegende Prinzipien der Programmentwicklung (S. 24-25)

In diesem Kapitel werden wir sehen, dass die Erstellung von Programmen viel mit alltäglichen Abläufen zu tun hat. Kochrezepte lassen sich beispielsweise als Programme auffassen und mit diesem naheliegenden Vergleich wird klar, Programmieren kann jeder! Die Erstellung von Programmen lässt sich auf nur drei Programmierkonzepte reduzieren.

Diese drei einfachen Konzepte sind in fast allen Programmiersprachen gültig. Wer diese verinnerlicht, dem wird das Programmieren und das Lesen anderer Programme leichter fallen. Im Anschluss daran können wir mit den ersten Programmierübungen beginnen.

2.1 Programm als Kochrezept

Ein Programm kann nur erstellt werden, wenn klar ist, dass die Reihenfolge der Anweisungen entscheidend ist. Ein Programm ist wie ein Kochrezept zu verstehen, bei dem ebenfalls das Vertauschen der Reihenfolge der Anweisungen zu einem Kochdesaster führen kann. Nehmen wir als Beispiel für ein Rezept die leckeren Eierpfannkuchen.

Für die Zubereitung sind nun verschiedene Arbeitsschritte auszuführen. Bei den meisten ist dabei die Reihenfolge entscheidend, schauen wir uns dazu einmal Omas Rezept für sechs Portionen Eierpfannkuchen an.

Omas Eierpfannkuchen

– Sechs Portionen Zutaten: 4 Eier, Mehl, Milch, 1 Apfel, Wurst/Käse, Marmelade, Apfelmus, Zucker

– vier Eier in eine Schüssel schlagen und verrühren
– solange Mehl hinzugeben, bis der Teig schwer zu rühren ist
– solange Milch hinzugeben, bis die Masse wieder leicht zu rühren ist, damit sie sich gut in der Pfanne verteilen lässt
– etwas Fett in einer Pfanne erhitzen

Erscheint lt. Verlag 10.12.2009
Reihe/Serie Xpert.press
Xpert.press
Mitarbeit Sonstige Mitarbeit: Ernesto Tapia, Felix Franke
Zusatzinfo 300 S. 90 Abb.
Verlagsort Berlin
Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
Schlagworte Algorithmen • Algorithmik • Ausbildung • Bildverarbeitung • Datenstrukturen • Informatik • Java • Klassen • Künstliche Intelligenz • Programmentwicklung • Programmieren • Programmierung • Programmierung in Java • Softwareentwicklung
ISBN-10 3-642-03955-3 / 3642039553
ISBN-13 978-3-642-03955-3 / 9783642039553
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 4,5 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Einführung, Ausbildung, Praxis

von Christian Ullenboom

eBook Download (2023)
Rheinwerk Computing (Verlag)
37,43
Moderne GUIs für RIAs und Java-Applikationen

von Ralph Steyer

eBook Download (2022)
Springer Fachmedien Wiesbaden (Verlag)
42,99