Поља класе представљају атрибуте класе којима описујемо стања која желимо да сачувамо у току извршавања програма. Поља дефинишемо увек у оквиру класе користећи следећи шаблон:
vidljivost TipPodatka naziv_polja;
Када користимо термин видљивост, мислимо на то где одговарајућа променљива, односно, поље класе, сме да се користи. Постоје три резервисане речи које описују видљивост: public, private и protected.
Уколико је променљива декларисана са public то значи да је она јавна и да може свугде да јој се приступи, унутар било које класе и методе.
Уколико је променљива декларисана са private то значи да та поља могу да користе само методе које се налазе у истој класи. Она се у другим методама неће видети.
Уколико је променљива декларисана са protected то значи да тим пољима могу приступити само методи из класе, као и методи који су изведени из тренутне класе, о чему ће касније бити речи. Видљивост је такође једна од особина класе, најчешће ће класе које будемо формирали у наредним примерима бити public, као и њихови методи.
|
*У случају да се анимација не приказује, притиснути дугме Прикажи слику
Напомена: Тамо где је видљива променљива са ознаком protected, ту су видљиве и променљиве са ознакама private и public. Тамо где је видљива променљива са ознаком private, ту је видљива и променљива са ознаком public. Променљива са ознаком public је увек видљива, али ако њу можемо видети, то не значи да ћемо видети и променљиве које су означене са private и protected. |
class Datum
{
//Polja klase Datum. Vidljivost svih polja je public
public int dan;
public int mesec;
public int godina;
//Konstruktor. Neophodan je da bismo kreirali objekat tipa Datum.
public Datum(int dan, int mesec, int godina)
{
//Pomocu pokazivaca this pristupamo poljima klase
this.dan = dan;
this.mesec = mesec;
this.godina = godina;
}
//Metod koji kreiramo bice public, dakle, moze se primeniti svugde, i u klasi Form1
public string rodjendan(int dan, int mesec)
{
return "Vas rodjendan je " + dan + "." + mesec + ".";
}
//Metod koji kreiramo bice public, dakle, moze se primeniti svugde, i u klasi Form1
public string prestupna (int godina)
{
if (godina % 4 == 0 && godina % 100 != 0)
return "Godina u kojoj ste rodjeni je prestupna";
else
return "Godina u kojoj ste rodjeni nije prestupna";
}
}
У овом примеру креирали смо класу у којој сваки објекат има три поља - dan, mesec и godina. Сва поља декларисана су као public. Класа сама по себи не садржи никакве податке већ само описује структуру података кроз нека поља. Објекти су конкретни подаци и садрже конкретне информације. Структура информација у објектима дефинисана је у структури класе. Сада када смо описали класу могуће је креирати објекат који има структуру дефинисану у класи и поставити вредности поља.
У наведеном коду имамо и конструктор, помоћу кога можемо креирати објекте класе Datum. Тада приликом креирања објекта типа Datum имамо конструктор коме можемо одмах да проследимо дан, месец и годину, и одмах постављaмо поља на одређене вредности. То је илустровано у наредном примеру.
//Kreiramo datum pomoću konstruktora iz klase
Datum d = new Datum(dan, mesec, godina);
Такође, у случају да нисмо дефинисали конструктор, увек постоји подразумевани конструктор.
Kreiramo objekat pomocu podrazumevanog konstruktora
Datum d = new Datum();
//Postavljamo vrednosti polja
d.dan = 13;
d.mesec = 5;
d.godina = 1988;
У том случају, када конструктор није дефинисан, објекат смо креирали помоћу подразумеваног конструктора. Вредности поља су у овом случају постављена помоћу оператора тачка.