Einstieg in Kotlin -  Thomas Theis

Einstieg in Kotlin (eBook)

Apps entwickeln mit Android Studio

(Autor)

eBook Download: EPUB
2021 | 2. Auflage
526 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-8535-3 (ISBN)
Systemvoraussetzungen
23,92 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Einfach und ohne Vorkenntnisse Kotlin lernen. Mit IntelliJ IDEA lernen Sie die Sprache kennen und steigen dann in die App-Entwicklung mit Android Studio ein. Lernen Sie Schritt für Schritt alle wichtigen Sprachkonzepte kennen. Erfahren Sie, wie Sie Bedienoberflächen programmieren, auf verschiedene Sensoren und Systemdienste zugreifen, Daten speichern, Audio- und Videoaufnahmen weiterverarbeiten und selbstverständlich auch, wie Sie Ihre Apps veröffentlichen.
Ganz gleich, ob Sie von Java umsteigen oder Programmieranfänger sind - Kotlin hat einiges zu bieten, was eingefleischte Anwender anderer Sprachen lockt und für Neulinge von vornherein ein Plus darstellt. Thomas Theis bleibt seinem anfängerfreundlichen Stil auch dann treu, wenn es ein wenig schwieriger wird.

Aus dem Inhalt:

  • Alle Grundlagen der Programmierung
  • IntelliJ IDEA und Android Studio installieren
  • Verzweigungen, Schleifen und Co.
  • Funktionen und funktionale Programmierung
  • Layouts und Menüs aufbauen
  • Standard-Dialoge
  • Sensoren nutzen
  • Spiele und Trainings entwickeln
  • Datenbanken zur Speicherung
  • Gestensteuerung
  • Zugriffsrechte verwalten



Thomas Theis ist Dipl.-Ing. für Technische Informatik und arbeitet als Berater und Trainer. Seit vielen Jahren gibt er als EDV-Dozent Kurse in verschiedenen Programmiersprachen. Er ist Autor vieler erfolgreicher Fachbücher.

2.4    Zahlen mit Nachkommastellen


Zahlen mit Nachkommastellen, auch Fließkommazahlen genannt, werden in Variablen des Datentyps Float oder in Variablen des Datentyps Double gespeichert. Float-Variablen sind nicht so genau wie Double-Variablen. Zudem verfügt der Datentyp Float über einen kleineren Zahlenbereich. Allerdings benötigen Float-Variablen weniger Speicherplatz.

Bei der Ausgabe werden die Nachkommastellen standardmäßig mithilfe des (englischen) Dezimalpunkts abgetrennt. Im Projekt ZahlKomma werden Float- und Double-Variablen anhand einiger Beispiele erläutert.

2.4.1    Datentyp »Float«


Es folgt zunächst Teil 1 des Projekt-Programms:

fun main() {
val f1 = 2.375f
var f2: Float
f2 = 1.0f / 7.0f
println("Float: $f1 $f2")
println("Grenzen: ${Float.MAX_VALUE} ${Float.MIN_VALUE}/n")
...
}

Listing 2.7     Projekt »ZahlKomma«, Teil 1 von 4

Der unveränderlichen Variablen f1 wird der Float-Wert 2.375f zugewiesen. Die Nachkommastellen und das Zeichen f am Ende sorgen dafür, dass sie zu einer Float-Variablen wird. Die veränderliche Variable f2 wird als Float-Variable deklariert. Sie erhält später ihren Wert als Ergebnis der Division der beiden Float-Werte 1.0f und 7.0f.

Die Klasse Float beinhaltet ebenso die Konstanten MIN_VALUE und MAX_VALUE mit den Grenzen des Zahlenbereichs.

Die Ausgabe dieses Programmteils:

Float: 2.375 0.14285715
Grenzen: 3.4028235E38 1.4E-45

Anhand der Ausgabe sehen Sie, dass Float-Werte nur mit einer Genauigkeit von sechs bis sieben Stellen nach dem Komma gespeichert werden. Zum Rechnen mit einer größeren Genauigkeit werden Double-Variablen benötigt.

Sehr große oder sehr kleine Werte werden im Exponentialformat ausgegeben. Die Angabe 1.5e9 würde der Zahl 1,5 × 109 entsprechen, also der Zahl 1.500.000.000. Die Angabe 1.5e-9 würde der Zahl 1,5 × 10–9 entsprechen, also der Zahl 0,0000000015. Die beiden Werte in der Ausgabe repräsentieren die Zahlen 3,4028235 × 1038 bzw. 1,4 × 10-45.

2.4.2    Datentyp »Double«


Nachfolgend Teil 2 des Programms:

fun main() {
...
val d1 = 2.375
var d2: Double
d2 = 1.0 / 7.0
println("Double: $d1 $d2")
println("Grenzen: ${Double.MAX_VALUE} ${Double.MIN_VALUE}/n")
...
}

Listing 2.8     Projekt »ZahlKomma«, Teil 2 von 4

Der unveränderlichen Variablen d1 wird der Double-Wert 2.375 zugewiesen, ohne f am Ende. Die Nachkommastellen sorgen dafür, dass sie zu einer Double-Variablen wird. Die veränderliche Variable d2 wird als Double-Variable deklariert. Sie erhält später ihren Wert als Ergebnis der Division der beiden Double-Werte 1.0 und 7.0.

Auch hier beinhaltet die zugehörige Klasse Double die Konstanten MIN_VALUE und MAX_VALUE mit den Grenzen des Zahlenbereichs.

Die Ausgabe dieses Programmteils:

Double: 2.375 0.14285714285714285
Grenzen: 1.7976931348623157E308 4.9E-324

Sie sehen, dass Double-Werte mit einer Genauigkeit von 15 bis 16 Stellen nach dem Komma gespeichert werden. Zudem ist der Zahlenbereich wesentlich größer.

Versuchen Sie, einen Wert zuzuweisen, der oberhalb des Zahlenbereichs liegt, erscheint eine Warnung, und es wird der Wert Infinity (dt.: unendlich) angenommen. Mit diesem Wert können Sie keine Berechnungen mehr vornehmen. Versuchen Sie, einen Wert zuzuweisen, der unterhalb des Zahlenbereichs liegt, erscheint eine Warnung, und es wird der Wert 0 angenommen.

2.4.3    Exponentialwerte


Wie bereits erwähnt, bieten Exponentialwerte die Möglichkeit, mit sehr großen oder sehr kleinen Werten zu arbeiten, ohne viele Nullen vor oder nach dem Komma anzugeben. Ihre Werte werden im Code mithilfe eines e oder E gekennzeichnet. Es folgt Teil 3 des Programms:

fun main() {
...
val e1 = 1.5e9
val e2 = 1.5e-9
println("Exponential: $e1 $e2/n")
...
}

Listing 2.9     Projekt »ZahlKomma«, Teil 3 von 4

Die Ausgabe dieses Programmteils:

Exponential: 1.5E9 1.5E-9

2.4.4    Formatierung


Soll eine Zahl mit Nachkommastellen formatiert, also auf eine bestimmte Anzahl an Nachkommastellen gerundet werden, haben Sie verschiedene Möglichkeiten.

Zunächst der vierte und letzte Teil des Programms:

import java.text.NumberFormat
import java.util.Locale
import kotlin.math.*

fun main() {
...
val nfg = NumberFormat.getInstance()
nfg.maximumFractionDigits = 3
println("DE-Format: " + nfg.format(d2))

val nfu = NumberFormat.getInstance(Locale.US)
nfu.maximumFractionDigits = 3
println("US-Format: " + nfu.format(d2))

println("Runden: " + round(d2 * 1e3) / 1e3)
}

Listing 2.10     Projekt »ZahlKomma«, Teil 4 von 4

Das Schlüsselwort import wird benötigt, um einem Programm zusätzliche Klassen oder Paketinhalte zur Verfügung zu stellen. Die Klasse NumberFormat aus dem Paket java.text bietet Möglichkeiten zur Formatierung von Zahlen.

Wird die statische Methode getInstance() der Klasse NumberFormat ohne Parameter aufgerufen, liefert sie ein Objekt der Klasse NumberFormat mit den im aktuellen System genutzten Formatangaben, hier also den deutschen Formatangaben. Diese beinhalten zum Beispiel ein Komma zur Abtrennung von Dezimalstellen einer Zahl.

Mithilfe der Eigenschaft maximumFractionDigits können Sie für ein solches NumberFormat-Objekt die maximale Anzahl an Nachkommastellen festlegen, auf die mithilfe dieser Formatangabe gerundet werden kann.

Die Methode format() liefert für ein NumberFormat-Objekt eine Zeichenkette. Diese beinhaltet den Wert, der als Parameter übergeben wird, im zuvor festgelegten Format.

Hinweis

Die Eigenschaft maximumFractionDigits dient in Kotlin zur Vereinfachung der Nutzung der beiden Methoden setMaximumFractionDigits() zum Festlegen der genannten Anzahl und getMaximumFractionDigits() zum Ermitteln der genannten Anzahl. Solche Eigenschaften stehen in Kotlin für viele Methoden zur Verfügung.

Statische Methoden werden nicht für ein bestimmtes Objekt einer Klasse ausgeführt, sondern für die gesamte Klasse. Mehr zur objektorientierten Programmierung sehen Sie in Kapitel 8.

Ein Objekt der Klasse Locale aus dem Paket java.util repräsentiert eine bestimmte Region inklusive der in dieser Region genutzten Formatangaben. Die gewünschte Region wird mithilfe einer Konstanten dieser Klasse festgelegt. Die Konstante US steht für die USA als Region.

Wird die Methode getInstance() mit einem Locale-Objekt als Parameter aufgerufen, liefert sie ein NumberFormat-Objekt mit den zugehörigen Formatangaben. Diese beinhalten zum Beispiel einen Punkt zur Abtrennung von Dezimalstellen einer Zahl.

Mit import kotlin.math.* werden alle Eigenschaften und Methoden des Pakets kotlin.math zur Verfügung gestellt. Die Methode round() dient zum Auf- und Abrunden einer Zahl mit Nachkommastellen auf eine ganze Zahl. In diesem Fall soll auf eine bestimmte Anzahl x an Nachkommastellen gerundet werden. Zu diesem Zweck wird die Zahl zunächst mit 10x multipliziert, anschließend gerundet, danach wieder durch 10x dividiert.

Die Ausgabe dieses letzten Programmteils:

DE-Format: 0,143
US-Format: 0.143
Runden: 0.143

2.4.5    Hilfestellung von IntelliJ IDEA


An dieser Stelle erfolgt ein wichtiger thematischer Einschub. In Projekten müssen häufig zusätzliche Elemente importiert werden. Der Editor von IntelliJ IDEA (und später auch von Android Studio) hilft Ihnen dabei. Das wird am Beispiel des Programmteils aus Abschnitt 2.4.4 gezeigt.

Nehmen wir an, Sie haben noch keine import-Anweisung erstellt und notieren die nachfolgende Anweisung:

val nfg = NumberFormat.getInstance()

Der...

Erscheint lt. Verlag 30.9.2021
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Mathematik / Informatik Informatik Web / Internet
ISBN-10 3-8362-8535-5 / 3836285355
ISBN-13 978-3-8362-8535-3 / 9783836285353
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
Größe: 6,8 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Johannes Ernesti; Peter Kaiser

eBook Download (2023)
Rheinwerk Computing (Verlag)
35,92
Deterministische und randomisierte Algorithmen

von Volker Turau; Christoph Weyer

eBook Download (2024)
De Gruyter (Verlag)
64,95
Das Handbuch für Webentwickler

von Philip Ackermann

eBook Download (2023)
Rheinwerk Computing (Verlag)
39,92