Sie sind hier
E-Book

Java-Intensivkurs

In 14 Tagen lernen Projekte erfolgreich zu realisieren

AutorMarco Block
VerlagSpringer-Verlag
Erscheinungsjahr2009
Seitenanzahl291 Seiten
ISBN9783642039553
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis39,99 EUR

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.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

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

Blick ins Buch
Inhaltsverzeichnis
1 Tag 1: Vorbereitungen und Javas kleinste Bausteine21
1.1 Warum gerade mit Java beginnen?22
1.2 Installation von Java23
1.2.1 Wahl einer Entwicklungsumgebung23
1.2.2 Testen wir das installierte Java-System24
1.3 Vorteile des Selbststudiums26
1.4 Primitive Datentypen und ihre Wertebereiche27
1.4.1 Primitive Datentypen allgemein28
1.4.2 Primitive Datentypen in Java28
1.5 Variablen und Konstanten30
1.5.1 Deklaration von Variablen30
1.5.2 Variablen versus Konstanten31
1.6 Primitive Datentypen und ihre Operationen32
1.6.1 Datentyp boolean32
1.6.2 Datentyp char35
1.6.3 Datentyp int35
1.6.4 Datentypen byte, short und long36
1.6.5 Datentypen float und double37
1.7 Umwandlungen von Datentypen38
1.7.1 Explizite Typumwandlung39
1.7.2 Übersicht zu impliziten Typumwandlungen40
1.7.3 Die Datentypen sind für die Operation entscheidend40
1.8 Zusammenfassung und Aufgaben41
2 Tag 2: Grundlegende Prinzipien der Programmentwicklung43
2.1 Programm als Kochrezept44
2.2 Methoden der Programmerstellung45
2.2.1 Sequentieller Programmablauf46
2.2.2 Verzweigungen46
2.2.3 Sprünge47
2.2.4 Schleifen47
2.2.5 Parallelität47
2.2.6 Kombination zu Programmen48
2.3 Programme in Java48
2.3.1 Erstellen eines Javaprogramms in Pseudocode49
2.3.2 Erstellen eines Javaprogramms49
2.4 Programmieren mit einem einfachen Klassenkonzept50
2.5 Sequentielle Anweisungen52
2.6 Verzweigungen53
2.6.1 Verzweigung mit if54
2.6.2 Verzweigung mit switch55
2.7 Verschiedene Schleifentypen56
2.7.1 Schleife mit for56
2.7.2 Schleife mit while58
2.7.3 Schleife mit do-while59
2.8 Sprunganweisungen60
2.8.1 Sprung mit break60
2.8.2 Sprung mit continue62
2.9 Funktionen in Java63
2.10 Zusammenfassung und Aufgaben66
3 Tag 3: Daten laden und speichern68
3.1 Externe Programmeingaben69
3.2 Daten aus einer Datei einlesen70
3.3 Daten in eine Datei schreiben72
3.4 Daten von der Konsole einlesen72
3.5 Zusammenfassung und Aufgaben73
4 Tag 4: Verwendung einfacher Datenstrukturen75
4.1 Arrays76
4.1.1 Deklaration und Zuweisung77
4.1.2 Vereinfachte Schleife mit for78
4.2 Matrizen oder multidimensionale Arrays78
4.3 Conway's Game of Life79
4.3.1 Einfache Implementierung81
4.3.2 Auswahl besonderer Muster und Ausblick84
4.4 Zusammenfassung und Aufgaben84
5 Tag 5: Debuggen und Fehlerbehandlungen86
5.1 Das richtige Konzept87
5.2 Exceptions in Java89
5.2.1 Einfache try-catch-Behandlung90
5.2.2 Mehrfache try-catch-Behandlung91
5.3 Fehlerhafte Berechnungen aufspüren92
5.3.1 Berechnung der Zahl pi nach Leibniz92
5.3.2 Zeilenweises Debuggen und Breakpoints95
5.4 Zusammenfassung und Aufgaben95
6 Tag 6: Erweitertes Klassenkonzept97
6.1 Entwicklung eines einfachen Fußballmanagers98
6.2 Spieler und Trainer98
6.2.1 Generalisierung und Spezialisierung98
6.2.2 Klassen und Vererbung99
6.2.3 Modifizierer public und private101
6.2.4 Objekte und Instanzen102
6.2.5 Konstruktoren in Java103
6.3 Torwart105
6.4 Die Mannschaft106
6.5 Turniere und Freundschaftsspiele107
6.5.1 Ein Interface Freundschaftsspiel festlegen107
6.5.2 Freundschaftsspiel FC Steinhausen-Oderbrucher SK110
6.5.3 Beispiel zu Interface113
6.5.4 Interface versus abstrakte Klasse115
6.6 Zusammenfassung und Aufgaben116
7 Tag 7: Aufarbeitung der vorhergehenden Kapitel118
7.1 Referenzvariablen119
7.2 Zugriff auf Attribute und Methoden durch Punktnotation120
7.3 Die Referenzvariable this121
7.4 Prinzip des Überladens121
7.4.1 Überladung von Konstruktoren122
7.4.2 Der Copy-Konstruktor123
7.5 Garbage Collector123
7.6 Statische Attribute und Methoden124
7.7 Primitive Datentypen und ihre Wrapperklassen125
7.8 Die Klasse String126
7.8.1 Erzeugung und Manipulation von Zeichenketten126
7.8.2 Vergleich von Zeichenketten127
7.9 Zusammenfassung und Aufgaben129
8 Tag 8: Verwendung von Bibliotheken131
8.1 Standardbibliotheken132
8.2 Funktionen der Klasse Math134
8.3 Zufallszahlen in Java134
8.3.1 Ganzzahlige Zufallszahlen vom Typ int und long135
8.3.2 Zufallszahlen vom Typ float und double136
8.3.3 Weitere nützliche Funktionen der Klasse Random136
8.4 Das Spielprojekt BlackJack137
8.4.1 Spielregeln137
8.4.2 Spieler, Karten und Kartenspiel138
8.4.2.1 Verwendungsbeispiel für die Datenstruktur Vector138
8.4.2.2 Implementierung der Klassen Spieler, Karteund Kartenspiel140
8.4.3 Die Spielklasse BlackJack143
8.5 JAMA -- Lineare Algebra149
8.6 Eine eigene Bibliothek bauen151
8.7 Zusammenfassung und Aufgaben152
9 Tag 9: Grafische Benutzeroberflächen154
9.1 Fenstermanagement unter AWT155
9.1.1 Ein Fenster lokal erzeugen155
9.1.2 Vom Fenster erben und es zentrieren156
9.2 Zeichenfunktionen innerhalb eines Fensters157
9.2.1 Textausgaben158
9.2.2 Zeichenfunktionen158
9.2.3 Die Klasse Color159
9.2.4 Bilder laden und anzeigen160
9.3 Auf Fensterereignisse reagieren und sie behandeln162
9.3.1 Fenster mit dem Interface WindowListener schließen162
9.3.2 GUI-Elemente und ihre Ereignisse165
9.3.2.1 Layoutmanager165
9.3.2.2 Die Komponenten Label und Button165
9.3.2.3 Die Komponente TextField167
9.4 Auf Mausereignisse reagieren168
9.5 Zusammenfassung und Aufgaben170
10 Tag 10: Appletprogrammierung171
10.1 Kurzeinführung in HTML172
10.2 Applets im Internet172
10.3 Funktionen eines Applets173
10.4 Verwendung des Appletviewers174
10.5 Eine Applikation zum Applet umbauen176
10.5.1 Konstruktor zu init176
10.5.2 paint-Methoden anpassen177
10.5.3 TextField-Beispiel zum Applet umbauen178
10.6 Flackernde Applets vermeiden179
10.6.1 Die Ghosttechnik anwenden181
10.6.2 Die update-Methode überschreiben182
10.7 Ein Beispiel mit mouseDragged183
10.8 Diebstahl von Applets erschweren184
10.8.1 Download und Dekompilierung185
10.8.2 Verwirrung durch einen Obfuscator187
10.9 Zusammenfassung und Aufgaben187
11 Tag 11: Techniken der Programmentwicklung189
11.1 Der Begriff Algorithmus190
11.2 Techniken zum Entwurf von Algorithmen190
11.2.1 Prinzip der Rekursion190
11.2.2 Brute Force192
11.2.3 Greedy193
11.2.4 Dynamische Programmierung und Memoisation193
11.2.5 Teile und Herrsche195
11.3 Algorithmen miteinander vergleichen195
11.4 Kleine algorithmische Probleme196
11.4.1 Identifikation und Erzeugung von Primzahlenmit Brute Force196
11.4.2 Sortieralgorithmen197
11.4.2.1 InsertionSort197
11.4.2.2 BubbleSort198
11.4.2.3 QuickSort199
11.4.3 Needleman-Wunsch-Algorithmus201
11.5 Zusammenfassung und Aufgaben203
12 Tag 12: Bildverarbeitung204
12.1 Das RGB-Farbmodell205
12.2 Grafische Spielerei: Apfelmännchen207
12.2.1 Mathematischer Hintergrund207
12.2.2 Das Apfelmännchen-Fraktal in grau209
12.2.3 Die Klasse BufferedImage211
12.2.4 Bilder laden und speichern212
12.2.5 Das Apfelmännchen-Fraktal in Farbe214
12.3 Bilder bearbeiten217
12.3.1 Ein Bild invertieren218
12.3.2 Erstellung eines Grauwertbildes219
12.3.3 Binarisierung eines Grauwertbildes220
12.4 Zusammenfassung und Aufgaben221
13 Tag 13: Methoden der Künstlichen Intelligenz222
13.1 Mustererkennung223
13.1.1 Einlesen der Trainingsdaten223
13.1.2 k-nn Algorithmus228
13.1.2.1 Visualisierung des Algorithmus228
13.1.2.2 Implementierung eines k-nn Klassifikators228
13.1.3 k-means Algorithmus231
13.1.3.1 Bestimmung der k Prototypen231
13.1.3.2 Expectation-Maximizationals Optimierungsverfahren232
13.1.3.3 Allgemeine Formulierungdes k-means Algorithmus233
13.1.3.4 Implementierung des k-means233
13.2 Ein künstlicher Spielegegner237
13.2.1 Der MinMax-Algorithmus238
13.2.2 MinMax mit unbegrenzter Suchtiefe238
13.2.3 MinMax mit begrenzter Suchtiefe und Bewertungsfunktion240
13.2.4 Spieleprojekt TicTacToe241
13.3 Zusammenfassung und Aufgaben247
14 Tag 14: Entwicklung einer größeren Anwendung248
14.1 Entwurf eines Konzepts249
14.1.1 GUI Klassen250
14.1.2 Spiellogik251
14.1.3 Spieldatenverwaltung251
14.1.4 Komplettes Klassendiagramm253
14.2 Implementierung253
14.2.1 Klasse TeeTristBox253
14.2.2 Klasse TeeTristStein253
14.2.3 Klasse TeeTristSpielfeld257
14.2.4 Klasse SpielThread261
14.2.5 Klasse TeeTristPanel264
14.2.6 Klasse TeeTrist265
14.3 Spielen wir ein Spiel TeeTrist266
14.4 Dokumentation mit javadoc266
14.5 Zusammenfassung und Aufgaben267
15 Java -- Weiterführende Konzepte269
15.1 Professionelle Entwicklungsumgebungen270
15.2 Das Klassendiagramm als Konzept einer Software270
15.3 Klassendiagramm mit UML270
15.3.1 Klasse271
15.3.2 Vererbung271
15.3.3 Beziehungen zwischen Klassen272
15.3.3.1 Beziehungen272
15.3.3.2 Kardinalitäten272
15.3.3.3 Aggregation und Komposition273
15.4 Verwendung externer Bibliotheken273
15.5 Zusammenarbeit in großen Projekten274
Glossar275
Literaturverzeichnis280
Sachverzeichnis283

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

FREIE WERKSTATT

FREIE WERKSTATT

Die Fachzeitschrift FREIE WERKSTATT berichtet seit der ersten Ausgaben 1994 über die Entwicklungen des Independent Aftermarkets (IAM). Hauptzielgruppe sind Inhaberinnen und Inhaber, Kfz-Meisterinnen ...

care konkret

care konkret

care konkret ist die Wochenzeitung für Entscheider in der Pflege. Ambulant wie stationär. Sie fasst topaktuelle Informationen und Hintergründe aus der Pflegebranche kompakt und kompetent für Sie ...

die horen

die horen

Zeitschrift für Literatur, Kunst und Kritik."...weil sie mit großer Aufmerksamkeit die internationale Literatur beobachtet und vorstellt; weil sie in der deutschen Literatur nicht nur das Neueste ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...

Euro am Sonntag

Euro am Sonntag

Deutschlands aktuelleste Finanz-Wochenzeitung Jede Woche neu bietet €uro am Sonntag Antworten auf die wichtigsten Fragen zu den Themen Geldanlage und Vermögensaufbau. Auch komplexe Sachverhalte ...