Podcast
Questions and Answers
Katera od naslednjih trditev pravilno opisuje namen ključnih besed val
in var
v Kotlinu?
Katera od naslednjih trditev pravilno opisuje namen ključnih besed val
in var
v Kotlinu?
- Obe ključni besedi, `val` in `var`, se lahko uporabljata izmenično za deklaracijo spremenljivk in konstant.
- `val` se uporablja za deklaracijo konstant, katerih vrednost se ne more spreminjati, medtem ko se `var` uporablja za deklaracijo spremenljivk, katerih vrednost se lahko spreminja. (correct)
- `val` se uporablja za deklaracijo spremenljivk, katerih vrednost se lahko spreminja, medtem ko se `var` uporablja za deklaracijo konstant.
- `val` se uporablja za deklaracijo spremenljivk globalnega obsega, medtem ko se `var` uporablja za lokalne spremenljivke.
Kako Kotlin obravnava obveznost podpičij na koncu vrstic kode?
Kako Kotlin obravnava obveznost podpičij na koncu vrstic kode?
- Podpičja so priporočljiva za boljšo berljivost kode.
- Podpičja so obvezna na koncu vsake vrstice kode.
- Podpičja niso obvezna, razen v specifičnih primerih, ko prevajalnik zazna nejasnosti. (correct)
- Podpičja so obvezna samo v funkcijah.
Katera izmed naštetih funkcionalnosti je značilna za Kotlin in jo izboljšuje v primerjavi z Javo?
Katera izmed naštetih funkcionalnosti je značilna za Kotlin in jo izboljšuje v primerjavi z Javo?
- Izključno dinamično tipiziranje spremenljivk.
- Odsotnost podpore za objektno usmerjeno programiranje.
- Varnost izvedbe kode z vgrajenim omejevanjem `NullPointerException`. (correct)
- Obvezna uporaba podpičij na koncu vsake vrstice kode.
Kaj pomeni, da je Kotlin multiplatformni jezik?
Kaj pomeni, da je Kotlin multiplatformni jezik?
Katera od naslednjih karakteristik ne velja za Kotlin?
Katera od naslednjih karakteristik ne velja za Kotlin?
Kateri tip datoteke se najpogosteje uporablja za izvorno kodo v Kotlinu?
Kateri tip datoteke se najpogosteje uporablja za izvorno kodo v Kotlinu?
Katera od naslednjih naštetih možnosti ne spada med osnovne značilnosti jezika Kotlin?
Katera od naslednjih naštetih možnosti ne spada med osnovne značilnosti jezika Kotlin?
Kaj je glavna prednost interoperabilnosti Kotlina z Javo?
Kaj je glavna prednost interoperabilnosti Kotlina z Javo?
Katera od naslednjih možnosti predstavlja veljaven način za ustvarjanje novega projekta Kotlin?
Katera od naslednjih možnosti predstavlja veljaven način za ustvarjanje novega projekta Kotlin?
Kateri od naslednjih tipov izrazov je podprt v Kotlinu?
Kateri od naslednjih tipov izrazov je podprt v Kotlinu?
Kakšna je razlika med arrayOf
in Array
v Kotlinu?
Kakšna je razlika med arrayOf
in Array
v Kotlinu?
Za katere tipe se uporablja naslednja deklaracija: val numbers = intArrayOf(1, 2, 3)
?
Za katere tipe se uporablja naslednja deklaracija: val numbers = intArrayOf(1, 2, 3)
?
Kdaj je priporočljivo uporabiti podatkovne razrede (data classes
) v Kotlinu?
Kdaj je priporočljivo uporabiti podatkovne razrede (data classes
) v Kotlinu?
Kaj je značilno za statično tipiziranje, kot ga uporablja Kotlin?
Kaj je značilno za statično tipiziranje, kot ga uporablja Kotlin?
Katera od naštetih možnosti pravilno opisuje način uporabe zanke for
v Kotlinu?
Katera od naštetih možnosti pravilno opisuje način uporabe zanke for
v Kotlinu?
Kateri dostopni modifikator v Kotlinu omogoča, da je lastnost ali funkcija vidna samo znotraj modula?
Kateri dostopni modifikator v Kotlinu omogoča, da je lastnost ali funkcija vidna samo znotraj modula?
Kaj je namen metode toIntOrNull()
v Kotlinu?
Kaj je namen metode toIntOrNull()
v Kotlinu?
Kateri od naslednjih operatorjev se uporablja za preverjanje enakosti dveh vrednosti v Kotlinu?
Kateri od naslednjih operatorjev se uporablja za preverjanje enakosti dveh vrednosti v Kotlinu?
Kaj pomeni, da so razredi v Kotlinu privzeto final
?
Kaj pomeni, da so razredi v Kotlinu privzeto final
?
Kakšna je razlika med primarnim in sekundarnim konstruktorjem v Kotlinu?
Kakšna je razlika med primarnim in sekundarnim konstruktorjem v Kotlinu?
Kako inicializiramo lastnosti razreda v primarnem konstruktorju v Kotlinu?
Kako inicializiramo lastnosti razreda v primarnem konstruktorju v Kotlinu?
Kaj od naslednjega velja za iterativne ukaze v Kotlinu?
Kaj od naslednjega velja za iterativne ukaze v Kotlinu?
Kaj je značilno za razširitvene funkcije (extension functions) v Kotlinu?
Kaj je značilno za razširitvene funkcije (extension functions) v Kotlinu?
Katero od naslednjih trditev drži za poimenovane parametre funkcij v Kotlinu?
Katero od naslednjih trditev drži za poimenovane parametre funkcij v Kotlinu?
Kotlin razširja funkcionalnosti Jave. Katera od naslednjih funkcionalnosti je prednost, ki jo Kotlin prinaša?
Kotlin razširja funkcionalnosti Jave. Katera od naslednjih funkcionalnosti je prednost, ki jo Kotlin prinaša?
Kateri so veljavni aritmetični operatorji, ki se jih lahko uporablja v Kotlinu?
Kateri so veljavni aritmetični operatorji, ki se jih lahko uporablja v Kotlinu?
Kateri razlog je pripomogel, da je Google podjetje leta 2019 priporočilo Kotlin kot jezik za mobilne aplikacije na sistemu Android?
Kateri razlog je pripomogel, da je Google podjetje leta 2019 priporočilo Kotlin kot jezik za mobilne aplikacije na sistemu Android?
Kateri od naštetih tipov podatkov je celo število?
Kateri od naštetih tipov podatkov je celo število?
Kateri izmed naštetih tipov podatkov ne uvrščamo med referenčne tipe podatkov?
Kateri izmed naštetih tipov podatkov ne uvrščamo med referenčne tipe podatkov?
Kaj od naslednjega velja pri razvoju kode?
Kaj od naslednjega velja pri razvoju kode?
Med programiranje je potrebno izbirati ime spremenljivk ter metod. Kaj od naslednjega velja?
Med programiranje je potrebno izbirati ime spremenljivk ter metod. Kaj od naslednjega velja?
Kaj je Integerated Development Enviroment (IDE)?
Kaj je Integerated Development Enviroment (IDE)?
Kateri razlog je za to, da priporočeno uporabljamo konvencije pri kreiranju kode?
Kateri razlog je za to, da priporočeno uporabljamo konvencije pri kreiranju kode?
Kaj se zgodi s kodo med postopkom 'commit' pri sistemu za verzioniranje kode (Git)?
Kaj se zgodi s kodo med postopkom 'commit' pri sistemu za verzioniranje kode (Git)?
Če se na nekaterih mestih v kodi ponavljajo podobni programski konstrukti, bo smiselna ...
Če se na nekaterih mestih v kodi ponavljajo podobni programski konstrukti, bo smiselna ...
Recimo, da imamo razred, ki je javen (public). Kakšna je vidnost tega razreda?
Recimo, da imamo razred, ki je javen (public). Kakšna je vidnost tega razreda?
Kotlin ima funkcijo razširitve, ki dopušča razširitev obstoječe kode. Kaj od naštetega odlikuje to funkcijo?
Kotlin ima funkcijo razširitve, ki dopušča razširitev obstoječe kode. Kaj od naštetega odlikuje to funkcijo?
Flashcards
Kaj je Kotlin?
Kaj je Kotlin?
Kotlin je statično tipiziran programski jezik.
Kdaj je nastal Kotlin?
Kdaj je nastal Kotlin?
Kotlin je bil predstavljen leta 2011 s strani JetBrains.
Kam se prevede Kotlin?
Kam se prevede Kotlin?
Kotlin se lahko prevede v bajt kodo JVM, JavaScript in Kotlin native.
Interoperabilnost z Javo
Interoperabilnost z Javo
Signup and view all the flashcards
Kaj pomeni 'val' v Kotlinu?
Kaj pomeni 'val' v Kotlinu?
Signup and view all the flashcards
Kaj pomeni 'var' v Kotlinu?
Kaj pomeni 'var' v Kotlinu?
Signup and view all the flashcards
Primerjava enakosti v Kotlinu
Primerjava enakosti v Kotlinu
Signup and view all the flashcards
Kateri so osnovni tipi v Kotlinu?
Kateri so osnovni tipi v Kotlinu?
Signup and view all the flashcards
Kateri so številski tipi v Kotlinu?
Kateri so številski tipi v Kotlinu?
Signup and view all the flashcards
Kateri so referenčni tipi v Kotlinu?
Kateri so referenčni tipi v Kotlinu?
Signup and view all the flashcards
Kako so predstavljena polja v Kotlinu?
Kako so predstavljena polja v Kotlinu?
Signup and view all the flashcards
Definiranje enumeracij
Definiranje enumeracij
Signup and view all the flashcards
Kaj so razširitvene funkcije?
Kaj so razširitvene funkcije?
Signup and view all the flashcards
Kaj so funkcije višjega reda?
Kaj so funkcije višjega reda?
Signup and view all the flashcards
Kaj je 'when' v Kotlinu?
Kaj je 'when' v Kotlinu?
Signup and view all the flashcards
Uporaba zanke 'for'
Uporaba zanke 'for'
Signup and view all the flashcards
Uporaba zank 'while' in 'do-while'
Uporaba zank 'while' in 'do-while'
Signup and view all the flashcards
Nadzor poteka zank
Nadzor poteka zank
Signup and view all the flashcards
Kaj je doseg (scope)?
Kaj je doseg (scope)?
Signup and view all the flashcards
Občutljivost identifikatorjev
Občutljivost identifikatorjev
Signup and view all the flashcards
Določila vidnosti v Kotlinu
Določila vidnosti v Kotlinu
Signup and view all the flashcards
Označevanje funkcij
Označevanje funkcij
Signup and view all the flashcards
Deklaracija razreda
Deklaracija razreda
Signup and view all the flashcards
Koliko vmesnikov lahko implementira razred?
Koliko vmesnikov lahko implementira razred?
Signup and view all the flashcards
Privzeta vidnost
Privzeta vidnost
Signup and view all the flashcards
Polja primitivnih tipov?
Polja primitivnih tipov?
Signup and view all the flashcards
Study Notes
Uvod v Kotlin
- Predavanje obravnava programski jezik Kotlin, ki ga je razvilo podjetje JetBrains.
- Kotlin je bil predstavljen leta 2011.
- JetBrains je znan po ustvarjanju orodij kot so PhpStorm, ReSharper in PyCharm.
- Trenutna verzija Kotlina je 2.1.10 (januar 2025).
- Kotlin je multiplatformni jezik, ki deluje na Android, JVM, iOS, Windows, Linux, JavaScript, WebAssembly in LLVM.
- Datotečne končnice za Kotlin so .kt, .kts in .ktm.
- Kotlin podpira več paradigem programiranja, vključno z objektno-usmerjenim, funkcijskim, imperativnim, deklarativnim, generičnim in sočasnim programiranjem.
- Ime Kotlin izhaja iz otoka blizu St. Petersburg.
- Kotlin je nov, statično tipiziran jezik.
- Kotlin odpravlja pomanjkljivosti Jave.
- Kotlin se prevede v bajt kodo JVM, JavaScript in Kotlin native (brez navideznega stroja).
- Razredi Kotlin in Java se lahko uporabljajo skupaj v projektu.
- Kotlin deluje brezhibno z IntelliJ Idea in ima dobro podporo JetBrains.
- Kotlin pridobiva na popularnosti.
- Od leta 2019 je Kotlin priporočen s strani Googla za razvoj mobilnih aplikacij za Android.
Odlike Kotlina
- Ključni besedi sta
val
invar
. - Podpira poimenovane parametre funkcij.
- Funkcije lahko vračajo več vrednosti.
- Podpičja niso obvezna.
- Zagotavlja varnost izvedbe kode z omejevanjem NullPointerException.
- Podpira izraze
if
,try-catch
inwhen
. - Omogoča uporabo vgrajenih (inline) in razširitvenih funkcij.
- Podpira koncepte funkcijskega programiranja, kot so funkcije višjega reda.
- Omogoča pametno pretvarjanje tipov (casting).
- Podpira
async / await
funkcionalnost. - Podpira podatkovne razrede.
- Uporablja lastnosti (podobno kot v C#).
- Ne zahteva preverjanja izjem.
- Omogoča prekrivanje operatorjev.
Tipi v Kotlinu
- Osnovni tipi vključujejo Boolean, Characters, Number in Arrays.
- Številski tipi vključujejo Byte, Short, Int, Long, Float in Double.
- Obstajajo tudi referenčni tipi, kot so Razredi, Vmesniki in String.
- Obstaja tudi tip Nothing.
- Kotlin pozna tudi nepredznačene številske tipe (UByte, UShort, UInt, ULong).
Char, Boolean in String v Kotlinu
- Char predstavlja znakovni tip z uporabo enojnih narekovajev.
- Podprte so izhodne sekvence kot \t, \b, \n, \r, ', ", \, $, \uFF00.
- Char uporablja 16-bit Unicode znake.
- Boolean tip podpira logične operacije ||, &&, !.
- String uporablja dvojne narekovaje.
Polja (Arrays) v Kotlinu
- Polja so predstavljena z razredom Array.
- Uporablja se lahko operatorski simbol
[]
(funkcijeget/set
). - Polja se lahko ustvari s funkcijo
arrayOf(...)
ali s konstruktorjemArray(...)
. - Obstajajo tudi polja primitivnih tipov kot so ByteArray, ShortArray, IntArray.
- Med polji primitivnih tipov in razredom Array ni relacije dedovanja, imajo pa enake metode.
Statična Tipizacija
- Kotlin je statično tipiziran programski jezik.
- Pri statični tipizaciji je tip spremenljivke določen ob deklaraciji.
- Statična tipizacija izboljša hitrost izvajanja kode in pomaga preprečevati programske napake.
Izrazi v Jeziku Kotlin
- Literali so decimalna števila (npr. 26, 123L), binarna (0b00000101), Double (71.5, 342.5e10), Float (123.4f).
- Kot ločilo se lahko uporabi podčrtaj.
- Konverzije med tipi se izvajajo z metodami kot so
toByte()
,toShort()
,toInt()
,toLong()
,toDouble()
. - Agregati so npr. tabele števil int.
- Funkcijski klic je lahko s klicem metod ali z operatorji.
- Dostop do konstant in spremenljivk je neposreden.
Operatorji
- Aritmetični operatorji vključujejo +, -, *, / in %.
- Vsak operator ima določeno prioriteto.
Spremenljivke
- Vrste spremenljivk so Instančne, Lokalne in Parametri.
- Kotlin ne pozna razrednih spremenljivk (Class Variables, Static Fields).
- Ločimo osnovne in referenčne tipe spremenljivk.
- Shranljive vrednosti so vrednosti osnovnega tipa in reference.
- Polja in objekte lahko selektivno ažuriramo.
Ukazi, Izrazi in Deklaracije
if
je izraz v Kotlinu, kar omogoča vračanje vrednosti.- Ne podpira
condition ? then : else
. - Pozna
when
. - Iterativni ukazi vključujejo
while
indo while
. - Zanke vključujejo
for
. - Kotlin ne podpira vzporednih ukazov.
- Poznamo deklaracijo spremenljivke, konstante, metode, razreda in vmesnika.
- Vidljivost spremenljivk je odvisna od dosega (scope).
Identifikatorji in Rezervirane besede
- Identifikatorji so občutljivi na velike in male črke.
- Identifikator se lahko začne s črko ali znakom "_".
- Identifikator ne sme vsebovati presledka ali posebnih znakov (@, #, %, ...).
- Obstajajo povezljive vrednosti (spremenljivke, metode, razredi, vmesniki).
- Rezervirane besede (keywords) in mehke rezervirane besede (soft keywords)imajo poseben pomen v jeziku.
Formalni parametri in Argumenti
- Formalni parameter je identifikator v deklaraciji metode.
- Argument je vrednost, ki se prenese v metodo.
- Parametri se lahko ujemajo po vrstnem redu ali po imenu.
- Parameter je lahko poljubnega tipa.
- Funkcije višjega reda omogočajo pošiljanje metode kot parameter v metodo.
Objektno-usmerjeni del Kotlina
- Kotlin je razredni, objektno usmerjen jezik.
- Kotlin podpira razredno in enkratno dedovanje.
- Korenski razred je Any ali Any?, od katerega implicitno izpeljejo vsi razredi.
- Podrazred podeduje vse komponente nadrazreda, razen konstruktorjev.
- Konstruktorji se lahko pokličejo v podrazredu.
- Vmesnik (interface) je pogodba med razredom in zunanjim svetom.
- Ko razred implementira vmesnik, se zaveže k implementaciji predpisanega obnašanja.
- Razred lahko implementira več vmesnikov.
Razredi
- Konstruktor omogoča inicializacijo lastnosti razreda.
- Poznamo primarni in sekundarni konstruktor.
- Primarni konstruktor je del glave razreda z omejeno sintakso in brez možnosti dodatne kode.
- Parametrom konstruktorja lahko določimo privzete vrednosti.
- Razširjena inicializacija lastnosti razreda se izvede s pomočjo bloka
init
.
Vidnost
- Vidnost se lahko nastavi za lastnosti (properties) in funkcije (member functions).
- Private je dostop samo znotraj razreda.
- Public je viden povsod.
- Protected je viden v razredu in njegovim podrazredom.
- Internal je viden znotraj modula.
- Če ne nastavimo vidnost, je privzeto public.
Set in Get
- V Kotlinu se
get
inset
metode ustvarijo samodejno. - Rezervirane besede so
get/set
infield/value
. - Lahko pa zapišemo ju ob dodatni logiki.
- Metode
set
inget
lahko nastavimo privatne. - Za lokalne spremenljivke ni privzetih vrednosti.
- Pri poskusu dostopa do neinicializirane lokalne spremenljivke pride do napake med prevajanjem.
Dedovanje
- Razredi so v Kotlinu privzeto
final
, kar preprečuje dedovanje razen če razred označimo sopen
.
IntelliJ Idea
- IntelliJ IDEA je vodilni IDE za Javo, razvit pri JetBrains.
- IntelliJ Idea ima podpora za številne programske jezike (Java, Kotlin, JavaScript, Groovy, Scala, itd..)
- Podpora za različne sisteme za verzioniranje kode, kot so Git, SVN, Mercurial in TFS.
- Vsebuje številna orodja kot so orodja za baze podatkov.
Verzioniranje
- IntelliJ podpira Git.
- Git je sistem za verzioniranje.
- Delo z Git vključuje: Spremembe v datotekah ali nove datoteke, oddaja kode (commit) in nalaganje kode (push).
- GitHub je repozitorij predavanj.
- Za uvod v Kotlin se priporoča https://play.kotlinlang.org/.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.