Квиз¶
Питање 1¶
У класи Figura дат је подразумевани конструктор и конструктор са 4 параметра…
public Figura() { }
public Figura(string ime, string boja, int pozX, int pozY) { }
…и написано је шест наредби помоћу којих су креирани објекти класе Figura:
Figura f = Figura("lovac", "beli", 7, 3);
Figura f = new Figura("beli", "lovac", 7, 3);
Figura f = new Figura();
Figura f = new Figura("lovac", 3, 7, "beli");
Figura f = new Figura("lovac", "beli", 3, 7);
Figura f = new Figura("lovac", "beli", 3);
Штиклирај исправно написане наредбе за креирање објекта класе Figura.
Прва наредба.
Друга наредба.
Трећа наредба.
Четврта наредба.
Пета наредба.
Шеста наредба.
Питање 2¶
Дати су искази који дефинишу конструктор. Штиклирај тачне исказе.
Подразумевани конструктор без параметара се увек аутоматски додаје класи.
Подразумевани конструктор без параметара се класи аутоматски додаје уколико у њој није експлицитно дефинисан ниједан конструктор.
У класи се мора експлицитно дефинисати бар један конструктор.
Конструктори немају тип резултата, чак ни void.
Питање 3¶
Дата је дефиниција класе која се састоји од два конструктора, једне методе и
поља x. У дефиницији се користи службена реч this.
class TestPrimer
{
public double x;
public TestPrimer(double x)
{
this.Fun();
this.x = x;
}
public TestPrimer()
{
Console.WriteLine("Podrazumevani konstruktor");
this(23);
}
public void Fun()
{
Console.WriteLine("Poziv metoda fun()");
}
}
Анализирај дати кôд и процени тачност следећих исказа. Штиклирај тачне исказе.
this.Fun() у конструктору TestPrimer(double x) може се поједноставити и заменити само са Fun().
this.x у конструктору TestPrimer(double x) може се поједноставити и заменити само са x.
позив конструктора this(23) унутар другог конструктора TestPrimer() је прво што се извршава и мора се писати одмах после декларације public TestPrimer():this(23).
this(23) у конструктору Test() мора се заменити са прецизнијим изразом this(23.0).
Питање 4¶
Дата је дефиниција класе која се састоји од два конструктора, методе и поља
x и y. У шестом реду дефинисан је конструктор са параметрима који формира
тачку са координатама x и y.
public class Point
{
private double x, y;
public Point() { x = 0; y = 0; }
public void set(double xx, double yy) { x = xx; y = yy; }
public Point(double x, double y) { ______________; }
}
Штиклирај наредбе којима се може допунити дефиниција конструктора.
this.x=x; this.y=y;
x=x; y=y;
set(x,y);
set(this.x,this.y);
x=this.x; y=this.y;
Питање 5¶
Дат је кôд програма који садржи објекте две класе у којима је дефинисан метод
ТoString().
namespace TestPrimer
{
class Program
{
static void Main(string[] args)
{
Object a = new Klasa();
Object obj = new Object();
Console.WriteLine(a);
Console.WriteLine(obj);
}
}
}
class Klasa
{
int x;
public override string ToString() { return "x u A je " + x; }
}
Анализирај кôд датог програма и одреди који су од датих исказа тачни. Штиклирај очекиване одговоре.
Програм има грешку, јер наредбу Console.WriteLine(a) треба заменити наредбом Console.WriteLine(a.ТoString()).
Приликом извршавања наредбе Console.WriteLine(a), програм позива метод ТoString() наслеђен из класе Object.
Приликом извршавања наредбе Console.WriteLine(a), програм позива метод ТoString() из класе Klasa.
Приликом извршавања наредбе Console.WriteLine(obj), програм позива метод ТoString() из класе Object.
Питање 6¶
Дефинисане су две класе:
class Program
{
public static void Main(string[] args)
{
KlasaA a1 = new KlasaA();
KlasaA a2 = new KlasaA();
Console.WriteLine(a1.Equals(a2));
}
}
class KlasaA
{
int x;
public bool Equals(KlasaA a)
{
return this.x == a.x;
}
}
Анализирај дати кôд и одреди да ли је кôд исправно написан. Означи исказ који даје информацију о тачности кода.
Програм има грешку, јер се изразом a1.Equals(a2) проверава једнакост објеката а1 и а2 различитог типа од Object.
Програм има грешку, јер се једнакост објеката а1 и а2 типа KlasaА проверава изразом а1 == а2.
Програм се извршава без грешке и приказује се true на екрану.
Програм се извршава без грешке и приказује се false на екрану.
Питање 7¶
Дефинисане су две класе:
class Program
{
public static void Main(string[] args)
{
Object a1 = new KlasaA();
Object a2 = new KlasaA();
Console.WriteLine(a1.Equals(a2));
}
}
class KlasaA
{
int x;
public bool Equals(KlasaA a)
{
return this.x == a.x;
}
}
Анализирај дати кôд и одредити да ли је кôд исправно написан. Означи исказ који даје информацију о тачности кода.
Програм има грешку, јер се изразом a1.Equals(a2) проверава једнакост објеката а1 и а2 различитог типа од Object.
Програм има грешку, јер се једнакост објеката а1 и а2 типа KlasaА проверава изразом а1 == а2.
Програм се извршава без грешке и приказује се true на екрану.
Програм се извршава без грешке и приказује се false на екрану.
Питање 8¶
Дат је следећи кôд програма:
namespace TestPrimer
{
class Test
{
int x;
public Test(string s)
{
Console.WriteLine("Klasa Test");
}
static void Main(string[] args)
{
Test t = null;
Console.WriteLine(t.x);
}
}
}
Анализираj дати кôд и означи очекивани одговор.
Програм има грешку јер променљива x није иницијализована.
Програм има грешку јер класа Test нема подразумевани конструктор.
Програм има грешку јер се у некој класи не може декларисати променљива типа те исте класе, као што је то овде случај са променљивом t.
Програм има грешку јер променљива t није иницијализована и има вредност null у моменту када се приказује поље t.x.
Програм нема грешака и нормално се извршава, не приказујући ништа на екрану.