8.2 Test - Dátové triedy (8.1)

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