E-Book, Deutsch, 424 Seiten
Reihe: Programmieren mit Java
Inden Einfach Java
1. Auflage 2021
ISBN: 978-3-96910-543-6
Verlag: dpunkt
Format: PDF
Kopierschutz: 1 - PDF Watermark
Gleich richtig programmieren lernen
E-Book, Deutsch, 424 Seiten
Reihe: Programmieren mit Java
ISBN: 978-3-96910-543-6
Verlag: dpunkt
Format: PDF
Kopierschutz: 1 - PDF Watermark
Java lernen - von Anfang an wie ein Experte
- Grundlagen der Java-Programmierung leicht und verständlich
- Java interaktiv im Selbststudium
- Aufgaben und Musterlösungen, Code zum Download
Sie wollen endlich Programmieren lernen und ihre ersten Projekte umsetzen? Dazu bietet sich Java als eine der populärsten Programmiersprachen geradezu an. Dieses Buch erleichtert Ihnen den Einstieg, denn Sie werden auf Ihrer Entdeckungsreise vom Java-Experten Michael Inden begleitet. Er erklärt Ihnen die Grundlagen der Java-Programmierung leicht und verständlich. Insbesondere wird die trockene Theorie auf ein Minimum reduziert und Sie legen immer mit kleinen Beispielen los.
Eine große Rolle dabei spielt der interaktive Einstieg mithilfe der JShell. Damit können kleine Programme direkt ausprobiert werden und Erfolgserlebnisse stellen sich schnell ein. Dieses Vorgehen eignet sich ideal, um im eigenen Tempo Java im Selbststudium zu erlernen. Allmählich werden sowohl die Themen anspruchsvoller als auch die zu erstellenden Programme größer. Als Hilfsmittel lernen Sie dann den Einsatz einer Entwicklungsumgebung sowie der objektorientierten Programmierung kennen. Mit den erlernten Grundlagen können Sie sich immer zielsicherer mit eigenen Projekten beschäftigen.
Das Buch besteht aus in sich abgeschlossenen, aber aufeinander aufbauenden Kapiteln zu den wichtigen Bereichen der Programmiersprache Java. Jedes Kapitel beschreibt die für den Einstieg wichtigen Sprachelemente.
Abgerundet werden viele Kapitel mit Aufgaben und Musterlösungen, sodass das zuvor Gelernte direkt anhand neuer Problemstellungen praktiziert und das Wissen vertieft werden kann. Auch lassen sich die eigenen Fortschritte abschätzen und gegebenenfalls eine Ehrenrunde zur Vertiefung des Wissens einlegen.
Zahlreiche kurze Codebeispiele verdeutlichen die Lerninhalte und laden oftmals zum Experimentieren ein. Gleich von Anfang an lernen Sie, ihren Sourcecode sauber zu strukturieren und einen guten Stil zu verfolgen.
Dipl.-Inform. Michael Inden ist Oracle-zertifizierter Java-Entwickler. Nach seinem Studium in Oldenburg hat er bei diversen internationalen Firmen in verschiedenen Rollen etwa als Softwareentwickler, -architekt, Consultant, Teamleiter, CTO sowie Leiter Academy gearbeitet. Zurzeit ist er freiberuflich als Autor und Trainer in Zürich tätig. Michael Inden hat über zwanzig Jahre Berufserfahrung beim Entwurf komplexer Softwaresysteme gesammelt, an diversen Fortbildungen und mehreren Java-One-Konferenzen teilgenommen. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen sowie dem Coaching. Sein Wissen gibt er gerne als Trainer in internen und externen Schulungen und auf Konferenzen weiter, etwa bei der JAX/W-JAX, JAX London, Oracle Code One, ch.open sowie bei der Java User Group Switzerland.
Autoren/Hrsg.
Weitere Infos & Material
1;Vorwort;7
2;I Einstieg;23
2.1;1 Einführung;25
2.1.1;1.1 Java im Überblick;25
2.1.2;1.2 Los geht's – Installation;27
2.1.2.1;1.2.1 Java-Download;27
2.1.2.2;1.2.2 Installation des JDKs;29
2.1.2.3;1.2.3 Nacharbeiten nach der Java-Installation;29
2.1.2.4;1.2.4 Java-Installation prüfen;30
2.1.3;1.3 Entwicklungsumgebungen;31
2.1.3.1;1.3.1 Installation von Eclipse;32
2.1.3.2;1.3.2 Eclipse starten;34
2.1.3.3;1.3.3 Erstes Projekt in Eclipse;36
2.1.3.4;1.3.4 Erste Klasse in Eclipse;38
2.2;2 Schnelleinstieg;41
2.2.1;2.1 Hallo Welt (Hello World);41
2.2.2;2.2 Variablen und Datentypen;42
2.2.2.1;2.2.1 Definition von Variablen;42
2.2.2.2;2.2.2 Bezeichner (Variablennamen);45
2.2.3;2.3 Operatoren im Überblick;47
2.2.3.1;2.3.1 Arithmetische Operatoren;47
2.2.3.2;2.3.2 Zuweisungsoperatoren;50
2.2.3.3;2.3.3 Vergleichsoperatoren;52
2.2.3.4;2.3.4 Logische Operatoren;53
2.2.4;2.4 Fallunterscheidungen;54
2.2.5;2.5 Methoden;58
2.2.5.1;2.5.1 Methoden aus dem JDK nutzen;58
2.2.5.2;2.5.2 Eigene Methoden definieren;59
2.2.5.3;2.5.3 Nützliche Beispiele aus dem JDK;62
2.2.5.4;2.5.4 Signatur einer Methode;65
2.2.5.5;2.5.5 Fehlerbehandlung und Exceptions;66
2.2.6;2.6 Kommentare;66
2.2.7;2.7 Schleifen;67
2.2.7.1;2.7.1 Die for-Schleife;67
2.2.7.2;2.7.2 Die for-each-Schleife;68
2.2.7.3;2.7.3 Die while-Schleife;69
2.2.7.4;2.7.4 Die do-while-Schleife;70
2.2.8;2.8 Rekapitulation;71
2.2.9;2.9 Weiterführende Dokumentation für nächste Schritte;72
2.2.10;2.10 Aufgaben und Lösungen;73
2.2.10.1;2.10.1 Aufgabe 1: Mathematische Berechnungen;73
2.2.10.2;2.10.2 Aufgabe 2: Methode und if;73
2.2.10.3;2.10.3 Aufgabe 3: Selbstabholerrabatt;74
2.2.10.4;2.10.4 Aufgabe 4: Schleifen mit Berechnungen;75
2.2.10.5;2.10.5 Aufgabe 5: Schleifen und fixe Schrittweite;76
2.2.10.6;2.10.6 Aufgabe 6: Schleifen mit variabler Schrittweite;76
2.2.10.7;2.10.7 Aufgabe 7: Verschachtelte Schleifen – Variante 1;77
2.2.10.8;2.10.8 Aufgabe 8: Verschachtelte Schleifen – Variante 2;78
2.2.10.9;2.10.9 Aufgabe 9: Verschachtelte Schleifen – Variante 3;79
2.3;3 Strings;81
2.3.1;3.1 Schnelleinstieg;81
2.3.1.1;3.1.1 Gebräuchliche Stringaktionen;81
2.3.1.2;3.1.2 Suchen und Ersetzen;85
2.3.1.3;3.1.3 Informationen extrahieren und formatieren;87
2.3.2;3.2 Nächste Schritte;89
2.3.2.1;3.2.1 Die Klasse Scanner;90
2.3.2.2;3.2.2 Mehrzeilige Strings (Text Blocks);93
2.3.2.3;3.2.3 Strings und char[]s;94
2.3.3;3.3 Praxisbeispiel: Text in Title Case wandeln;96
2.3.4;3.4 Aufgaben und Lösungen;98
2.3.4.1;3.4.1 Aufgabe 1: Länge, Zeichen und Enthaltensein;98
2.3.4.2;3.4.2 Aufgabe 2: Title Case mit Scanner;98
2.3.4.3;3.4.3 Aufgabe 3: Zeichen wiederholen;99
2.3.4.4;3.4.4 Aufgabe 4: Vokale raten;100
2.3.4.5;3.4.5 Aufgabe 5: String Merge;102
2.4;4 Arrays;105
2.4.1;4.1 Schnelleinstieg;105
2.4.1.1;4.1.1 Gebräuchliche Aktionen;105
2.4.1.2;4.1.2 Mehrdimensionale Arrays;111
2.4.2;4.2 Nächste Schritte;112
2.4.2.1;4.2.1 Eindimensionale Arrays;113
2.4.2.2;4.2.2 Mehrdimensionale Arrays;117
2.4.3;4.3 Praxisbeispiel: Flächen füllen;121
2.4.4;4.4 Aufgaben und Lösungen;124
2.4.4.1;4.4.1 Aufgabe 1: Durcheinanderwürfeln eines Arrays;124
2.4.4.2;4.4.2 Aufgabe 2: Arrays kombinieren;125
2.4.4.3;4.4.3 Aufgabe 3: Rotation um eine oder mehrere Positionen;126
2.4.4.4;4.4.4 Aufgabe 4: Zweidimensionales String-Array ausgeben;128
2.4.4.5;4.4.5 Aufgabe 5: Dreieckiges Array: Upside Down;129
2.5;5 Klassen und Objektorientierung;131
2.5.1;5.1 Schnelleinstieg;131
2.5.1.1;5.1.1 Grundlagen zu Klassen und Objekten;132
2.5.1.2;5.1.2 Eigenschaften (Attribute);134
2.5.1.3;5.1.3 Verhalten (Methoden);139
2.5.1.4;5.1.4 Objekte vergleichen – die Rolle von equals();142
2.5.2;5.2 Nächste Schritte;145
2.5.2.1;5.2.1 Klassen ausführbar machen;145
2.5.2.2;5.2.2 Imports und Packages;148
2.5.2.3;5.2.3 Übergang zum Einsatz einer IDE;150
2.5.2.4;5.2.4 Imports und Packages: Auswirkungen auf unsere Applikation;154
2.5.2.5;5.2.5 Verstecken von Informationen;160
2.5.3;5.3 Vererbung;164
2.5.3.1;5.3.1 Basisklassen und abstrakte Basisklassen;165
2.5.3.2;5.3.2 Overloading und Overriding;167
2.5.4;5.4 Die Klasse Object;169
2.5.4.1;5.4.1 Beispielklasse Person;170
2.5.4.2;5.4.2 Die Methode toString();171
2.5.4.3;5.4.3 Ergänzungen zur Methode equals(Object);172
2.5.4.4;5.4.4 Typprüfung mit instanceof;172
2.5.4.5;5.4.5 Pattern Matching bei instanceof;173
2.5.5;5.5 Schnittstelle (Interface) und Implementierung;174
2.5.6;5.6 Records;176
2.5.7;5.7 Aufgaben und Lösungen;178
2.5.7.1;5.7.1 Aufgabe 1: Obstkorb;178
2.5.7.2;5.7.2 Aufgabe 2: Superheld;179
2.5.7.3;5.7.3 Aufgabe 3: Zähler;181
2.5.7.4;5.7.4 Aufgabe 4: Zähler mit Überlauf;183
2.6;6 Collections;187
2.6.1;6.1 Schnelleinstieg;187
2.6.1.1;6.1.1 Die Klasse ArrayList;187
2.6.1.2;6.1.2 Die Klasse HashSet;193
2.6.1.3;6.1.3 Iteratoren;197
2.6.1.4;6.1.4 Die Klasse HashMap;199
2.6.2;6.2 Nächste Schritte;203
2.6.2.1;6.2.1 Generische Typen (Generics);203
2.6.2.2;6.2.2 Basisinterfaces für die Containerklassen;208
2.6.3;6.3 Praxisbeispiel: Einen Stack selbst realisieren;212
2.6.4;6.4 Aufgaben und Lösungen;214
2.6.4.1;6.4.1 Aufgabe 1: Tennisverein-Mitgliederliste;214
2.6.4.2;6.4.2 Aufgabe 2: Liste mit Farbnamen füllen und filtern;215
2.6.4.3;6.4.3 Aufgabe 3: Duplikate entfernen – Variante 1;215
2.6.4.4;6.4.4 Aufgabe 4: Duplikate entfernen – Variante 2;216
2.6.4.5;6.4.5 Aufgabe 5: Hauptstädte;217
2.6.4.6;6.4.6 Aufgabe 6: Häufigkeiten von Namen;217
2.6.4.7;6.4.7 Aufgabe 7: Objekte mit Maps selbst gebaut;218
2.6.4.8;6.4.8 Aufgabe 8: Listenreihenfolge umdrehen (mit Stack);219
2.7;7 Ergänzendes Wissen;221
2.7.1;7.1 Sichtbarkeits- und Gültigkeitsbereiche;221
2.7.2;7.2 Primitive Typen und Wrapper-Klassen;223
2.7.2.1;7.2.1 Grundlagen;223
2.7.2.2;7.2.2 Casting: Typerweiterungen sowie -verkleinerungen;228
2.7.2.3;7.2.3 Konvertierung von Werten;229
2.7.3;7.3 Ternary-Operator (?-Operator);232
2.7.4;7.4 Aufzählungen mit enum;233
2.7.5;7.5 Switch;235
2.7.6;7.6 Moderne Switch Expressions;237
2.7.6.1;7.6.1 Einführendes Beispiel;237
2.7.6.2;7.6.2 Weitere Gründe für die Neuerung;239
2.7.7;7.7 Pattern Matching bei Switch Expressions (Java 17 Preview);241
2.7.7.1;7.7.1 Einführendes Beispiel;241
2.7.7.2;7.7.2 Spezialitäten;242
2.7.8;7.8 Break und Continue in Schleifen;244
2.7.8.1;7.8.1 Funktionsweise von break und continue in Schleifen;244
2.7.8.2;7.8.2 Wie macht man es besser?;246
2.7.9;7.9 Rekursion;248
2.7.10;7.10 Aufgaben und Lösungen;251
2.7.10.1;7.10.1 Aufgabe 1: Würfelspiel;251
2.7.10.2;7.10.2 Aufgabe 2: Prüfung auf Vokale mit switch;252
2.7.10.3;7.10.3 Aufgabe 3: Temperaturumrechnung;252
2.7.10.4;7.10.4 Aufgabe 4: Palindrom-Prüfung mit Rekursion;254
3;II Aufstieg;257
3.1;8 Mehr zu Klassen und Objektorientierung;259
3.1.1;8.1 Wissenswertes zu Vererbung;259
3.1.1.1;8.1.1 Generalisierung und Spezialisierung;259
3.1.1.2;8.1.2 Polymorphie;261
3.1.1.3;8.1.3 Sub-Classing und Sub-Typing;262
3.1.2;8.2 Varianten innerer Klassen;263
3.1.2.1;8.2.1 »Normale« innere Klassen;263
3.1.2.2;8.2.2 Statische innere Klassen;264
3.1.2.3;8.2.3 Methodenlokale innere Klassen;265
3.1.2.4;8.2.4 Anonyme innere Klassen;265
3.2;9 Lambdas und Streams;267
3.2.1;9.1 Einstieg in Lambdas;267
3.2.1.1;9.1.1 Syntax von Lambdas;267
3.2.1.2;9.1.2 Functional Interfaces und SAM-Typen;268
3.2.2;9.2 Methodenreferenzen;271
3.2.3;9.3 Externe vs. interne Iteration;272
3.2.3.1;9.3.1 Externe Iteration;273
3.2.3.2;9.3.2 Interne Iteration;273
3.2.3.3;9.3.3 Das Interface Predicate