Kotlin a Java jsou kompatibilní programovací jazyky. V tom smyslu, že pokud zkompilujeme Java kód, tak se vytvoří bytecode v souboru .class. Pokud zkompiluji Kotlin kód, tak se vytvoří bytecode v souboru .class. Tedy, jestli pracuješ v Kotlině nebo v Javě, tak nakonec budeš mít kód, který si bude rozumět a který dokáže běžet tam, kde dokáže běžet JVM – java virtual machine.
V tomto článku vám chci ukázat to, proč byl Kotlin vytvořen – aby nám co nejvíce zjednodušil psaní kódu. Představ si, že chceš napsat třídu Auto. Ta má fieldy název a počet dveří. Tyto fieldy budou private a final – tedy po prvním nastavení je nemůžeš změnit. Přístup k těmto fieldům můžeš udělat jen přes public get metodu. Zároveň umíš sestrojit auto tak, že mu zadáš jen název. Pokud bude zadán jen název, tak počet dveří bude automaticky 4. Pokud zadáš název a počet dveří, tak se fieldy nastaví tak, jak jsme to zadali v konstruktoru.
Kód v Javě
Takto bude vypadat kód napsaný v Javě:
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;
}
}
Nejprve máme dva privátní final fieldy:
private final String nazov;
private final int pocetDveri;
Pak konstruktor, pokud chci vytvořit objekt auto jen pomocí názvu:
public Auto2(String nazov) {
this(nazov,4);
}
Konstruktor, pokud chci vytvořit auto a nastavit název a počet dveří:
public Auto2(String nazov, int pocetDveri) {
this.nazov = nazov;
this.pocetDveri = pocetDveri;
}
A nakonec get metody, abychom měli přístup k daným fieldům:
public String getNazov() {
return nazov;
}
public int getPocetDveri() {
return pocetDveri;
}
Jak to udělám v Kotlině?
Potřebuji tento kód:
class Auto (val nazov: String, val pocetDveri: Int = 4) {
}
To je všechno, těch 20 řádků v Javě je jeden řádek kódu v Kotlině. Za Auto jsou závorky - to je primární konstruktor, ve kterém se nastavují takzvané property.
První property je název, který je val – val znamená, že hodnota se nemůže později měnit. Druhá property má nastaveno = 4, to znamená, že pokud chci vytvořit auto jen zadáním názvu, tak se automaticky pocetDveři nastaví na 4. Takto vytvořím Auto zadáním obou property a pod tím je přístup k property přes tečku:
val skoda = Auto("Skoda", 5)
skoda.nazov
skoda.pocetDveri
Vytvoření auta jen s názvem:
val auticko = Auto("Skoda")
Záver
Líbí se ti tento přístup? Chceš vědět více o programovacím jazyce Kotlin? Sleduj Learn2Code a věřím, že najdeš co hledáš. Připravovaný kurz o Kotlině zveřejníme již brzy.