Uvod v Kotlin

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Katero leto se šteje za začetek razvoja programskega jezika Kotlin?

  • 2013
  • 2010
  • 2008
  • 2011 (correct)

Katera izmed naslednjih trditev ne velja za programski jezik Kotlin?

  • Je statično tipiziran jezik.
  • Lahko se prevede v bajt kodo JVM.
  • Podpira samo objektno-usmerjeno programiranje. (correct)
  • Je multiplatformni jezik.

Po čem je programski jezik Kotlin dobil ime?

  • Po enem od ustvarjalcev jezika
  • Po vrsti tulipana
  • Po znanem matematiku
  • Po otoku blizu St. Petersburga (correct)

Katera izmed naslednjih lastnosti ne velja za Kotlin?

<p>Podpičja so obvezna. (D)</p> Signup and view all the answers

Katero podjetje je leta 2019 priporočilo Kotlin za razvoj mobilnih aplikacij za Android?

<p>Google (A)</p> Signup and view all the answers

Kateri ključni besedi se uporabljata v Kotlinu za deklaracijo spremenljivk?

<p>val in var (A)</p> Signup and view all the answers

Katere datotečne pripone so značilne za izvorno kodo v Kotlinu?

<p>.kt, .kts, .ktm (D)</p> Signup and view all the answers

Kaj pomeni, da je Kotlin interoperabilen z Javo?

<p>Razrede Kotlin in Java je mogoče uporabljati skupaj v istem projektu. (B)</p> Signup and view all the answers

Katera izmed naslednjih lastnosti je značilna za podatkovne razrede v Kotlinu?

<p>Samodejno generirajo metode, kot so <code>equals()</code>, <code>hashCode()</code> in <code>toString()</code>. (C)</p> Signup and view all the answers

Kje lahko najdete IntelliJ IDE?

<p><a href="https://www.jetbrains.com/idea/download/">https://www.jetbrains.com/idea/download/</a> (C)</p> Signup and view all the answers

Katera od naslednjih tipov podatkov ni osnovni številski tip v Kotlinu?

<p>String (D)</p> Signup and view all the answers

Kaj velja pri statičnem tipiziranju, kot je v Kotlinu?

<p>Vsaka spremenljivka mora imeti določen tip že ob prevajanju. (C)</p> Signup and view all the answers

Kaj je značilnost identifikatorjev v Kotlinu?

<p>So občutljivi na velike in male črke. (B)</p> Signup and view all the answers

Kaj se zgodi, če v Kotlinu poskušamo uporabiti lokalno spremenljivko, ki ni bila inicializirana?

<p>Pride do napake že med prevajanjem programa. (D)</p> Signup and view all the answers

Kakšna je privzeta vidnost, če ne določimo vidnosti razreda v Kotlinu?

<p>public (C)</p> Signup and view all the answers

Katera trditev pravilno opisuje uporabo Pair, Triple in Array v Kotlinu?

<p>Uporabljajo se za vračanje več vrednosti iz funkcij. (A)</p> Signup and view all the answers

Kaj omogoča zanka for v Kotlinu?

<p>Iteriranje čez elemente zbirke. (D)</p> Signup and view all the answers

Katero funkcionalnost ponuja Kotlin REPL (Read-Evaluate-Print-Loop)?

<p>Hitro izvajanje in testiranje posameznih delov kode. (A)</p> Signup and view all the answers

Katero od naslednjih možnosti ne sodi med izhodne sekvence znakov v Kotlinu?

<p>\a (D)</p> Signup and view all the answers

Kateri od naslednjih operatorjev se uporablja za preverjanje enakosti v Kotlinu?

<p>== (B)</p> Signup and view all the answers

Kaj je glavna funkcionalnost konstruktorja?

<p>Inicializacija lastnosti razreda. (C)</p> Signup and view all the answers

Kaj pomeni, da je razred v Kotlinu označen s ključno besedo final?

<p>Razred ne more imeti podrazredov. (D)</p> Signup and view all the answers

Katera sintaksa je pravilna za deklaracijo polja celih števil v Kotlinu?

<p>Obe A in C (B)</p> Signup and view all the answers

Kaj v Kotlinu predstavlja interface?

<p>Pogodbo, ki jo razred implementira in določa obnašanje. (D)</p> Signup and view all the answers

Kdaj uporabimo sekundarne konstruktorje?

<p>Ko potrebujemo več različnih načinov za inicializacijo objekta. (A)</p> Signup and view all the answers

Katera od naslednjih trditev ni pravilna glede lateinit?

<p>Uporablja se za inicializacijo spremenljivke ob deklaraciji. (B)</p> Signup and view all the answers

Katera od naslednjih trditev pravilno opisuje razliko med val in var v Kotlinu?

<p><code>val</code> se uporablja za konstantne vrednosti, <code>var</code> pa za spremenljivke. (D)</p> Signup and view all the answers

Pri dedovanju v Kotlin, katera od naštetih funkcij se ne more biti podedovana?

<p>Konstruktorji (B)</p> Signup and view all the answers

Naslednja izjava se pojavi v Kotlin kodi: val resultList = list.filterOnCondition { it -> isMultipleOf(it, multipleOf: 5) } Kaj je tip parametra it v tem izrazu?

<p>Integer (B)</p> Signup and view all the answers

Katera bližnjica se uporablja v IntelliJ IDEA za ponovno formatiranje kode?

<p>Ctrl + Alt + L (D)</p> Signup and view all the answers

Katera funkcionalnost ni značilna za IntelliJ IDEA?

<p>Avtomatsko razhroščevanje kode (C)</p> Signup and view all the answers

Kateri operator se uporablja za klic metode razreda v Kotlinu?

<p>. (A)</p> Signup and view all the answers

Kaj pomeni kratica IDE

<p>Integrated Development Environment (B)</p> Signup and view all the answers

Kateri izmed naštetih jezikov ni vključen v IntelliJ IDE?

<p>HTML (C)</p> Signup and view all the answers

Kateri sistem priporoča Kotlin za verzioniranje kode?

<p>Git (D)</p> Signup and view all the answers

Katere so povezljive vrednosti razreda?

<p>Metode (A)</p> Signup and view all the answers

Katero leto je bila ustvarjena prva revizija Git sistema?

<p>2005 (D)</p> Signup and view all the answers

Flashcards

Kaj je Kotlin?

Kotlin je statično tipiziran jezik, ki ga je razvil JetBrains.

val in var

Ključni besedi za deklariranje spremenljivk v Kotlinu.

Poimenovani parametri

Omogoča, da pri klicu funkcije podamo vrednosti parametrov z njihovimi imeni.

Več vrednosti funkcij

Funkcija lahko vrne več vrednosti hkrati.

Signup and view all the flashcards

Podpičja

V Kotlinu niso obvezna.

Signup and view all the flashcards

Varnost izvedbe kode

Kotlin preprečuje napake zaradi null vrednosti s strogim sistemom tipov.

Signup and view all the flashcards

when izraz

Uporablja se za pogojno izvajanje kode.

Signup and view all the flashcards

Razširitvene funkcije

Funkcije, ki se razširijo na obstoječe razrede brez dedovanja.

Signup and view all the flashcards

Podatkovni razredi

Razredi, ki samodejno generirajo metode kot so equals(), hashCode() in toString().

Signup and view all the flashcards

Async / await

Omogočajo sočasno izvajanje kode.

Signup and view all the flashcards

Lastnosti

Lastnosti razreda so podobne kot v C#.

Signup and view all the flashcards

Podatkovni razredi

Razredi, ki so namenjeni shranjevanju podatkov.

Signup and view all the flashcards

Ni preverjenih izjem

Označujejo, da funkcija ne vrže preverjenih izjem, s čimer se zmanjša potreba po try-catch blokih.

Signup and view all the flashcards

Prekrivanje operatorjev

Omogočajo, da operatorji delujejo na objektih po meri.

Signup and view all the flashcards

Funkcije višjega reda

Funkcije, ki sprejemajo druge funkcije kot argumente ali jih vračajo kot rezultat.

Signup and view all the flashcards

Pametno pretvarjanje (casting)

Samodejno pretvori tip spremenljivke glede na kontekst.

Signup and view all the flashcards

Osnovni tipi

Osnovni tipi podatkov v Kotlinu.

Signup and view all the flashcards

Številski tipi

Številski tipi podatkov v Kotlinu.

Signup and view all the flashcards

Referenčni tipi

Tipi podatkov, ki se nanašajo na objekte.

Signup and view all the flashcards

val

Označuje, da spremenljivka ni spremenljiva.

Signup and view all the flashcards

var

Označuje, da je spremenljivka spremenljiva.

Signup and view all the flashcards

if izraz

Omogoča pogojno izvajanje kode.

Signup and view all the flashcards

while zanka

Omogoča ponavljajoče izvajanje kode, dokler pogoj velja.

Signup and view all the flashcards

for zanka

Omogoča ponavljajoče izvajanje kode za vsak element v zbirki.

Signup and view all the flashcards

final

Označuje, da razred ne more biti razširjen.

Signup and view all the flashcards

open

Označuje, da je razred odprt za dedovanje.

Signup and view all the flashcards

IntelliJ IDEA

Programsko okolje, ki podpira razvoj v Kotlinu.

Signup and view all the flashcards

Paket

Skupina povezanih funkcij in razredov.

Signup and view all the flashcards

Init blok

Inicializacijska koda za razred.

Signup and view all the flashcards

Konstruktor

Konstruktor omogoča inicializacijo lastnosti razreda.

Signup and view all the flashcards

Statično tipiziranje

Značilnost jezika kjer spremenljivke vežejo na določen tip.

Signup and view all the flashcards

Literali

Osnovni gradniki kode (števila, besedila).

Signup and view all the flashcards

Study Notes

Uvod v Kotlin

  • Kotlin je bil predstavljen leta 2011.
  • Razvilo ga je podjetje JetBrains, znano po orodjih kot so PhpStorm, ReSharper in PyCharm.
  • Trenutna različica je 2.1.10 (januar 2025).
  • Je multiplatformni jezik, deluje na Androidu, JVM, iOS, Windows, Linux, JavaScript, WebAssembly in LLVM.
  • Datotečne končnice so .kt, .kts in .ktm.
  • Podpira več paradigem programiranja: objektno-usmerjeno, funkcijsko, imperativno, deklarativno, generično in sočasno.
  • Ime je dobil po otoku blizu St. Petersburg.
  • Je nov statično tipiziran jezik.
  • Odpravlja pomanjkljivosti Jave in se prevede v bajt kodo JVM, JavaScript in Kotlin native.
  • Ustvarjen je bil s poudarkom na interoperabilnosti z Javo, kar omogoča skupno uporabo razredov Kotlin in Java v istem projektu.
  • Deluje brezhibno z IntelliJ Idea in ima dobro podporo JetBrains.
  • Pridobiva na popularnosti in je vedno pogosteje sprejet.
  • Od leta 2019 ga Google priporoča za razvoj mobilnih aplikacij za Android.

Značilnosti Kotlina

  • Ključni besedi sta val in var.
  • Podpira poimenovanje parametrov funkcij.
  • Funkcije lahko vračajo več vrednosti.
  • Podpičja niso obvezna.
  • Zagotavlja varnost izvedbe kode z omejevanjem NullPointerException.
  • Uporablja if, try-catch in when.
  • Podpira vgrajene (inline) in razširitvene funkcije.
  • Ima koncepte funkcijskega programiranja, vključno s funkcijami višjega reda.
  • Podpira pametno pretvarjanje tipov (casting) in async / await.
  • Ima podatkovne razrede in lastnosti (podobno kot v C#).
  • Ne zahteva preverjanja izjem.
  • Omogoča prekrivanje operatorjev.

Tipi v Kotlinu

  • Osnovni tipi so Boolean, Characters, Number in Arrays.
  • Številski tipi so Byte, Short, Int, Long, Float in Double.
  • Referenčni tipi so razredi, vmesniki in String.
  • Poseben tip je Nothing.
  • Razlikuje med osnovnimi številskimi tipi (celi, integral types) in osnovnimi številski decimalnimi tipi (non-integral types).
  • Obstajajo tudi nepredznačeni številski tipi (UByte, UShort, UInt, ULong).
  • Char je znakovni tip z enojnimi narekovaji in podpira izhodne sekvence, kot so \t, \b, \n, \r, \', \", \\, \$, \uFF00 ter Unicode.
  • Boolean podpira operacije ||, && in !.
  • String uporablja dvojne narekovaje in omogoča dostop do znakov preko indeksa (npr. name[0]).

Polja

  • V Kotlinu so polja predstavljena z razredom Array.
  • Uporablja se lahko prekriti operator [] (funkcije get/set).
  • Polje se ustvari s funkcijo arrayOf(...) ali s konstruktorjem Array(...).
  • Obstajajo polja primitivnih tipov: ByteArray, ShortArray, IntArray, ki ne dedujejo od Array, vendar imajo enake metode.

Statično tipiziranje

  • Kotlin je statično tipiziran programski jezik.
  • Pri statičnem tipiziranju se spremenljivkam določi tip, medtem ko dinamično tipizirani jeziki tega ne zahtevajo.
  • Vrednosti imajo v statičnih jezikih tip, ki ga pri dinamičnih lahko spreminjamo.
  • Statično tipiziranje omogoča izogib velikemu številu programskih napak in večjo hitrost izvajanja.

Izrazi in operatorji

  • Literali so decimalna števila (npr. 26, 123L), binarna števila (npr. 0b00000101), decimalna števila (npr. 71.5, 342.5e10) in števila s plavajočo vejico (npr. 123.4f).
  • Števila lahko vsebujejo podčrtaje za boljšo berljivost.
  • Podpira konverzijo z metodami toByte(), toShort(), toInt(), toLong(), toDouble() ...
  • Agregati so npr. intArrayOf(100, 200, 300, 400), na katerih izvedemo npr. funkcijo forEach.
  • Vključuje funkcijski klic (klic metod, operatorji) in dostop do konstant in spremenljivk.
  • Glavni aritmetični operatorji so +, -, *, / in %.
  • Pomembna je prioriteta operatorjev.

Spremenljivke

  • Poznamo instančne, lokalne spremenljivke in parametre.
  • Kotlin ne podpira razrednih spremenljivk (static fields).
  • Shranljive vrednosti so vrednosti osnovnega tipa in reference.
  • Polja in objekte je mogoče selektivno ažurirati.
  • Izraz if je v Kotlinu izraz, kar pomeni, da lahko vrača vrednost.
  • Ukazi so while in do while (nedoločne iteracije), ter zanka for (določne iteracije).
  • Kotlin ne podpira vzporednih ukazov.

Deklaracije

  • Deklariramo lahko spremenljivke, konstante, metode, razrede in vmesnike.
  • Sekvenčne deklaracije določijo tip spremenljivke (npr. var value1 = 10 // variable declaration
  • Doseg je statičen.

Identifikatorji

  • So občutljivi na velike in male črke.
  • Sestavljeni so iz Unicode znakov, začnejo se s črko ali znakom "_", ne smejo vsebovati presledkov ali posebnih znakov.
  • Poznamo poimenovanja in povezljive vrednosti (spremenljivke, metode, razredi, vmesniki).

Rezervirane besede

  • So ključne besede (hard keywords) in mehke rezervirane besede (soft keywords) – rezervirane samo v določenem kontekstu.

Formalni parametri, argumenti

  • Formalni parameter je identifikator v deklaraciji metode, argument pa je vrednost, ki se prenese v metodo.
  • Parametre lahko ujemamo po vrstnem redu ali po imenu.
  • Parameter je lahko poljubnega tipa (osnovnega ali referenčnega).
  • Funkcije višjega reda obstajajo, kar pomeni, da lahko pošljemo metodo kot parameter v drugo metodo.

Objektno-usmerjenost

  • Kotlin podpira razredno objektno usmerjenost.
  • Podpira razredno dedovanje (enkratno), nasledniško iskanje metode in asimetrični zaključek metode.
  • Sinonimi za podrazred so subclass, derived class, extended class, child class; za nadrazred pa superclass, base class, parent class.
  • Korenski razred je Any ali Any?, ki ne deduje od nikoder. Če razred ne deduje eksplicitno iz nobenega razreda, implicitno deduje iz Any.
  • Podrazred podeduje vse komponente nadrazreda (polja, metode, vgnjezdene razrede), razen konstruktorjev, ki se jih lahko pokliče.

Razredi in vmesniki

  • Razred se deklarira s ključno besedo class.
  • Vmesnik (interface) je pogodba med razredom in zunanjim svetom, razred lahko implementira več vmesnikov.

Konstruktorji

  • Omogočajo inicializacijo lastnosti razreda.
  • Poznamo primarni in sekundarni konstruktor.
  • Primarni konstruktor je del glave razreda in ima omejeno sintakso ter ne more vsebovati druge kode, lahko pa je del inicializacijskega bloka.

Vidnost v razredih

  • Določimo jo lahko za lastnosti in funkcije.
  • Vidnost je lahko private (samo znotraj razreda), public (povsod), protected (v razredu in podrazredih) ter internal (znotraj modula).
  • Če ne določimo vidnosti, se privzeto uporabi public.
  • Metode set in get se v Kotlinu ustvarijo samodejno, rezervirani besedi sta field in value. Omogočajo dodatno logiko. Lahko so tudi privatne.
  • Za lokalne spremenljivke ni privzetih vrednosti, dostop do neinicializirane spremenljivke povzroči napako v času prevajanja.
  • Razredi so privzeto final, kar onemogoča dedovanje, razen če jih označimo z open.

IntelliJ IDEA

  • Je vodilni IDE za Javo, razvito s strani JetBrains.
  • Je eden najbolj priljubljenih IDE-jev, s podporo za Kotlin, Javo, JavaScript, Groovy in Scala.
  • Podpira Git, SVN in Mercurial ter ima orodja za baze podatkov.
  • Dokumentacija je na voljo na: https://www.jetbrains.com/idea/download/.
  • Ima številne bližnjice na tipkovnici.

Dodatno

  • Podpira razhroščevanje in preoblikovanje kode.
  • Na voljo je verzioniranje s sistemom Git.
  • Funkcionalnost Git je integrirana v IntelliJ IDEA.
  • GitHub je spletno mesto z repozitoriji predavanj (https://github.com/tomazkosar/CourseProgrammingLanguages.git).
  • Omogoča oddajo kode (commit) in nalaganje kode (push).
  • Priporočljiva je uporaba Kotlin REPL v IntelliJ IDEA (Read-Evaluate-Print-Loop).
  • Spletna stran za Kotlin: https://play.kotlinlang.org/

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Discover Kotlin
5 questions

Discover Kotlin

AffableUvarovite avatar
AffableUvarovite
Overview of Kotlin Programming Language
10 questions
Kotlin Programming Basics Quiz
50 questions
Kotlin dla programistów Androida
55 questions
Use Quizgecko on...
Browser
Browser