Napredno programiranje 2

Označi pravilne trditve:
Vsak razred mora imeti definiran privzeti konstruktor
Konstruktor je lahko tudi private
C# lastnost mora biti osnovana na member variabli
Privatna metoda lahko uporablja tudi statične elemente
Delegatske objekte lahko shranimo v kolekcijo
Imenske prostore namespace lahko gnezdimo
Razred ima lahko več destruktorjev
Objekt lahko inicializitamo na več načinov
Pri dedovanju se vedno kliče privzeti konstruktor nadrazreda
Izjeme lahko imajo hierarhijo
Generični tip mora vedno imeti oznako T
A pomeni da je A
Razred
Generični razred
Iterator
Generični iterator
Pošiljanje sporočil med objekti poteka s pomočjo
Atributov
Lastnosti
Metod
Vmesnikov
Katera beseda je rezervirana pri kreiranju novega tipa?
Interface
Class
Konstruktor
New
Kateri mehanizem zagotavlja inicializacijo vsakega novega objekta?
Polimorfizem
Dedovanje
Konstruktor
Lastnosti
Kaj je v osnovi najbolj podobno C# lastnosti?
Vmesnik
Member variabla
Metoda
Razred
List<> je generični
Razred
Vmesnik
Objekt
Namespace
Zgoščeno tabelo v C# predstavlja razred:
List<>
Queue<>
Dictionary<>
ArrayList<>
Kaj ni veljavno za lambda izraz?
(x)=>x
O=>x+y
X,y=>x+y → oklepaji manjkajo
Y=>y
Kateri blok kode je vedno izveden?
Delegate
Finally
Če imamo class B:A{} in metodo foo(B b), je veljavno ukazati
Foo(new A())
Foo(new B())
Oboje, a + b
€� Nič od naštetega
Konstruktor razreda se izvrši enkrat na vsak
Objekt
Razred
Modul
Program
Statični konstruktor razreda se izvrši enkrat na vsak:
Objekt
Razred
Modul
Program
Deep kopiranje objekta pomeni, da se kopira:
Vsebina objekta in reference vezanih objektov (shallow copy)
Reference vezanih objektov
Vsebina objekta in vezani objekti
Zgolj vsebina objekta, reference so null
Smisel privatnega konstruktorja je v tem da:
Prepreči nastanek kakaršnega koli objekta tega tipa
Navzven prepreči uporabo določenega načina kreiranja objekta
€� Omogoči avtomatsko destrukcijo objekta
Konstruktor ne sme biti privaten
Privatno spremenljivko alfa v razredu A vidijo:
Vsi objekti tipa A
Vsi objekti tipa A ali iz A izpeljanega tipa
Vsi objekti poljubnega tipa
Vsi objekti poljubnega tipa, ki uporabljajo objekt tipa A kot razredno spremenljivko
System.string s=«kruh«; s.pojej(); je legalna C# koda, ki mogoča mehanizem
Dedovanja
Ekstenzij
Izjem
Izjem
Metode je mogoče overloadati zato, ker:
Prevajalnik lahko naredi hitrejšo kodo
Je vmesnik, enostavnejši za programerja
Je takšna metoda krajša
Overload metod ni mogoče
Kateri mehanizem omogoča hkratno uporabo različnih razredov z istim imenom:
Namespace
Izjeme
Dedovanje
Virtual
Deklaracija virtual pred imenom metode pomeni:
Metoda bo vidna zgolj v javnih metodah izpeljanih razredov
Metoda bo polimorfna v vseh izpeljanih razredih
Izpeljani razred mora vsebovat
Novo definicijo te metode
Kateri od naštetih principov je dejansko kriterij za uporabo dedovanja:
Single Responsibility Principle
Open Close Principle
Liskov Substitution Principle
Interface Segregation Principle
Sintaktično pravilna koda Y y = new X(); y.foo(); bosta klicali metodo:
Iz X
Iz Y
Iz X, vendar če je foo() polimorfna (spremenjena) metoda, bo klican foo() iz Y
Iz Y, vendar če je foo() polimorfna metoda, bo klican foo() iz X
Sklopljenost razredov manjšamo z mehanizmom:
Polimorfizma
Vmesnikov
Skrivanja
Abstrakcije
Polimorfna koda v primerjavi z generično kodo:
Počasnejša
Hitrejša
Enako hitra
Neprimerljiva
Katera trditev JE pravilna?
Polimorfne metode omogočajo klice metod brez proženja izjem
Vmesnik določa česa izpeljani razred ne sme delati
€� konstruktor je prva metoda, ki je klicana nad objektom
Polimorfne metode omogočajo dostop do privatnih vsebin nadrazreda
Če imamo class X{}, class Y{} : X lahko napišem:
X x = new Y ();
Y y = new X();
Kaj je enkapsulacija?
Združitev objektov v generično kodo
Združitev podatkov in metod za delo z njimi
Uporaba razrednih hierarhij omogoča prevajalniku, da :
Uporabi enkapsulacijo na nivoju strojne kode
Loči pravilno in nepravilno uporabljene objekte
Mehanizem abstrakcije omogoča programerju:
Pisanje bolj splošne kode
Pisanje bolj specializirane kode
C# interface in programerski vmesnik razreda sta ena in ista stvar:
Res je
Ni res
Uporaba generikov zagotavlja tipsko pravilnost kode v času:
Prevajanja (buildanja)
Izvajanja
Deklaracija private označuje dostopnost kode za operacijski sistem:
True
False
Označi NAJSLABŠI način: metodo foo z enim parametrom lahko zapišemo kot:
Metodo, ki sprejme objekt z znanim vmesnikom – foo(IX obj)
Metodo, ki sprejme katerikoli objekt – foo(object obj)
Generično metodo – foo(X obj)
Metodo, ki sprejme točno določen tip objekta – foo(X obj)
Izjeme »lovimo« v naslednjem vrstnem redu:
Od najbolj specifične do najbolj splošne
Od najbolj splošne do najbolj specifične
Od najlažje do najtežje
Vrstni red ni pomemben
LINQ uporabljamo za delo s sekvencami, sam mehanizem pa temelji na:
Kolekcijah
Polimorfizmu
Izjemah
Dedovanju
Kaj je kritična lastnost, ki loči objektne jezike od ostalih:
Sintaktično barvanje izvorne kode
Histrost prevajanja
Strogo tipizirana izvorna kode
Prevajalniku razumljiva hierhija razredov
Identično podvajanje kode rešujemo z:
Novo funkcijo
Dedovanjem
Generiki
Vmesniki
Generične metode in polimorfizem se/sta:
Dopolnjujeta
Izključujeta
Neodvisna
Odvisna
Če predelamo metodo void foo(X x) po Dependency Inversion principu, lahko dobimo:
X foo(X x)
Void foo(IX x)
X foo()
Ni mogoče
Kaj se zgodi, če v programu prožimo izjemo (s klicem throw), ki je nikjer ne lovimo znotraj try-catch bloka?
Izjema se zapiše v log v dierktoriju debug
Izjema, ker ni znotraj try-catch bloka ne prekine delovanja programa zato nadaljuje z izvajanjem
Program se po klicu throw metode sesuje, ker ne najde try-catch bloka
Nič. Program se ne prevede
Ko imamo v razredu več metod z istim imenom in razlučnim podpisom, govorimo o:
Polimorfizmu
Redefiniciji metod
Dedovanju
Prekrivanju metod
Označite pravilne trditve:
V programu lahko sobivajo objekti različnih tipov
Rahla sklopljenost dveh razredov pomeni, da oba potrebujeta drug drugega
Referenca je način za naslavljanje abstraktnih objektov
Razredu ki nima konstruktorja, rečemo tudi podatkovni tip
Razred je pravilo za izdelavo in obnašanje objekta
Izljoči vsiljivca:
€� Enkapsulacija
€� Dedovanje
€� Polimorfizem
€� Generiki
Kateri mehanizem določa, da lahko nad objektom tipa A uporabljamo le metode razreda A, ne pa tudi B.
€� Enkapsulacija
€� Polimorfizem
€� Dedovanje
Označi pravilno trditev:
€� Polimorfizem potrebuje razredno hierarhijo
€� Polimorfizem potrebuje enkapsulacijo
€� Dedovanje potrebuje enkapsulacijo
€� Dedovanje potrebuje polimorfizem
Overload metode pomeni, da dve različni metodi nemoreta imeti:
Istega imena in števila parametrov
Istega imena in števila in tipa parametrov
Istega imena in števila parametrov in return tipa
števila in tipa parametrov in return tipa
Kateri mehanizem omejuje dostop do gradnikov ( atributi, metode ... ) razreda?
Namespace
Vidljivost
Dedovanje
Vmesnik
Sintaktično pravilen ukaz X x = new Y(); pomeni, da bo ukaz x.foo() klical foo();
 
Vedno iz Y
Iz X, razen če je foo() virtualna metoda, ko bo klican foo() iz Y
Iz Y, razen če je foo() virtualna metoda, ko bo klican foo() iz X
Polimorfizem omogoča, da:
Programer kreira bolj kompaktne razrede
Prevajalnik kliče "pravo" metodo ne glede na tip reference
Prevajalnik naredi hitrejšo kodo
Programer re-definira hierarhijo razredov
Uporabo cast minimiziramo z mehanizmom:
Polimorfizma
Vmesnikov
Skrivanja
Abstrakcije
Katera trditev ni pravilna?
Polimorfne metode razbremenijo programerja ubadanja s tipi objektov
Vmesniki poskrbijo, da prevajalnik ne dopusti "polovične" definicije razreda
Privatni konstruktor pomeni, da objekta na ta način sploh ni mogoče inicializirati
Konstruktor je prva metoda, ki je klicana nad objektom
Če imamo class A {} , class B : A {}; lahko napišemo :
A x = new B();
B x = new A();
Mehanizem abstrakcije omogoča prevajalniku:
Preverjanje pravilne uporabe objekta
Preverjanje pravilne sestave razreda
Kopirni destruktor dedovanega razreda vidi tudi privatne atributne nadrazreda?
True
False
Kjer potrebujemo "osnovni" objekt lahko vedno uporabimo tudi "izpeljan" objekt
True
False
Dedovanje pomeni najenostavnejšo ponovno uporabo kode:
True
False
Dedovani razredi lahko "skrijejo" neželene metode nadrazreda?
True
False
Katera od naštetih opcij ima največjo prednost pred ostalimi?
Dedovanje
Enkapsulacija
Polimorfizem
Katera rezervirana beseda je ključna za enkapsulacijo?
Virtual
Public
Private
Protected
Ko se ukvarjamo z dedovanjem v c#, je vedno klican:
Konstruktor iz nadrazreda
Default kontruktor iz nadrazreda
Oba izbran in default kontruktor iz nadrazreda
Izbran kontruktor
A : B lahko zapišemo kot:
B x = new A
A x = new B
Oboje
Nic od nastetega
Polimorfizem potrebuje izjeme?
True
False
"Kosara k = new Kosara(); k[0] = new Apple();" ali je to ok c# koda?
True
False
Generiki v C# so enaki C++ šablonam?
True
False
Dinamični polimorfizen potrebuje enkapsulacijo?
True
False
Enkapsulacija zahteva dinamičen polimorfizem?
True
False
Kateri mehanizem v C# nam omogoča, da v objekt shranimo funkcijo?
Delegat
Generik
LAMBDA
Izberi vprašanje, če je odgovor Lambda funkcija!
Katera funkcija nima lastnega imena?
Katera funkcija shrani objekt v funkcijo?
Katera funkcija ima isto ime in več paramterov
Kaj pomeni, če je razred A rahlo sklopljen z razredom B?
Da sta oba, A in B tesno sklopljena z razredom C
Da je samo A tesno sklopljen z razredom C
Da je samo B tesno sklopljen z razredom C
Da sta oba razreda rahlo sklopljena z razredom C
Kateri princip govori o tem, da moramo kodo pisati za prihodnost in ponovno uporabo: kode v uporabi naj ne bi spreminjali, bi pa naj bila premišljeno zasnovana tako, da bi jo lahko ponovno uporabili?
Lisk Substitution
Open/Close princip
Dependeny Inversion princip
Single Responsibility Princip
Kateri princip zagovarja na eno nalogo fokusirano kodo, ki je zaradi tega najlažje prenosljiva v druga okolja in uporabna v različnih scenarijih?
Dependeny Inversion princip
Single Responsibility Princip
Open/Close princip
Lisk Substitution
Kaj je posledica uporabe Dependency Inversion principa?
Tesno povezanost z razredom nadomesti tesna povezanost z vmesnikom.
Tesno povezanost z razredom nadomesti tesna povezanost z metodo
Označi pravilne trditve o iteratorjih!
Iterator je vsak objekt, ki omogoča zaporeden dostop do elementov sekvence;
C# foreach je najenostavnejši način za iteriranje po sekvenci;
Iterator lahko uporabimo, še preden je sekvenca dokončana;
{"name":"Napredno programiranje 2", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Označi pravilne trditve:, A pomeni da je A, Pošiljanje sporočil med objekti poteka s pomočjo","img":"https://www.quiz-maker.com/3012/images/ogquiz.png"}
Powered by: Quiz Maker