Einfach Java - Gleich richtig programmieren lernen

Einfach Java - Gleich richtig programmieren lernen

von: Michael Inden

dpunkt, 2021

ISBN: 9783969105436

Sprache: Deutsch

424 Seiten, Download: 18660 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Einfach Java - Gleich richtig programmieren lernen



  Vorwort 7  
  I Einstieg 23  
     1 Einführung 25  
        1.1 Java im Überblick 25  
        1.2 Los geht's – Installation 27  
           1.2.1 Java-Download 27  
           1.2.2 Installation des JDKs 29  
           1.2.3 Nacharbeiten nach der Java-Installation 29  
           1.2.4 Java-Installation prüfen 30  
        1.3 Entwicklungsumgebungen 31  
           1.3.1 Installation von Eclipse 32  
           1.3.2 Eclipse starten 34  
           1.3.3 Erstes Projekt in Eclipse 36  
           1.3.4 Erste Klasse in Eclipse 38  
     2 Schnelleinstieg 41  
        2.1 Hallo Welt (Hello World) 41  
        2.2 Variablen und Datentypen 42  
           2.2.1 Definition von Variablen 42  
           2.2.2 Bezeichner (Variablennamen) 45  
        2.3 Operatoren im Überblick 47  
           2.3.1 Arithmetische Operatoren 47  
           2.3.2 Zuweisungsoperatoren 50  
           2.3.3 Vergleichsoperatoren 52  
           2.3.4 Logische Operatoren 53  
        2.4 Fallunterscheidungen 54  
        2.5 Methoden 58  
           2.5.1 Methoden aus dem JDK nutzen 58  
           2.5.2 Eigene Methoden definieren 59  
           2.5.3 Nützliche Beispiele aus dem JDK 62  
           2.5.4 Signatur einer Methode 65  
           2.5.5 Fehlerbehandlung und Exceptions 66  
        2.6 Kommentare 66  
        2.7 Schleifen 67  
           2.7.1 Die for-Schleife 67  
           2.7.2 Die for-each-Schleife 68  
           2.7.3 Die while-Schleife 69  
           2.7.4 Die do-while-Schleife 70  
        2.8 Rekapitulation 71  
        2.9 Weiterführende Dokumentation für nächste Schritte 72  
        2.10 Aufgaben und Lösungen 73  
           2.10.1 Aufgabe 1: Mathematische Berechnungen 73  
           2.10.2 Aufgabe 2: Methode und if 73  
           2.10.3 Aufgabe 3: Selbstabholerrabatt 74  
           2.10.4 Aufgabe 4: Schleifen mit Berechnungen 75  
           2.10.5 Aufgabe 5: Schleifen und fixe Schrittweite 76  
           2.10.6 Aufgabe 6: Schleifen mit variabler Schrittweite 76  
           2.10.7 Aufgabe 7: Verschachtelte Schleifen – Variante 1 77  
           2.10.8 Aufgabe 8: Verschachtelte Schleifen – Variante 2 78  
           2.10.9 Aufgabe 9: Verschachtelte Schleifen – Variante 3 79  
     3 Strings 81  
        3.1 Schnelleinstieg 81  
           3.1.1 Gebräuchliche Stringaktionen 81  
           3.1.2 Suchen und Ersetzen 85  
           3.1.3 Informationen extrahieren und formatieren 87  
        3.2 Nächste Schritte 89  
           3.2.1 Die Klasse Scanner 90  
           3.2.2 Mehrzeilige Strings (Text Blocks) 93  
           3.2.3 Strings und char[]s 94  
        3.3 Praxisbeispiel: Text in Title Case wandeln 96  
        3.4 Aufgaben und Lösungen 98  
           3.4.1 Aufgabe 1: Länge, Zeichen und Enthaltensein 98  
           3.4.2 Aufgabe 2: Title Case mit Scanner 98  
           3.4.3 Aufgabe 3: Zeichen wiederholen 99  
           3.4.4 Aufgabe 4: Vokale raten 100  
           3.4.5 Aufgabe 5: String Merge 102  
     4 Arrays 105  
        4.1 Schnelleinstieg 105  
           4.1.1 Gebräuchliche Aktionen 105  
           4.1.2 Mehrdimensionale Arrays 111  
        4.2 Nächste Schritte 112  
           4.2.1 Eindimensionale Arrays 113  
           4.2.2 Mehrdimensionale Arrays 117  
        4.3 Praxisbeispiel: Flächen füllen 121  
        4.4 Aufgaben und Lösungen 124  
           4.4.1 Aufgabe 1: Durcheinanderwürfeln eines Arrays 124  
           4.4.2 Aufgabe 2: Arrays kombinieren 125  
           4.4.3 Aufgabe 3: Rotation um eine oder mehrere Positionen 126  
           4.4.4 Aufgabe 4: Zweidimensionales String-Array ausgeben 128  
           4.4.5 Aufgabe 5: Dreieckiges Array: Upside Down 129  
     5 Klassen und Objektorientierung 131  
        5.1 Schnelleinstieg 131  
           5.1.1 Grundlagen zu Klassen und Objekten 132  
           5.1.2 Eigenschaften (Attribute) 134  
           5.1.3 Verhalten (Methoden) 139  
           5.1.4 Objekte vergleichen – die Rolle von equals() 142  
        5.2 Nächste Schritte 145  
           5.2.1 Klassen ausführbar machen 145  
           5.2.2 Imports und Packages 148  
           5.2.3 Übergang zum Einsatz einer IDE 150  
           5.2.4 Imports und Packages: Auswirkungen auf unsere Applikation 154  
           5.2.5 Verstecken von Informationen 160  
        5.3 Vererbung 164  
           5.3.1 Basisklassen und abstrakte Basisklassen 165  
           5.3.2 Overloading und Overriding 167  
        5.4 Die Klasse Object 169  
           5.4.1 Beispielklasse Person 170  
           5.4.2 Die Methode toString() 171  
           5.4.3 Ergänzungen zur Methode equals(Object) 172  
           5.4.4 Typprüfung mit instanceof 172  
           5.4.5 Pattern Matching bei instanceof 173  
        5.5 Schnittstelle (Interface) und Implementierung 174  
        5.6 Records 176  
        5.7 Aufgaben und Lösungen 178  
           5.7.1 Aufgabe 1: Obstkorb 178  
           5.7.2 Aufgabe 2: Superheld 179  
           5.7.3 Aufgabe 3: Zähler 181  
           5.7.4 Aufgabe 4: Zähler mit Überlauf 183  
     6 Collections 187  
        6.1 Schnelleinstieg 187  
           6.1.1 Die Klasse ArrayList 187  
           6.1.2 Die Klasse HashSet 193  
           6.1.3 Iteratoren 197  
           6.1.4 Die Klasse HashMap 199  
        6.2 Nächste Schritte 203  
           6.2.1 Generische Typen (Generics) 203  
           6.2.2 Basisinterfaces für die Containerklassen 208  
        6.3 Praxisbeispiel: Einen Stack selbst realisieren 212  
        6.4 Aufgaben und Lösungen 214  
           6.4.1 Aufgabe 1: Tennisverein-Mitgliederliste 214  
           6.4.2 Aufgabe 2: Liste mit Farbnamen füllen und filtern 215  
           6.4.3 Aufgabe 3: Duplikate entfernen – Variante 1 215  
           6.4.4 Aufgabe 4: Duplikate entfernen – Variante 2 216  
           6.4.5 Aufgabe 5: Hauptstädte 217  
           6.4.6 Aufgabe 6: Häufigkeiten von Namen 217  
           6.4.7 Aufgabe 7: Objekte mit Maps selbst gebaut 218  
           6.4.8 Aufgabe 8: Listenreihenfolge umdrehen (mit Stack) 219  
     7 Ergänzendes Wissen 221  
        7.1 Sichtbarkeits- und Gültigkeitsbereiche 221  
        7.2 Primitive Typen und Wrapper-Klassen 223  
           7.2.1 Grundlagen 223  
           7.2.2 Casting: Typerweiterungen sowie -verkleinerungen 228  
           7.2.3 Konvertierung von Werten 229  
        7.3 Ternary-Operator (?-Operator) 232  
        7.4 Aufzählungen mit enum 233  
        7.5 Switch 235  
        7.6 Moderne Switch Expressions 237  
           7.6.1 Einführendes Beispiel 237  
           7.6.2 Weitere Gründe für die Neuerung 239  
        7.7 Pattern Matching bei Switch Expressions (Java 17 Preview) 241  
           7.7.1 Einführendes Beispiel 241  
           7.7.2 Spezialitäten 242  
        7.8 Break und Continue in Schleifen 244  
           7.8.1 Funktionsweise von break und continue in Schleifen 244  
           7.8.2 Wie macht man es besser? 246  
        7.9 Rekursion 248  
        7.10 Aufgaben und Lösungen 251  
           7.10.1 Aufgabe 1: Würfelspiel 251  
           7.10.2 Aufgabe 2: Prüfung auf Vokale mit switch 252  
           7.10.3 Aufgabe 3: Temperaturumrechnung 252  
           7.10.4 Aufgabe 4: Palindrom-Prüfung mit Rekursion 254  
  II Aufstieg 257  
     8 Mehr zu Klassen und Objektorientierung 259  
        8.1 Wissenswertes zu Vererbung 259  
           8.1.1 Generalisierung und Spezialisierung 259  
           8.1.2 Polymorphie 261  
           8.1.3 Sub-Classing und Sub-Typing 262  
        8.2 Varianten innerer Klassen 263  
           8.2.1 »Normale« innere Klassen 263  
           8.2.2 Statische innere Klassen 264  
           8.2.3 Methodenlokale innere Klassen 265  
           8.2.4 Anonyme innere Klassen 265  
     9 Lambdas und Streams 267  
        9.1 Einstieg in Lambdas 267  
           9.1.1 Syntax von Lambdas 267  
           9.1.2 Functional Interfaces und SAM-Typen 268  
        9.2 Methodenreferenzen 271  
        9.3 Externe vs. interne Iteration 272  
           9.3.1 Externe Iteration 273  
           9.3.2 Interne Iteration 273  
           9.3.3 Das Interface Predicate 274  
        9.4 Streams im Überblick 275  
           9.4.1 Streams erzeugen – Create Operations 276  
           9.4.2 Intermediate und Terminal Operations im Überblick 277  
           9.4.3 Zustandslose Intermediate Operations 277  
           9.4.4 Zustandsbehaftete Intermediate Operations 282  
           9.4.5 Terminal Operations 283  
        9.5 Aufgaben und Lösungen 286  
           9.5.1 Aufgabe 1: Erwachsene aus Personenliste extrahieren 286  
           9.5.2 Aufgabe 2: Stream-API 287  
           9.5.3 Aufgabe 3: Informationen mit Stream-API extrahieren 288  
           9.5.4 Aufgabe 4: Häufigkeiten von Namen 289  
           9.5.5 Aufgabe 5: Kollektoren 289  
     10 Verarbeitung von Dateien 291  
        10.1 Schnelleinstieg 291  
           10.1.1 Das Interface Path und die Utility-Klasse Files 292  
           10.1.2 Anlegen von Dateien und Verzeichnissen 292  
           10.1.3 Inhalt eines Verzeichnisses auflisten 293  
           10.1.4 Pfad ist Datei oder Verzeichnis? 294  
           10.1.5 Dateiaktionen und die Utility-Klasse Files 294  
           10.1.6 Informationen zu Path-Objekten ermitteln 298  
           10.1.7 Kopieren 299  
           10.1.8 Umbenennen 301  
           10.1.9 Löschen 302  
        10.2 Dateibehandlung und die Klasse File 303  
           10.2.1 Konvertierung von Path in File und zurück 304  
           10.2.2 Die Klasse File im Kurzüberblick 304  
           10.2.3 Dateiinhalte verarbeiten und Systemressourcen 305  
        10.3 Praxisbeispiel: Directory-Baum darstellen 307  
           10.3.1 Basisvariante 308  
           10.3.2 Variante mit schönerer Darstellung 310  
           10.3.3 Finale Variante mit ausgeklügelter Darstellung 311  
        10.4 Aufgaben und Lösungen 313  
           10.4.1 Aufgabe 1: Texte in Datei schreiben und wieder lesen 313  
           10.4.2 Aufgabe 2: Dateigrößen 313  
           10.4.3 Aufgabe 3: Existenzprüfung 314  
           10.4.4 Aufgabe 4: Rechteprüfung 314  
           10.4.5 Aufgabe 5: Verzeichnisinhalt auflisten 315  
     11 Fehlerbehandlung mit Exceptions 317  
        11.1 Schnelleinstieg 317  
           11.1.1 Fehlerbehandlung 318  
           11.1.2 Exceptions selbst auslösen – throw 323  
           11.1.3 Eigene Exception-Typen definieren 324  
           11.1.4 Exceptions propagieren – throws 324  
        11.2 Fehlerbehandlung in der Praxis 325  
        11.3 Automatic Resource Management (ARM) 327  
        11.4 Hintergrundwissen: Checked und Unchecked Exceptions 328  
     12 Datumsverarbeitung 331  
        12.1 Schnelleinstieg 331  
           12.1.1 Die Aufzählungen DayOfWeek und Month 331  
           12.1.2 Die Klasse LocalDate 333  
           12.1.3 Die Klassen LocalTime und LocalDateTime 337  
        12.2 Nächste Schritte 339  
           12.2.1 Datumsarithmetik 339  
           12.2.2 Formatierung und Parsing 341  
        12.3 Praxisbeispiel: Kalenderausgabe 343  
        12.4 Aufgaben und Lösungen 346  
           12.4.1 Aufgabe 1: Wochentage 346  
           12.4.2 Aufgabe 2: Freitag, der 13. 347  
           12.4.3 Aufgabe 3: Mehrmals Freitag, der 13. 348  
           12.4.4 Aufgabe 4: Schaltjahre 349  
  III Praxisbeispiele 351  
     13 Praxisbeispiel: Tic Tac Toe 353  
        13.1 Spielfeld initialisieren und darstellen 353  
        13.2 Setzen der Steine 354  
        13.3 Prüfen auf Sieg 355  
        13.4 Bausteine im Einsatz 357  
     14 Praxisbeispiel: CSV-Highscore-Liste einlesen 359  
        14.1 Verarbeitung von Spielständen (Highscores) 359  
        14.2 Extraktion der Daten 361  
        14.3 Besonderheiten der Implementierung 362  
     15 Praxisbeispiel: Worträtsel 363  
        15.1 Applikationsdesign – Vorüberlegungen zur Strukturierung 364  
        15.2 Einlesen der verfügbaren Wörter 364  
        15.3 Hilfsdatenstrukturen 366  
        15.4 Datenmodell 366  
           15.4.1 Datenspeicherung und Initialisierung 366  
           15.4.2 Zufällige Wahl von Richtung, Position, Wort und Buchstabe 368  
           15.4.3 Algorithmus zum Verstecken von Wörtern 368  
           15.4.4 Wort prüfen und platzieren 370  
        15.5 HTML-Erzeugung 372  
        15.6 Hauptapplikation 373  
        15.7 Ausgabe als HTML und Darstellung im Browser 375  
        15.8 Fazit 376  
  IV Schlussgedanken 377  
     16 Gute Angewohnheiten 379  
        16.1 Grundregeln eines guten Programmierstils 379  
        16.2 Coding Conventions 380  
           16.2.1 Grundlegende Namens- und Formatierungsregeln 380  
           16.2.2 Namensgebung 382  
           16.2.3 Dokumentation 385  
           16.2.4 Programmdesign 385  
           16.2.5 Parameterlisten 386  
           16.2.6 Logik und Kontrollfluss 387  
        16.3 Sourcecode-Prüfung 388  
        16.4 JUnit 5: Auch ans Testen denken 390  
           16.4.1 Das JUnit-Framework 390  
           16.4.2 Schreiben und Ausführen von Tests 392  
     17 Schlusswort 395  
  V Anhang 397  
     A Schlüsselwörter im Überblick 399  
     B Schnelleinstieg JShell 403  
     C Grundlagen zur JVM und Infos zum Java-Ökosystem 407  
        C.1 Wissenswertes zur Java Virtual Machine (JVM) 407  
           C.1.1 Einführendes Beispiel 408  
           C.1.2 Ausführung eines Java-Programms 409  
        C.2 Das Java-Ökosystem im Kurzüberblick 410  
     Literaturverzeichnis 413  
     Index 415  

Kategorien

Service

Info/Kontakt