Podcast
Questions and Answers
Kateri mehanizem uporablja Kotlin za sprostitev pomnilnika, ki ga zasedajo objekti, ki niso več v uporabi?
Kateri mehanizem uporablja Kotlin za sprostitev pomnilnika, ki ga zasedajo objekti, ki niso več v uporabi?
- Štetje referenc
- Ročno sproščanje pomnilnika z `delete`
- `Garbage collection` (correct)
- Samodejno sproščanje ob koncu programa
Ali je v Kotlinu mogoče dedovati iz več razredov hkrati (mnogotera dedljivost)?
Ali je v Kotlinu mogoče dedovati iz več razredov hkrati (mnogotera dedljivost)?
False (B)
Kako v Kotlinu označimo razred, da je dovoljeno dedovanje iz njega?
Kako v Kotlinu označimo razred, da je dovoljeno dedovanje iz njega?
open
Če želimo preprečiti dedovanje iz razreda v Kotlinu, ga označimo s ključno besedo ______.
Če želimo preprečiti dedovanje iz razreda v Kotlinu, ga označimo s ključno besedo ______.
Povežite tipe izjem v Kotlinu z ustreznimi scenariji:
Povežite tipe izjem v Kotlinu z ustreznimi scenariji:
Kaj pomeni, če je v Kotlinu metoda označena kot final
?
Kaj pomeni, če je v Kotlinu metoda označena kot final
?
Ali lahko v Kotlinu znotraj vmesnika (interface) definiramo lastnosti (properties)?
Ali lahko v Kotlinu znotraj vmesnika (interface) definiramo lastnosti (properties)?
Kako v Kotlinu dostopamo do implementacije metode nadrazreda, če jo prepišemo v podrazredu?
Kako v Kotlinu dostopamo do implementacije metode nadrazreda, če jo prepišemo v podrazredu?
V Kotlinu uporabimo ključno besedo ______, da prepišemo metodo nadrazreda.
V Kotlinu uporabimo ključno besedo ______, da prepišemo metodo nadrazreda.
Povežite koncepte objektno usmerjenega programiranja s pravilno razlago v Kotlinu:
Povežite koncepte objektno usmerjenega programiranja s pravilno razlago v Kotlinu:
Kaj je namen ključne besede this
v Kotlinu?
Kaj je namen ključne besede this
v Kotlinu?
Ali lahko v Kotlinu ustvarimo instanco vmesnika (interface)?
Ali lahko v Kotlinu ustvarimo instanco vmesnika (interface)?
Kako Kotlin zagotavlja, da se v vmesnikih ne ponavljajo implementacije metod, ki bi lahko povzročile konflikt?
Kako Kotlin zagotavlja, da se v vmesnikih ne ponavljajo implementacije metod, ki bi lahko povzročile konflikt?
Če želimo, da lahko razred implementira vmesnik, moramo uporabiti ključno besedo ______.
Če želimo, da lahko razred implementira vmesnik, moramo uporabiti ključno besedo ______.
Povežite rezervirane besede v Kotlinu s pravilnim opisom:
Povežite rezervirane besede v Kotlinu s pravilnim opisom:
Katero od naslednjih trditev pravilno opisuje razliko med kopirnim mehanizmom parametrov vrednosti v Kotlinu za osnovne in referenčne tipe?
Katero od naslednjih trditev pravilno opisuje razliko med kopirnim mehanizmom parametrov vrednosti v Kotlinu za osnovne in referenčne tipe?
V Kotlinu je možno deklarirati dve metodi z enakim imenom in enakimi tipi parametrov, ki vračata različne tipe.
V Kotlinu je možno deklarirati dve metodi z enakim imenom in enakimi tipi parametrov, ki vračata različne tipe.
Kako v Kotlinu zagotovimo, da lahko metoda vrne različne tipe, odvisno od prejemnika sporočila, pri čemer upoštevamo vključitveni polimorfizem?
Kako v Kotlinu zagotovimo, da lahko metoda vrne različne tipe, odvisno od prejemnika sporočila, pri čemer upoštevamo vključitveni polimorfizem?
V Kotlinu je ključna beseda ______ uporabljena za določitev, da funkcija ne vrne nobene smiselne vrednosti in se uporablja predvsem za stranske učinke.
V Kotlinu je ključna beseda ______ uporabljena za določitev, da funkcija ne vrne nobene smiselne vrednosti in se uporablja predvsem za stranske učinke.
Povežite koncepte razredov Any
in Nothing
s pravilno razlago v Kotlinu:
Povežite koncepte razredov Any
in Nothing
s pravilno razlago v Kotlinu:
Kateri od naslednjih operatorjev se uporablja za varno pretvorbo tipov v Kotlinu, ki ne povzroči izjeme, če pretvorba ni mogoča?
Kateri od naslednjih operatorjev se uporablja za varno pretvorbo tipov v Kotlinu, ki ne povzroči izjeme, če pretvorba ni mogoča?
Ali je to veljavna koda v Kotlinu?
val myBike: MountainBike = obj // compile-time error
val yourBike: MountainBike = obj as MountainBike
Ali je to veljavna koda v Kotlinu?
val myBike: MountainBike = obj // compile-time error
val yourBike: MountainBike = obj as MountainBike
Kako v Kotlinu preverimo, ali je objekt določenega tipa?
Kako v Kotlinu preverimo, ali je objekt določenega tipa?
Podatkovni razredi v Kotlinu morajo imeti vsaj en ______ v primarnem konstruktorju.
Podatkovni razredi v Kotlinu morajo imeti vsaj en ______ v primarnem konstruktorju.
Povežite naslednje pojme iz razredov enum
in sealed
v Kotlinu s pravimi opisi:
Povežite naslednje pojme iz razredov enum
in sealed
v Kotlinu s pravimi opisi:
Kaj je glavna omejitev uporabe sealed class
v Kotlinu?
Kaj je glavna omejitev uporabe sealed class
v Kotlinu?
Abstraktne razrede v Kotlinu je možno instancirati direktno.
Abstraktne razrede v Kotlinu je možno instancirati direktno.
Kako v Kotlinu definiramo abstraktno metodo znotraj abstraktnega razreda?
Kako v Kotlinu definiramo abstraktno metodo znotraj abstraktnega razreda?
V Kotlinu ključna beseda ______ omogoča dodajanje novih metod obstoječim razredom brez dedovanja ali uporabe vzorca dekoraterja.
V Kotlinu ključna beseda ______ omogoča dodajanje novih metod obstoječim razredom brez dedovanja ali uporabe vzorca dekoraterja.
Povežite razširitvene funkcije v Kotlinu s pravilnimi značilnostmi:
Povežite razširitvene funkcije v Kotlinu s pravilnimi značilnostmi:
Kakšna je glavna razlika med object
in companion object
v Kotlinu?
Kakšna je glavna razlika med object
in companion object
v Kotlinu?
Ali lahko v Kotlinu deklariramo lambda funkcijo brez eksplicitne specifikacije tipov parametrov?
Ali lahko v Kotlinu deklariramo lambda funkcijo brez eksplicitne specifikacije tipov parametrov?
Kaj je it
v Kotlin lambda funkciji?
Kaj je it
v Kotlin lambda funkciji?
Funkcija, ki sprejme drugo funkcijo kot parameter ali jo vrne, se imenuje funkcija ______.
Funkcija, ki sprejme drugo funkcijo kot parameter ali jo vrne, se imenuje funkcija ______.
Povežite značilnosti inline
funkcij v Kotlinu s pravilnimi opisi:
Povežite značilnosti inline
funkcij v Kotlinu s pravilnimi opisi:
Katero od naslednjih trditev najbolje opisuje razliko med try-catch
in @Throws
v Kotlinu pri ravnanju z izjemami?
Katero od naslednjih trditev najbolje opisuje razliko med try-catch
in @Throws
v Kotlinu pri ravnanju z izjemami?
Ali lahko generični tip v Kotlinu omejimo samo na tipe, ki so podrazredi razreda Number
?
Ali lahko generični tip v Kotlinu omejimo samo na tipe, ki so podrazredi razreda Number
?
Kotlin pozna ključno besedo [blank] s katero ustvarimo samo en primerek.
Kotlin pozna ključno besedo [blank] s katero ustvarimo samo en primerek.
Uporaba razširitvene funkcije v Kotlinu omogoča razširitev funkcionalnosti obstoječega razreda brez potrebe po ______.
Uporaba razširitvene funkcije v Kotlinu omogoča razširitev funkcionalnosti obstoječega razreda brez potrebe po ______.
Povežite različne koncepte paketov v Kotlinu z njihovimi ustreznimi opisi:
Povežite različne koncepte paketov v Kotlinu z njihovimi ustreznimi opisi:
Katero določilo za dostop v Kotlinu omogoča, da je član razreda viden samo znotraj istega modula?
Katero določilo za dostop v Kotlinu omogoča, da je član razreda viden samo znotraj istega modula?
Flashcards
Kaj sta razred in objekti?
Kaj sta razred in objekti?
Razred in objekti omogočajo modeliranje konceptov iz resničnega sveta v vašo kodo.
Kako dostopamo do spremenljivk objekta?
Kako dostopamo do spremenljivk objekta?
Dostop do spremenljivk objekta z uporabo objectReference.fieldName
.
Kako dostopamo do metod objekta?
Kako dostopamo do metod objekta?
Dostop do metod objekta z uporabo objectReference.methodName()
.
Kaj je garbage collection?
Kaj je garbage collection?
Signup and view all the flashcards
Kako omogočimo dedovanje razreda?
Kako omogočimo dedovanje razreda?
Signup and view all the flashcards
Kaj je 'override'?
Kaj je 'override'?
Signup and view all the flashcards
Kaj je this
?
Kaj je this
?
Signup and view all the flashcards
Kaj vsebujejo 'interfaces'?
Kaj vsebujejo 'interfaces'?
Signup and view all the flashcards
Kako razred implementira 'interface'?
Kako razred implementira 'interface'?
Signup and view all the flashcards
Ali lahko v Kotlinu dedujemo več interface-ov?
Ali lahko v Kotlinu dedujemo več interface-ov?
Signup and view all the flashcards
Kaj je zakrivanje 'shadowing'?
Kaj je zakrivanje 'shadowing'?
Signup and view all the flashcards
Kopirni mehanizem parametrov.
Kopirni mehanizem parametrov.
Signup and view all the flashcards
Kontekstno neodvisno prekrivanje
Kontekstno neodvisno prekrivanje
Signup and view all the flashcards
Kaj je overriding?
Kaj je overriding?
Signup and view all the flashcards
Kaj je Any?
Kaj je Any?
Signup and view all the flashcards
Kaj je Unit?
Kaj je Unit?
Signup and view all the flashcards
Kaj je Nothing?
Kaj je Nothing?
Signup and view all the flashcards
Kako preverimo tip?
Kako preverimo tip?
Signup and view all the flashcards
Kaj so data razredi?
Kaj so data razredi?
Signup and view all the flashcards
Kaj so enum razredi?
Kaj so enum razredi?
Signup and view all the flashcards
Kaj so sealed razredi?
Kaj so sealed razredi?
Signup and view all the flashcards
Kaj so abstract razredi?
Kaj so abstract razredi?
Signup and view all the flashcards
Kaj so extension funkcije?
Kaj so extension funkcije?
Signup and view all the flashcards
Kaj je object?
Kaj je object?
Signup and view all the flashcards
Kaj je companion object?
Kaj je companion object?
Signup and view all the flashcards
Kaj so lambda funkcije?
Kaj so lambda funkcije?
Signup and view all the flashcards
Definicija funkcije visokega reda.
Definicija funkcije visokega reda.
Signup and view all the flashcards
Kaj so inline funkcije?
Kaj so inline funkcije?
Signup and view all the flashcards
Kaj so izjeme?
Kaj so izjeme?
Signup and view all the flashcards
Kako lovimo različne tipe napak.
Kako lovimo različne tipe napak.
Signup and view all the flashcards
Kaj so generiki?
Kaj so generiki?
Signup and view all the flashcards
Kotlin Generics.
Kotlin Generics.
Signup and view all the flashcards
Kaj so paketi?
Kaj so paketi?
Signup and view all the flashcards
Kaj je Internal?
Kaj je Internal?
Signup and view all the flashcards
Kaj so jar datoteke?
Kaj so jar datoteke?
Signup and view all the flashcards
Kaj je gradle?
Kaj je gradle?
Signup and view all the flashcards
Osnova Java prevajalnika.
Osnova Java prevajalnika.
Signup and view all the flashcards
Study Notes
- Predavanje se osredotoča na programski jezik Kotlin.
Prejšnja Predavanja:
- Kotlin osnove vključujejo osnovne in referenčne tipe, zaloge vrednosti tipov, izraze, ukaze, identifikatorje, rezervirane besede, formalne parametre in argumente.
- Objektno usmerjeni del vključuje razrede in dedovanje je obravnavano kot tudi konstruktorji (primarni in sekundarni), inicializacijski bloki, set/get metode in privzete vrednosti parametrov.
Razredi in Objekti (ponovitev):
- Obravnavani so primarni konstruktorji, privzete vrednosti, lastnosti in objekti.
Osnove Razredov in Objektov:
- Dostop do instančnih spremenljivk se izvaja preko zapisa
objectReference.fieldName
. - Dostop do metod se izvaja preko
objectReference.methodName(argumentList)
aliobjectReference.methodName()
. - Ustvarjanje anonimnih objektov.
Razredi in Objekti:
- Če konstruktorji niso definirani, prevajalnik doda privzeti konstruktor, ki kliče privzeti konstruktor nadrazreda.
- Garbage collection se uporablja za dealokacijo objektov v Kotlinu.
- Objekt se odstrani, ko nanj ne kaže nobena referenca več, v procesu 'garbage collection'.
- Referenca se odstrani ob zaključku bloka (anonimnega ali poimenovanega).
- Vse reference morajo biti odstranjene, preden se objekt lahko odstrani v procesu 'garbage collection'.
Dedovanje:
- Razredi so privzeto
final
, kar pomeni, da ni možno dodati podrazreda. - Razred se odpre za spremembe z uporabo rezervirane besede
open
.
Dedovanje, Super in Prekrivanje Metod:
- Metode v Kotlinu so privzeto
final
in jih ni možno prekriti, razen če so označene kotopen
.
Prekrivanje Metod:
- Metode se prekrijejo z rezervirano besedo
override
.
Rezervirana Beseda this
:
- Rezervirana beseda
this
je referenca na trenutni objekt. this
se uporablja, kadar parameter metode ali konstruktorja prekrije instančno spremenljivko.- V konstruktorju se
this
uporablja za klic drugih konstruktorjev tega razreda (explicit constructor invocation).
Vmesniki (Interfaces):
- Vsebujejo samo spremenljivke (implicitno
public
) in signature metod (implicitnopublic
). - Vmesnikov ni možno instancirati.
- Vmesnik lahko razširi druge vmesnike.
- Razredi implementirajo vmesnike.
- Referenca je lahko tipa
interface
. - Taki referenci se lahko priredi objekt, ki mora biti primerek razreda, ki implementira ta vmesnik.
- Kotlin omogoča dedovanje in implementacijo več vmesnikov.
Parametri:
- Identifikator, ki označuje parameter, mora biti edinstven v dosegu, kjer je metoda definirana.
- Parameter je lahko enak imenu instančne spremenljivke, pri čemer parameter zakrije instančno spremenljivko (shadowing).
- Zakrivanje (shadowing) se uporablja v konstruktorjih in metodah, ki nastavljajo vrednosti instančnih spremenljivk.
- Kotlin uporablja kopirni mehanizem za parametre po vrednosti (call by value).
- Pri objektih se v metodo prenaša referenca po vrednosti, kar pomeni, da se vrednost objekta lahko spremeni znotraj metode.
Zakrivanje Instančnih Spremenljivk (Shadowing):
- Zakrivanje (shadowing) instančnih spremenljivk.
Prekrivanje (Overloading):
- Kontekstno neodvisno prekrivanje (ni možno deklarirati dveh metod z enako signaturo, ki vračata različen tip).
Prekrivanje (Overriding):
- Kovariantna sprememba tipa, ki ga funkcija vrača (covariant return type).
- Klic ustrezne metode je odvisen od dinamičnega tipa prejemnika sporočila (virtual method invocation).
- Vse metode so virtualne.
- Prekrite metode lahko imajo določila, ki omogočajo večjo dostopnost kot v nadrazredu (npr.
protected
v nadrazredu inpublic
v podrazredu).
Razred Any
:
- Generična koda se dobi z uporabo razreda
Any
. Any
je nadrazred vseh tipov, vključno s primitivnimi tipi.Any
ne more vsebovati vrednostinull
.
Pretvorbe (Casting):
- Uporaba objekta na mestu, kjer se pričakuje objekt drugačnega tipa.
- Operatorja za preverjanje tipa sta
is
in!is
. - Obstajajo pametne pretvorbe (smart casts), nevarne pretvorbe (
as
) in varne pretvorbe (as?
). - Implicitna pretvorba (angl. implicit casting)
- Eksplicitna pretvorba (angl. explicit casting)
Razred Unit
:
Unit
se vrne iz funkcije, ki ne vrne ničesar, podobno kotvoid
v Javi.- Takšna funkcija običajno povzroči stranski učinek.
- Tip
Unit
ima samo eno možno vrednost, in sicer objektUnit
.
Razred Nothing
:
Nothing
nima vrednosti.- Če funkcija vrača tip
Nothing
, se ne more normalno izvesti, ampak vrne izjemo ali vstopi v neskončno zanko. - Koda, ki sledi klicu funkcije s tipom
Nothing
, je označena kot nedosegljiva. Nothing
nima niti vrednostinull
.
Podatkovni Razredi:
- Namen je zadrževanje podatkov.
- Uporablja se rezervirana beseda
data
. - Prevajalnik avtomatično generira metode
equals()
,toString()
itd. - Podatkovni razredi ne morejo biti označeni z: abstract, open, inner, sealed.
- Zahteve za primarni konstruktor: vsaj en parameter, vsebuje parametre označene z val ali var.
Enum Razredi:
- Naštevanje objektov, ki jih povežemo v en tip.
- Spremenljivka tipa enum bo imela neko vnaprej določeno konstanto vrednost.
Sealed Razredi:
- Uporabljajo se za omejevanje hierarhije razredov (dedovanja).
- Razred se lahko izpelje samo znotraj iste datoteke (zapečaten).
- Ni jih mogoče izpeljati izven datoteke kjer so deklarirani.
Abstraktni Razredi:
- Omogočajo definicijo abstraktnih razredov s ključno besedo
abstract
. - Iz abstraktnih razredov ni mogoče ustvariti objektov.
- Člani abstraktnega razreda niso abstraktni razen, če so označeni kot abstract.
Razširitvene Funkcije (Extension Functions):
- Omogočajo dodajanje metod razredom izven njihove definicije.
Object:
- Uporablja se za definicijo podatkovnega tipa z eno samo pojavitvijo (Singleton).
- Ustvarja se brez razreda in konstruktorja.
Companion Object:
- Posebna deklaracija objekta znotraj razreda (spremljevalni objekt).
- Sintaktično podobno statičnim metodam v drugih jezikih.
- Člane objekta pokličete z imenom njegovega razreda in metodo.
Lambda Funkcije:
- So preprost način za ad hoc zapis funkcij.
- Pogosto so zapisane zelo kratko.
- Uporabljajo sklepanje o tipu in spremenljivko
it
.
Funkcije Višjega Reda:
- Funkcija, ki sprejme funkcijo kot parameter ali jo vrne.
Funkcije Inline:
- Izboljšajo zmogljivost funkcij višjega reda.
- Povejo prevajalniku, naj kopira telo funkcije na mesto klica.
- Označujejo se s ključno besedo
inline
.
Izjeme:
- So težave, ki se pojavijo med izvajanjem.
- Kotlin podpira
try-catch
bloke,finally
bloke, metanje izjem (throw
) in anotacijo@Throws
. - Catch bloke lahko podvajamo.
Generiki:
- Omogočajo parametrizacijo razredov, vmesnikov in metod s tipi (type parameters).
- Spremenljivke tipa so lahko kateri koli referenčni tip.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.