Abo
  • Services:

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. Rheinische Gesellschaft für Innere Mission und Hilfswerk GmbH, Leichlingen
  2. Hannover Rück SE, Hannover

  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
Hardware-Angebote
  1. 309€ + Versand mit Gutschein: RYZEN20 (Bestpreis!)
  2. (Neuware für kurze Zeit zum Sonderpreis bei Mindfactory)
  3. 149€ (Bestpreis!)
  4. ab 399€

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
       


Motorola One angesehen (Ifa 2018)

Lenovo hat auf der Elektronikfachmesse Ifa 2018 sein neues Android-Smartphone Motorola One vorgestellt.

Motorola One angesehen (Ifa 2018) Video aufrufen
Zahlen mit Smartphones im Alltagstest: Sparkassenkunden müssen nicht auf Google Pay neidisch sein
Zahlen mit Smartphones im Alltagstest
Sparkassenkunden müssen nicht auf Google Pay neidisch sein

In Deutschland gibt es mittlerweile mehrere Möglichkeiten, drahtlos mit dem Smartphone zu bezahlen. Wir haben Google Pay mit der Sparkassen-App Mobiles Bezahlen verglichen und festgestellt: In der Handhabung gleichen sich die Apps zwar, doch in den Details gibt es einige Unterschiede.
Ein Test von Tobias Költzsch

  1. Mobiles Bezahlen Google Pay könnte QR-Codes für Überweisungen bekommen
  2. Smartphone Auch Volksbanken führen mobiles Bezahlen ein
  3. Bezahldienst ausprobiert Google Pay startet in Deutschland mit vier Finanzdiensten

Sky Ticket mit TV Stick im Test: Sky kann's gut, Netflix und Amazon können es besser
Sky Ticket mit TV Stick im Test
Sky kann's gut, Netflix und Amazon können es besser

Gute Inhalte, aber grauenhafte Bedienung: So war Sky Ticket bisher. Die neue Version macht vieles besser, und mit dem Sky Ticket Stick lässt sich der Pay-TV-Sender kostengünstig auf den Fernseher bringen. Besser geht es aber immer noch.
Ein Test von Ingo Pakalski

  1. Comcast Bezahlsender Sky für 38,8 Milliarden US-Dollar verkauft
  2. Videostreaming Wiederholte Sky-Ausfälle verärgern Kunden
  3. Sky Ticket TV Stick Sky verteilt Streamingstick de facto kostenlos

Zukunft der Arbeit: Was Automatisierung mit dem Grundeinkommen zu tun hat
Zukunft der Arbeit
Was Automatisierung mit dem Grundeinkommen zu tun hat

Millionen verlieren ihren Job, aber die Gesellschaft gewinnt dabei trotzdem: So stellen sich die Verfechter des bedingungslosen Grundeinkommens die Zukunft vor. Wie soll das gehen?
Eine Analyse von Daniel Hautmann

  1. Verbraucherschutzminister Kritik an eingeschränktem Widerspruchsrecht im Online-Handel
  2. Bundesfinanzminister Scholz warnt vor Schnellschüssen bei Digitalsteuer
  3. Sommerzeit EU-Kommission will die Zeitumstellung abschaffen

    •  /