Abo
  • IT-Karriere:

Klassen mit zwei Konstruktoren und Properties

In Kotlin besitzen Klassen einen primären und bei Bedarf weitere sekundäre Konstruktoren. Die Parameter des primären Konstruktors werden hinter dem Schlüsselwort constructor notiert:

Stellenmarkt
  1. NETZSCH-Gerätebau GmbH, Selb
  2. Kaufland Dienstleistung GmbH & Co. KG, Heilbronn

  1. class Auto constructor(t: Int) {
  2. // Properties:
  3. val tueren: Int = t
  4. var farbe: String = "Rot"
  5. get() = field.toUpperCase()
  6. set(value) {
  7. field = value.toLowerCase()
  8. }
  9.  
  10. // Primärer Konstruktor:
  11. init {
  12. println("Anzahl Türen: ${tueren}.")
  13. }
  14. // Sekundärer Konstruktor:
  15. constructor(t: Int, f: String) : this(t) { farbe = f }
  16. }
  17.  
  18. fun main(args: Array<String>) {
  19. val audi = Auto(5) // Objekt audi erstellen
  20. audi.farbe = "Blau"
  21. println(audi.farbe)
  22. }

Properties als Objektvariablen

Daten speichert ein Objekt in speziellen Variablen, die Kotlin als Properties bezeichnet. Die Klasse Auto besitzt die zwei Properties tueren und farbe. Sofern der Konstruktor lediglich die Variablen mit Werten füllt, erlaubt Kotlin die Kurzschreibweise

  1. class Auto(val tueren: Int) { ... }.

Das Property tueren erhält dabei automatisch den Wert, den man dem Objekt bei seiner Instanziierung mit auf den Weg gibt. Speichert eine Klasse nur Daten, kann man sie folglich in nur einer Zeile deklarieren:

  1. class Person(val name: String, val ort: String)

Stellt man noch ein data voran, ergänzt der Compiler automatisch ein paar nützliche Methoden wie copy() oder equal().

In der Klasse Auto demonstriert das Property farbe den Einsatz von Getter- und Setter-Methoden: Weist man später dem Property einen Wert zu (etwa via audi.farbe = "Blau"), ruft Kotlin automatisch die set()-Funktion auf. Analog führt Kotlin get() beim Zugriff auf die Variable aus. Auf diese Weise kann man die Farbe noch vor der Speicherung beziehungsweise Rückgabe manipulieren. Dabei gibt es allerdings eine Stolperfalle: Würde set() direkt dem Property farbe einen Wert zuweisen (via farbe = value.toLowerCase()), würde set() immer wieder rekursiv aufgerufen. Dies verhindert das Schlüsselwort field, das den Wert in einem sogenannten Backing Field speichert.

Ein Objekt kann Kotlin in mehrere Variablen zerlegen (Destructuring Declarations). In folgendem Beispiel entstehen die Variablen plz und ortsname, welche die Werte aus den Properties des Objekts berlin enthalten:

  1. val (plz, ortsname) = berlin

 Funktional und voll unter KontrolleGenerische Programmierung und Vererbung 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8.  


Anzeige
Spiele-Angebote
  1. 2,40€
  2. (-79%) 11,99€
  3. 59,99€ für PC/69,99€ für PS4, Xbox (Release am 4. Oktober)
  4. 3,99€ statt 19,99€

Proctrap 29. Okt 2017

immer diese Threadschändung

MiBx 18. Okt 2017

Das ist schon ganz gut so, dass Du zurück gewechselt bist, wenn Du Dich nicht wirklich...

Proctrap 17. Okt 2017

kwt

horotab 05. Okt 2017

Wer Methoden schreibt, die so lang sind, mach idR sowieso etwas falsch. Im Idealfall hat...

demonkoryu 04. Okt 2017

Closures sind nicht "hip" sondern eine nützliche Abstraktion, die in den letzten Jahren...


Folgen Sie uns
       


B-all One für Magic Leap - Gameplay

Ein Squash-Spiel zeigt, wie gut bei Magic Leap das Mapping der Umgebung und das Tracking unserer Position klappt.

B-all One für Magic Leap - Gameplay Video aufrufen
Strom-Boje Mittelrhein: Schwimmende Kraftwerke liefern Strom aus dem Rhein
Strom-Boje Mittelrhein
Schwimmende Kraftwerke liefern Strom aus dem Rhein

Ein Unternehmen aus Bingen will die Strömung des Rheins nutzen, um elektrischen Strom zu gewinnen. Es installiert 16 schwimmende Kraftwerke in der Nähe des bekannten Loreley-Felsens.

  1. Speicherung von Überschussstrom Wasserstoff soll bei Engpässen helfen
  2. Energiewende DLR-Forscher bauen Kohlekraftwerke zu Stromspeichern um
  3. Erneuerbare Energien Wellenkraft als Konzentrat

e.Go Life: Ein Auto, das lächelt
e.Go Life
Ein Auto, das lächelt

Das Auto ist zwar klein, bringt aber sogar gestandene Rennfahrer ins Schwärmen: Das Aachener Unternehmen e.Go Mobile hat seine ersten Elektroautos ausgeliefert. In einer Probefahrt erweist sich der Kleinwagen als sehr dynamisch.
Ein Bericht von Werner Pluta

  1. Elektroauto Opel Corsa-e soll 330 Kilometer weit kommen
  2. Elektroauto Skoda Citigo e iV soll 265 km weit fahren
  3. Eon-Studie Netzausbau kostet maximal 400 Euro pro Elektroauto

Recycling: Die Plastikfischer
Recycling
Die Plastikfischer

Millionen Tonnen Kunststoff landen jedes Jahr im Meer. Müllschlucker, die das Material einsammeln, sind bislang wenig erfolgreich. Eine schwimmende Recycling-Fabrik, die die wichtigsten Häfen anläuft, könnte helfen, das Problem zu lösen.
Ein Bericht von Daniel Hautmann

  1. Elektroautos Audi verbündet sich mit Partner für Akkurecycling
  2. Urban Mining Wie aus alten Platinen wieder Kupfer wird

    •  /