Kotlin a Java sú kompatibilné programovacie jazyky. V tom zmysle, že ak skompilujeme Java kód, tak sa vytvorí bytecode v súbore .class. Ak skompilujem Kotlin kód, tak sa vytvorí bytecode v súbore .class. Teda, či pracuješ v Kotline alebo v Jave, tak nakoniec budeš mať kód, ktorý si bude rozumieť a ktorý dokáže bežať tam, kde dokáže bežať JVM – java virtual machine.
V tomto článku vám chcem ukázať to, prečo bol Kotlin vytvorený – aby nám čo najviac zjednodušil písanie kódu. Predstav si, že chceš napísať triedu Auto. Tá má fieldy názov a počet dverí. Tieto fieldy budú private a final – teda po prvom nastavení ich nemôžeš zmeniť. Prístup k týmto fieldom môžeš spraviť len cez public get metódu. Zároveň, vieš zostrojiť auto tak, že mu zadáš len názov. Ak bude zadaný len názov, tak počet dverí bude automaticky 4. Ak zadáš názov a počet dverí, tak sa fieldy nastavia tak, ako sme to zadali v konštruktore.
Kód v Jave
Takto bude vyzerať kód napísaný v Jave:
public class Auto {
private final String nazov;
private final int pocetDveri;
public Auto(String nazov) {
this(nazov,4);
}
public Auto2(String nazov, int pocetDveri) {
this.nazov = nazov;
this.pocetDveri = pocetDveri;
}
public String getNazov() {
return nazov;
}
public int getPocetDveri() {
return pocetDveri;
}
}
Najprv máme dva privátne final fieldy:
private final String nazov;
private final int pocetDveri;
Potom konštruktor, ak chcem vytvoriť objekt auto len pomocou názvu:
public Auto2(String nazov) {
this(nazov,4);
}
Konštruktor, ak chcem vytvoriť auto a nastaviť názov a počet dverí:
public Auto2(String nazov, int pocetDveri) {
this.nazov = nazov;
this.pocetDveri = pocetDveri;
}
A nakoniec get metódy, aby sme mali prístup k daným fieldom:
public String getNazov() {
return nazov;
}
public int getPocetDveri() {
return pocetDveri;
}
Ako to spravím v Kotline?
Potrebujem tento kód:
class Auto (val nazov: String, val pocetDveri: Int = 4) {
}
To je všetko, tých 20 riadkov v Jave je jeden riadok kódu v Kotline. Za Auto sú zátvorky – to je primárny konštruktor, v ktorom sa nastavujú takzvané property.
Prvá property je nazov, ktorá je val – val znamená, že hodnota sa nemôže neskôr meniť. Druhá property má nastavené = 4, to znamená, že ak chcem vytvoriť auto len zadaním názvu, tak sa automaticky pocetDveri nastaví na 4. Takto vytvorím Auto zadaním oboch property a pod tým je prístup k property cez bodku:
val skoda = Auto("Skoda", 5)
skoda.nazov
skoda.pocetDveri
Vytvorenie auta len s názvom:
val auticko = Auto("Skoda")
Záver
Páči sa ti tento prístup? Chceš vedieť viac o programovacom jazyku Kotlin? Sleduj
Learn2Code a verím, že nájdeš čo hľadáš. Pripravovaný kurz o Kotline zverejníme už čoskoro.