© S&S Media Group
Kotlin kompakt - Teil 4

Klassen und Objekte in Kotlin erklärt


Klassen und Objekte

Klassen in Kotlin bieten zahlreiche Verbesserungen gegenüber jenen in Java und sorgen so für kompakteren und besseren Code.

Kotlin ist, genau wie Java, eine objektorientierte Programmiersprache (und verfügt daneben über eine bemerkenswerte Vielzahl von Features aus der funktionalen Programmierung!).

Also solche bietet sie natürlich Klassen mit Kapselung, Vererbung, Polymorphie und allen anderen, auch aus Java bekannten, objektorientierten Paradigmen.

Die Syntax ist demgegenüber jedoch etwas anders, um kompakteren, leichter lesbaren und alles in allem einfach besseren Code schreiben zu können.

Eine einfache Beispiel-Klasse

class Person { val firstName="Alex" val lastName="Exempel" } 

Wie auch in Java wird die Deklaration einer Klasse mit dem Schlüsselwort class eingeleitet, gefolgt vom ihrem Namen (Person).

Unsere Beispiel-Klasse Person verfügt über zwei Felder - genauer: Properties (siehe später) - vom Typ String names firstName und lastName.

public ist Voreinstellung

Der erste Unterschied zu Java besteht in der Sichtbarkeit dieser: Während die Felder in Java package-private wären, da nichts anderes angegeben ist, ist der Default in Kotlin public, so dass nicht anders deklarierte Properties und Funktionen stets öffentlich sichtbar sind.

Doch ist diese Klasse äußerst unflexibel und damit reichlich sinnlos: Die beiden Properties haben fixe Werte, die ihnen bei der Erstellung einer Instanz zugewiesen werden und nicht nur unveränderlich sind, sondern so bei der Instanziierung überhaupt nicht mit eigenen Werten belegt werden können.

Die Klasse benötigt also einen Konstruktor:

Konstruktoren

Kotlin macht im Gegensatz zu Java einen Unterschied zwischen dem sogenannten Primary Constructor sowie etwaigen sekundären.

Der primäre Konstruktor einer Klasse kann sehr konzis notiert werden, einfach indem seine Argumente direkt an den Klassen-Namen gehängt werden:

class Person(fn:String, ln:String) { // primärer Konstruktor val firstName=fn val lastName=ln } 

Auf die dort notierten Parameter (fn und ln im Beispiel) kann im Klassenrumpf zugegriffen werden, so dass nun der Name einer Person individuell bei der Erzeugung einer Instanz angegeben werden kann.

Properties direkt im Konstruktor deklarieren

Für den häufigen Fall, dass Konstruktor-Argumente direkt an Properties zugewiesen werden sollen, bietet Kotlin eine sehr kompakte und nützliche Alternativ-Schreibweise an:

class Person(val firstName:String, val lastName:String) 

Hiermit wird nicht zur ein Pri...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang