Urheberrecht
- Abschnitt I: Grundlagen der Programmierung
Einführung
Warum Kotlin?
Hallo, Welt!
var & val
Datentypen
Funktionen
if-Ausdrücke
String-Vorlagen
Zahlentypen
Boolesche Werte
Wiederholung mit while
Schleifen & Bereiche
Das in Schlüsselwort
Ausdrücke & Anweisungen
Zusammenfassung 1
- Abschnitt II: Einführung in Objekte
Objekte überall
Klassen erstellen
Eigenschaften
Konstruktoren
Einschränkung der Sichtbarkeit
Pakete
Testen
Ausnahmen
Listen
Variable Argumentlisten
Mengen
Karten
Eigenschaftszugriffe
Zusammenfassung 2
- Abschnitt III: Benutzerfreundlichkeit
Erweiterungsfunktionen
Benannte & Standardargumente
Überladung
when-Ausdrücke
Aufzählungen
Datenklassen
Deklarationen mit Destrukturierung
Nullable Typen
Sichere Aufrufe & der Elvis-Operator
Nicht-Null-Assertionen
Erweiterungen für Nullable-Typen
Einführung in Generika
Erweiterungseigenschaften
break & continue
- Abschnitt IV: Funktionale Programmierung
Lambdas
Die Bedeutung von Lambdas
Operationen auf Sammlungen
Mitgliedsreferenzen
Höhere Funktionen
Manipulieren von Listen
Karten erstellen
Sequenzen
Lokale Funktionen
Listen falten
Rekursion
- Abschnitt V: Objektorientierte Programmierung
Schnittstellen
Komplexe Konstruktoren
Sekundäre Konstruktoren
Vererbung
Initialisierung der Basisklasse
Abstrakte Klassen
Upcasting
Polymorphismus
Komposition
Vererbung & Erweiterungen
Klassen-Delegation
Downcasting
Versiegelte Klassen
Typprüfung
Verschachtelte Klassen
Objekte
Innere Klassen
Begleitobjekte
- Abschnitt VI: Vermeidung von Fehlern
Ausnahmebehandlung
Anweisungen überprüfen
Der Nothing-Typ
Ressourcenbereinigung
Protokollierung
Komponententest
- Abschnitt VII: Werkzeuge
Erweiterungslambdas
Bereichsfunktionen
Generika erstellen
Operatorüberladung
Operatoren verwenden
Eigenschaftsdelegation
Werkzeuge zur Eigenschaftsdelegation
Lazy Initialization
Späte Initialisierung
- Anhänge
Anhang A: AtomicTest
Anhang B: Java-Interoperabilität