wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

OOP-BlackWasp_1

Total questions: 21

Worksheet time: 11mins

Name
Class
Date
1.

Na kakšen način ustvarimo nov primerek razreda Avto?

a)

Avto marcedez = Avto;

b)

Avto marcedez = new Avto();

c)

Avto marcedez = new Avto;

d)

Avto marcedez = Avto();

2.

Ali je smiselno nastavljanje spremenljivk v razredu na "public"?

a)

Da

b)

Ne

3.

Na kakšen način je priporočljiv dostop do podatkov, ki jih hranimo o posameznem objektu?

a)

Do spremenljivk, ki hranijo podatke, dostopamo direktno (obj.podatek)

b)

Prek javne lastnosti

c)

Prek uporabe metod

d)

Preko privatne lastnosti

4.

Na kakšen način v metodi set dostopamo do vrednost, ki jo želimo pripisati lastnosti

a)

get

b)

set

c)

value

d)

preko parametra lastnosti

5.

Koliko konstruktorjev lahko naredimo v posameznem razredu?

a)

Samo enega.

b)

Poljubno, a vsaj enega.

c)

Dva ali tri.

d)

Poljubno, tudi nobenega.

6.

Kdaj uporabiti oznako "static" za neko metodo?

a)

Takrat, ko želimo povedati, da metoda ne spreminja ničesar.

b)

Takrat, ko želimo programerju povedati, da naj je ne spreminja.

c)

Takrat, ko ne želimo, da se uporablja izven razreda.

d)

Takrat, ko metoda ni odvisna od posameznega objekta razreda.

7.

Kdaj bi uporabili t.i. preobteževanje metod?

a)

V primeru, ko želimo izračunati vsoto dveh celih števil.

b)

V primeru, ko želimo, da bi metoda lahko sprejemala ali vračala podatke različnih tipov.

c)

Kadar želimo imeti tako objektno kot statično metodo.

d)

V primeru, ko želimo, da bi metoda lahko sprejemala podatke različnih tipov.

8.

Ob uporabi večih konstruktorjev, ali je možno, da en konstruktor "kliče" drugega?

a)

Da.

b)

Ne.

9.

S kakšno ključno besedo dosežemo, da lahko preobtežimo obstoječe operatorje npr. +, *, / ...

a)

operator

b)

override

c)

__mul__, __add__ in podobno

d)

static

10.

Kateri dve omejitvi imamo pri spreminjanju pomena operatorjev true in false.

a)

Spremeniti moramo natanko enega med njima.

b)

Spremeniti moramo oba.

c)

Vrnjena vrednost mora biti tipa bool.

d)

Vrnjena vrednost je poljubnega tipa.

11.

Kako rečemo operatorjema && and ||.

a)

Kratko-stična operatorja

b)

ekskluzivna operatorja

c)

inkluzivni operatorja

12.

Ali lahko operatorja && in || spreminjamo neposredno, preko definicije metode s ključno besedo operator?

a)

Da.

b)

Ne.

13.

Je public class R{} korektna definicija razreda?

a)

Ne, saj manjka konstruktor

b)

Ne, v razredu moramo imeti vsaj eno spremenljivko

c)

Da

d)

Mislim, da ne, a ne vem točno zakaj.

14.

Denimo, da imamo naslednjo definicijo razreda

public class R {

public int Pod(get; set;)

}

Je sintaktično pravilna?

a)

Da

b)

Ne

15.

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?

a)

v spremnljivki Pod

b)

nikjer, saj koda sintaktično ni pravilna

c)

V nam nepoznani spremenljivki

16.

Kako dosežemo, da določeno lastnost lahko le beremo?

a)

lastnost deklariramo kot statično (s static)

b)

ob definiciji lastnosti pred metodo napišemo readonly

c)

ob definiciji lastnost spustimo set

d)

napišemo set {}

17.

Definiran imamo razred


public class R{

public string pod;

public R(string x) { this.pod = x;}

}


Ali lahko napišemo


R moj = new R();

a)

Seveda, C# avtomatično doda privzeti konstruktor (brez parametrov))

b)

Ne, konstruktor brez parametrov se doda le, če ne napišemo noben konstruktor.

c)

Ne, definicija razreda je napačna. Vedno moramo napisati konstruktor brez parametrov!

18.

V statični metodi lahko uporabljamo tudi lastnosti.

a)

Da, tako razredne kot objektne.

b)

Da, ampak le razredne (statične)

c)

Ne, nikoli

19.

Ne glede na to, kako definiramo razred R, lahko nad objekti razreda R (denimo, da je to oR) uporabimo metodo ToString() - torej oR.ToString()

a)

Ne, le če definiramo (z override) metodo ToString

b)

Da, metodo ToString lahko uporabljamo nad objekti poljubnega tipa

20.

Kako moramo definirati preobteževanje operatorja *, če želimo izračunati tako 5 * oR kot oR * 5, kjer je oR objekt iz razreda R?

a)

Definiramo public static R operator * (int f, R obj) saj je množenje komutativno

b)

Definiramo tako public static R operator * (int f, R obj) kot tako public static R operator * (R obj, int f)

c)

Definiramo public R operator * (int f, R obj)

d)

Definiramo tako public R operator * (int f, R obj) kot tako public R operator * (R obj, int f)

21.

želimo pisati


oR += 17


kjer je oR objekt iz razreda R. Kaj moramo zagotovo imeti definirano v razredu R

a)

public static operator += (int f, R ob)

b)

public static operator = (int f, R ob)

c)

public static operator + (int f, R ob)

d)

public operator += (int f, R ob)

e)

public static operator += (R ob, int f)