Kreirati klasu buba, u kojoj su članovi: vrsta, predvidjenaStarost i boja, a onda u glavnom programu kreirati objekat te klase koji je vrste "smrdibuba":

using System;
namespace zoo
{
class buba
{
string vrsta;
int predvidjenaStarost;
string boja;
}
class MainClass {
public static void Main (string[] args) {

buba B1 = new buba();
B1.vrsta="smrdibuba";
Console.WriteLine ("Prva buba je " + B1.vrsta);
}
}
}

Ako pokušamo da ovo pokrenemo, dobićemo poruku o grešci, jer ne možemo da pristupimo članovima koji su private za objekat B1 (podsetimo se da ako ne navedete modifikator pristupa. tada se podrazumeva da je private. )

Jedan od načina na koji to možemo da rešimo, je da ubacimo modifikatore pristupa: u ovom slučaju će to biti internal:

using System;
namespace zoo
{
class buba
{
internal string vrsta;
internal int predvidjenaStarost;
internal string boja;
}
class MainClass {
public static void Main (string[] args) {

buba B1 = new buba();
B1.vrsta="smrdibuba";
Console.WriteLine ("Prva buba je " + B1.vrsta);
}
}
}

Napomena: pošto nismo kreirali konstruktor, kompajler je to uradio umesto nas i kreirao podrazumevani konstruktor - koji nema parametre i koji će sve članove postaviti na podrazumevane vrednosti (int na 0, string na "", ...)

Da bi to proverili, u poruci koju pišemo, tražićemo da se ispiše i starost bube, kao i njena boja:

Console.Write("Prva buba je " + B1.vrsta );
Console.Write(" može da bude stara " + B1.predvidjenaStarost + " dana");
Console.WriteLine(" i boja joj je " + B1.boja);

Kada vidite šte ste dobili, razmislite: možda je trebalo da se kreira konstruktor bez parametara, da mi kada kreiramo bubu, u startu to bude neka određena buba.

U našem primeru ćemo klasi buba dodati konstruktor bez parametara, koji će, kada kreira objekat klase buba, svakoj bubi davati vrstu "muva" starost od 2 dana i boju zelenu:

using System;
namespace zoo
{
class buba
{
internal string vrsta;
internal int predvidjenaStarost;
internal string boja;

public buba()
{
vrsta="muva";
predvidjenaStarost=2;
boja="zelena";
}
}
class MainClass {
public static void Main (string[] args) {

buba B1 = new buba();
B1.vrsta="smrdibuba";

Console.Write("Prva buba je " + B1.vrsta );
Console.Write(" može da bude stara " + B1.predvidjenaStarost + " dana");
Console.WriteLine(" i boja joj je " + B1.boja);
}
}
}

Prilikom kreiranja objekta, poziva se konstruktor sa navedenim brojem parametara. U ovom primeru, poyiva se konstruktor koji nema parametre, pa kreira objekat B1 koji je muva koja može da bude stara 2 dana i zelene je boje. Odmah nakon kreiranja tog objekta, vrsta je promenjena, ali je sve ostalo ostalo, pa proverite šta ste dobili ...

Sledeće što radimo je da kreiramo konstruktor koji ima sve parametre - nećemo da svaka buba koju imamo bude muva!

Evo kako sada izgleda program:

using System;
namespace zoo
{
class buba
{
internal string vrsta;
internal int predvidjenaStarost;
internal string boja;

public buba()
{
vrsta="muva";
predvidjenaStarost=2;
boja="zelena";
}

public buba(string v, int s, string b){
vrsta=v;
predvidjenaStarost=s;
boja=b;
}
}
class MainClass {
public static void Main (string[] args) {

buba B1 = new buba();
B1.vrsta="smrdibuba";

Console.Write("Prva buba je " + B1.vrsta );
Console.Write(" može da bude stara " + B1.predvidjenaStarost + " dana");
Console.WriteLine(" i boja joj je " + B1.boja);

buba B2 = new buba("mrav", 200, "crna") ;
buba B3 = new buba("jelenak", 150, "braon");

Console.WriteLine("\n sledeća je buba {0}, koja živi do {1} dana, boja: {2}",B2.vrsta, B2.predvidjenaStarost,B2.boja );

Console.WriteLine("\n zatim ide buba {0}, koja živi do {1} dana, boja: {2}",B3.vrsta, B3.predvidjenaStarost,B3.boja );
}
}
}


Last modified: Monday, 26 October 2020, 10:33 AM