Font size
WorksheetsOOP-BlackWasp_1
Total questions: 21
Worksheet time: 11mins
Na kakšen način ustvarimo nov primerek razreda Avto?
Avto marcedez = Avto;
Avto marcedez = new Avto();
Avto marcedez = new Avto;
Avto marcedez = Avto();
Ali je smiselno nastavljanje spremenljivk v razredu na "public"?
Da
Ne
Na kakšen način je priporočljiv dostop do podatkov, ki jih hranimo o posameznem objektu?
Do spremenljivk, ki hranijo podatke, dostopamo direktno (obj.podatek)
Prek javne lastnosti
Prek uporabe metod
Preko privatne lastnosti
Na kakšen način v metodi set dostopamo do vrednost, ki jo želimo pripisati lastnosti
get
set
value
preko parametra lastnosti
Koliko konstruktorjev lahko naredimo v posameznem razredu?
Samo enega.
Poljubno, a vsaj enega.
Dva ali tri.
Poljubno, tudi nobenega.
Kdaj uporabiti oznako "static" za neko metodo?
Takrat, ko želimo povedati, da metoda ne spreminja ničesar.
Takrat, ko želimo programerju povedati, da naj je ne spreminja.
Takrat, ko ne želimo, da se uporablja izven razreda.
Takrat, ko metoda ni odvisna od posameznega objekta razreda.
Kdaj bi uporabili t.i. preobteževanje metod?
V primeru, ko želimo izračunati vsoto dveh celih števil.
V primeru, ko želimo, da bi metoda lahko sprejemala ali vračala podatke različnih tipov.
Kadar želimo imeti tako objektno kot statično metodo.
V primeru, ko želimo, da bi metoda lahko sprejemala podatke različnih tipov.
Ob uporabi večih konstruktorjev, ali je možno, da en konstruktor "kliče" drugega?
Da.
Ne.
S kakšno ključno besedo dosežemo, da lahko preobtežimo obstoječe operatorje npr. +, *, / ...
operator
override
__mul__, __add__ in podobno
static
Kateri dve omejitvi imamo pri spreminjanju pomena operatorjev true in false.
Spremeniti moramo natanko enega med njima.
Spremeniti moramo oba.
Vrnjena vrednost mora biti tipa bool.
Vrnjena vrednost je poljubnega tipa.
Kako rečemo operatorjema && and ||.
Kratko-stična operatorja
ekskluzivna operatorja
inkluzivni operatorja
Ali lahko operatorja && in || spreminjamo neposredno, preko definicije metode s ključno besedo operator?
Da.
Ne.
Je public class R{} korektna definicija razreda?
Ne, saj manjka konstruktor
Ne, v razredu moramo imeti vsaj eno spremenljivko
Da
Mislim, da ne, a ne vem točno zakaj.
Denimo, da imamo naslednjo definicijo razreda
public class R {
public int Pod(get; set;)
}
Je sintaktično pravilna?
Da
Ne
Imamo
Denimo, da imamo naslednjo definicijo razreda
public class R {
public int Pod(get; set;)
}
ko napišemo
R moj = new R();
moj.Pod = 42;
kje se shrani podatk 42?
v spremnljivki Pod
nikjer, saj koda sintaktično ni pravilna
V nam nepoznani spremenljivki
Kako dosežemo, da določeno lastnost lahko le beremo?
lastnost deklariramo kot statično (s static)
ob definiciji lastnosti pred metodo napišemo readonly
ob definiciji lastnost spustimo set
napišemo set {}
Definiran imamo razred
public class R{
public string pod;
public R(string x) { this.pod = x;}
}
Ali lahko napišemo
R moj = new R();
Seveda, C# avtomatično doda privzeti konstruktor (brez parametrov))
Ne, konstruktor brez parametrov se doda le, če ne napišemo noben konstruktor.
Ne, definicija razreda je napačna. Vedno moramo napisati konstruktor brez parametrov!
V statični metodi lahko uporabljamo tudi lastnosti.
Da, tako razredne kot objektne.
Da, ampak le razredne (statične)
Ne, nikoli
Ne glede na to, kako definiramo razred R, lahko nad objekti razreda R (denimo, da je to oR) uporabimo metodo ToString() - torej oR.ToString()
Ne, le če definiramo (z override) metodo ToString
Da, metodo ToString lahko uporabljamo nad objekti poljubnega tipa
Kako moramo definirati preobteževanje operatorja *, če želimo izračunati tako 5 * oR kot oR * 5, kjer je oR objekt iz razreda R?
Definiramo public static R operator * (int f, R obj) saj je množenje komutativno
Definiramo tako public static R operator * (int f, R obj) kot tako public static R operator * (R obj, int f)
Definiramo public R operator * (int f, R obj)
Definiramo tako public R operator * (int f, R obj) kot tako public R operator * (R obj, int f)
želimo pisati
oR += 17
kjer je oR objekt iz razreda R. Kaj moramo zagotovo imeti definirano v razredu R
public static operator += (int f, R ob)
public static operator = (int f, R ob)
public static operator + (int f, R ob)
public operator += (int f, R ob)
public static operator += (R ob, int f)
