Over si svoje vedomosti z kapitoly o dátových triedach. Klikni na Áno alebo Nie - tlačidlo sa hneď zafarbí (zelená = správne, červená = nesprávne) a zobrazí sa komentár s vysvetlením. Otázky prechádzaš po jednej pomocou tlačidiel nižšie.
Otázka 1 / 10
Dátová trieda sa v Kotline označuje kľúčovým slovom data pred class.
Áno. Napríklad data class Person(val name: String, val age: Int).
Kotlin pre dátové triedy automaticky vygeneruje funkcie ako toString, equals, hashCode a copy.
Áno. Práve preto sú dátové triedy také užitočné pri uchovávaní dát - nemusíme tieto funkcie písať ručne.
Operátor == pri dátových triedach porovnáva objekty podľa referencie (adresy v pamäti), nie podľa hodnôt.
Nie. Vďaka vygenerovanému equals-u dátová trieda porovnáva podľa hodnôt atribútov, nie podľa referencie.
Funkcia copy() vytvorí nový objekt a umožňuje zmeniť len vybrané atribúty, ostatné ostanú rovnaké.
Áno. Napríklad original.copy(age = 26) zmení len vek, meno ostane rovnaké ako v pôvodnom objekte.
Bez kľúčového slova data by trieda mala len predvolený toString z Any, ktorý nevypisuje čitateľné hodnoty atribútov.
Áno. Bez data by toString vypísal niečo ako Person@1a2b3c4d, teda bez hodnôt atribútov.
Deštrukcia (destructuring), napr. val (name, age) = person, funguje vďaka funkciám componentN.
Áno. Kotlin automaticky vygeneruje funkcie component1(), component2() atď. podľa poradia atribútov v primárnom konštruktore.
Povinné atribúty (bez predvolenej hodnoty) v dátovej triede sa musia nachádzať v primárnom konštruktore s val alebo var.
Áno. Toto je jedna z podmienok pre správne fungovanie data class (napr. funkcie copy).
Funkcia copy() zmení pôvodný objekt priamo, namiesto vytvorenia nového objektu.
Nie. copy() vždy vytvorí úplne nový objekt - pôvodný objekt ostane bez zmeny.
Dátová trieda nemôže mať viac ako dva atribúty v primárnom konštruktore.
Nie. Dátová trieda môže mať ľubovoľný počet atribútov - žiadne obmedzenie na dva neexistuje.
Volaním component1() na objekte dátovej triedy získame hodnotu jej prvého atribútu z primárneho konštruktora.
Áno. Napríklad p3.component1() vráti hodnotu atribútu name, ak je prvý v konštruktore.
Tvoje skóre je 0 / 10