Rheinwerk Computing < openbook >

 
Inhaltsverzeichnis
Vorwort
Teil I Grundlagen
1 Android – eine offene, mobile Plattform
2 Hallo Android!
3 Von der Idee zur Veröffentlichung
Teil II Elementare Anwendungsbausteine
4 Wichtige Grundbausteine von Apps
5 Benutzeroberflächen
6 Multitasking
Teil III Gerätefunktionen nutzen
7 Telefonieren und surfen
8 Sensoren, GPS und Bluetooth
Teil IV Dateien und Datenbanken
9 Dateien lesen, schreiben und drucken
10 Datenbanken
Teil V Multimedia und Produktivität
11 Multimedia
12 Kontakte und Organizer
A Einführung in Kotlin
B Jetpack Compose
C Häufig benötigte Codebausteine
D Literaturverzeichnis
E Die Begleitmaterialien
Stichwortverzeichnis

Ihre Meinung?
Spacer
<< zurück
Android 11 von Thomas Künneth
Das Praxisbuch für App-Entwickler
Buch: Android 11

Android 11
Pfeil A Einführung in Kotlin
Pfeil A.1 Überblick
Pfeil A.1.1 Hello, Kotlin
Pfeil A.1.2 Beim Start Argumente übergeben
Pfeil A.2 Datentypen
Pfeil A.2.1 Zahlen
Pfeil A.2.2 Zeichen und Zeichenketten
Pfeil A.2.3 Wahrheitswerte
Pfeil A.2.4 Felder
Pfeil A.3 Programmlogik
Pfeil A.3.1 Funktionen
Pfeil A.3.2 Programmfluss
Pfeil A.3.3 Variablen und Eigenschaften
Pfeil A.4 Null-Sicherheit
Pfeil A.4.1 Nullbare Typen
Pfeil A.4.2 Elvis Operator und unsicherer Zugriff
Pfeil A.5 Objektorientierung
Pfeil A.5.1 Einfache Klassen
Pfeil A.5.2 Sekundäre Konstruktoren und init-Blöcke
Pfeil A.5.3 Gleichheit und Identität
Pfeil A.5.4 Vererbung
Pfeil A.6 Fortgeschrittene Themen
Pfeil A.6.1 Singletons und Companion-Objekte
Pfeil A.6.2 Sichtbarkeit
Pfeil A.6.3 Erweiterungen
Pfeil A.6.4 Kompakter Code
Pfeil A.7 Zusammenfassung
 
Zum Seitenanfang

A    Einführung in Kotlin Zur vorigen ÜberschriftZur nächsten Überschrift

Sie kennen schon eine Programmiersprache und möchten sich kompakt über die Syntax und die wichtigsten Konzepte von Kotlin informieren? Dieser Anhang bietet einen schnellen Überblick.

Im Juli 2011 stellte die in Sankt Petersburg ansässige Firma JetBrains »Project Kotlin« als Sprache für die Java Virtual Machine (JVM) vor. Kotlin-Quelltext wird hierzu in Java-Bytecode übersetzt. Seit Februar 2012 ist Kotlin Open Source und steht unter der Apache-2-Lizenz. Die nach einer russischen Insel im Finnischen Meerbusen (30 km westlich von Sankt Petersburg in der Ostsee gelegen) benannte Sprache ist statisch typisiert und objektorientiert. Sie kann bei Bedarf nach JavaScript transpiliert werden. Die Technologie Kotlin/Native ermöglicht zudem die Ausführung auf Plattformen ohne virtuelle Maschine, beispielsweise iOS, sowie den Raspberry Pi. Ein LLVM[ 18 ](https://llvm.org/)-basiertes Compiler-Backend erzeugt dann Maschinensprache.

 
Zum Seitenanfang

A.1    Überblick Zur vorigen ÜberschriftZur nächsten Überschrift

Kotlin möchte eine moderne Alternative zu Java sein. Ihre Syntax ist zu Java nicht kompatibel. Allerdings spielt die Interoperabilität eine wichtige Rolle. So können vorhandene Java-Bibliotheken in vollem Umfang genutzt werden. Seit Googles Entwicklermesse IO 2017 wird die Sprache offiziell in Android Studio unterstützt. Und zwei Jahre später löste Kotlin Java als bevorzugte Sprache für neue App-Projekte ab. Auch außerhalb von Android findet Kotlin immer mehr Freunde und wird oft für das Erstellen von Geschäftsanwendungen und Microservices verwendet. Neben IntelliJ und Android Studio können unter anderem Eclipse, NetBeans sowie Visual Studio Code für das Entwickeln mit Kotlin verwendet werden.

 
Zum Seitenanfang

A.1.1    Hello, Kotlin Zur vorigen ÜberschriftZur nächsten Überschrift

Wenn Sie außerhalb eines App-Projekts mit Kotlin experimentieren möchten, bietet sich die Seite https://play.kotlinlang.org/ (Abbildung A.1) an.

Dort können Sie Code ausprobieren, ohne weitere Software herunterladen und installieren zu müssen. Ein sehr einfaches Beispiel zeigt Listing A.1.

Der offizielle Kotlin-Onlinespielplatz

Abbildung A.1    Der offizielle Kotlin-Onlinespielplatz

Alternativ können Sie in Android Studio sogenannte Scratch Files verwenden, um Kotlin-Codeschnipsel auszuprobieren. Scratch Files werden mit File • New • Scratch File erzeugt. Die daraufhin angezeigte Auswahlliste New Scratch File ist in Abbildung A.2 zu sehen.

Bitte beachten Sie, dass das File-Menü nur zugänglich ist, wenn das Hauptfenster angezeigt wird, nicht aber über den Willkommensbildschirm. Sie müssen deshalb ein Projekt geöffnet haben.

Ein neues Scratch File erzeugen

Abbildung A.2    Ein neues Scratch File erzeugen

Ein Klick auf Kotlin öffnet das Scratch File in einem Editorfenster (Abbildung A.3). Die Checkboxen Interactive mode und Use REPL steuern, wann Codeänderungen übernommen und welche Bereiche des Quelltextes neu ausgewertet werden. Für den Einstieg empfehle ich Ihnen, beide zu deaktivieren und nach Ihrer Eingabe einfach den grünen Play-Button in der linken oberen Ecke des Editorfensters anzuklicken. Scratch Files werden im Werkzeugfenster Project unterhalb des Knotens Scratches and Consoles • Scratches angezeigt. Allerdings muss hierzu die Sicht Project aktiv sein.

Ein Kotlin-Scratch File in Android Studio

Abbildung A.3    Ein Kotlin-Scratch File in Android Studio

Die Funktion main() bildet den Einstiegspunkt in Kotlin-Programme. Sie gehört nicht zu einer Klasse und wird in einer beliebigen Datei mit der Endung .kt abgelegt. Solche Funktionen werden Toplevel-Funktionen genannt. Die aufgerufene Funktion print() gibt den übergebenen Text ohne Zeilenumbruch aus.

fun main() {
print("Hello, Kotlin")
}

Listing A.1    Das »Hello, world«-Beispiel in Kotlin

Neben Toplevel-Funktionen gibt es auch Toplevel-Variablen, also Variablen ohne Bezug zu einer Klasse.

val greeting = "Hello, Kotlin"

fun main() {
println(greeting)
}

Listing A.2    Ausgabe einer Toplevel-Variablen

Der Play-Button im Scratch-File-Editorfenster ruft nicht die main()-Funktion auf, sondern beginnt nur mit der Auswertung des Codeschnipsels. Beim Nachvollziehen meiner Beispiele müssen Sie deshalb in der letzten Zeile Ihrer Eingabe mit main() selbst für den Aufruf sorgen.

Kommentare und Dokumentation

Wenn Sie Ihr Programm mit Kommentaren versehen möchten, stehen Ihnen die aus vielen anderen Sprachen bekannten Zeilen- (// ...) und Blockkommentare (/* ... */) zur Verfügung. Die Sprache zur Erstellung von Dokumentation wird analog zu Java KDoc[ 19 ](https://kotlinlang.org/docs/reference/kotlin-doc.html) genannt. Das korrespondierende Kommandozeilentool heißt Dokka. KDoc-Dokumentation beginnt mit /** und endet mit */. Jede Kommentarzeile kann mit einem * beginnen. Dieser gehört nicht zu dem Kommentartext. Block Tags beginnen mit @ und beschreiben unter anderem Parameter (@param) und Rückgabewerte (@return).

Konventionen

Dateinamen folgen dem CamelCase-Muster. Die in Java übliche Regel »Jede Klasse in ihre eigene .java-Datei« gibt es in Kotlin nicht. Sie könnten deshalb beliebig viele Funktionen oder Klassen in einer Quelltextdatei zusammenfassen. Ratsam ist das aber nicht. .kt-Dateien sollten nur Code enthalten, der inhaltlich eine Einheit bildet. Mehr als ein paar Hundert Zeilen Quelltext sind ohnehin kaum noch zu überblicken. Aber das gilt für alle Programmiersprachen.

Paketnamen werden vollständig kleingeschrieben. Sie enthalten keine Unterstriche. Paket-Definitionen beginnen mit dem Schlüsselwort package und bilden die erste Anweisung des Quelltextes (nach etwaigen Kommentarzeilen mit Lizenz- oder Copyrightinformationen). Namen von Klassen und Objekten beginnen mit einem Großbuchstaben und folgen dem CamelCase-Muster. Namen von Funktionen, Eigenschaften und lokalen Variablen beginnen mit einem Kleinbuchstaben und folgen dem camelCase-Muster. Sie enthalten keine Unterstriche.

Weitere Informationen finden Sie unter https://kotlinlang.org/docs/reference/coding-conventions.html.

 
Zum Seitenanfang

A.1.2    Beim Start Argumente übergeben Zur vorigen ÜberschriftZur nächsten Überschrift

Wenn Sie einem Programm beim Start Parameter übergeben möchten, sieht die main()-Funktion aus, wie in Listing A.3 zu sehen. Sie erhält einen Parameter, nämlich ein Feld mit Zeichenketten. Die Klasse Array enthält unter anderem die Methode forEach(). Für jedes Element wird eine sogenannte Aktion aufgerufen. Das ist der Lambda-Ausdruck in geschweiften Klammern. Das Beispiel gibt nur das Element aus. Es wird dem Code über die Variable arg mitgegeben.

fun main(args: Array<String>) {
args.forEach( { arg -> println(arg) })
}

Listing A.3    Beim Start Parameter übergeben

[+]  Tipp

Über die Settings (inline image) im Kotlin Playground können Sie Startparameter festlegen.

Anders als beispielsweise in Java beginnen Variablendefinitionen nicht mit dem Typ, sondern dem Bezeichner. Beide sind durch einen Doppelpunkt getrennt: args: Array<String>. Außerhalb von Funktions- bzw. Methodensignaturen müssen Sie den Ausdruck mit var (mehrfache Zuweisungen sind erlaubt) oder val (der Variable kann nur einmal ein Wert zugewiesen werden) beginnen. Zum Schluss kommt der Wert, den die Variable annehmen soll.

var i: Int = 42
var j: String = "Hallo"
val k: Double = 3.14

Wenn Kotlin den Typ durch den zugewiesenen Ausdruck ermitteln kann, braucht er nicht angegeben zu werden. Diese Fähigkeit wird Typinferenz genannt.

var i = 42
var j = "Hallo"
val k = 3.14

Funktionsparameter sind in Kotlin unveränderlich. In Java müssen sie hingegen explizit auf final gesetzt werden. Deshalb ist Listing A.4 nicht korrekt (»Val cannot be reassigned«).

fun main(args: Array<String>) {
args = emptyArray<String>()
}

Listing A.4    Zuweisungen an Funktionsparameter sind nicht zulässig

Die Funktion emptyArray() erzeugt ein leeres Feld des angegebenen Typs. Welche Datentypen Kotlin kennt, sehen wir uns im folgenden Abschnitt etwas genauer an.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
Zur Rheinwerk-Konferenz für Kotlin
 Buchempfehlungen
Zum Rheinwerk-Shop: Kotlin

Kotlin


Zum Rheinwerk-Shop: Praxisbuch Usability und UX

Praxisbuch Usability und UX


Zum Rheinwerk-Shop: Flutter und Dart

Flutter und Dart


Zum Rheinwerk-Shop: App-Design

App-Design


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2023
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern