Klasa je šablon za objekat koji opisuje vrstu i količinu podataka koje će objekat sadržavati, ali ne predstavlja ni jedan određen primerak objekta. Tačnije, klase u osnovi predstavljaju šablone iz kojih se mogu stvarati objekti. Objekti sadrže podatke i metode za manipulisanje i pristup podacima, ali klasa određuje koje podatke mora da sadrži svaki konkretan objekat iako klasa sama ne sadrži nikakve podatke. Taj konkretan objekat uglavnom u literaturi se naziva primerak ili instanca. Inače klasa kao reč je nastala prema pojmu klasifikacija. Kada pravite klasu, vi uređujte članove klase u smisleni entitet. Za razliku od stuktura, klase vam daju mnogo veću fleksibilnost i više mogućnosti s obzirom da klase podržavaju nasleđivanje. Strukture su vrednosni tip podataka dok su klase referentni tip.

Primer iz stvarnog sveta za klasu možete zamisliti i kao svojstva koja opisuju na primer tramvaj. Tramvaj ima motor, sedišta, kočnice, ponekad i klima uređaj; može da se vozi napred i nazad. Klasa opisuje sva svojstva i radnje koje jedan tramvaj poseduje ali klasa ne predstavlja ni jedan određen tramvaj. U stvarnom svetu tramvaj bi predstavljao objekat. S obzirom da postoje različiti tramvaji, znači da postoje i različiti objekti; ali svi bi objekti tramvaj bili prepoznati kao primerci klase tramvaj. Klase opisuju svojstva i ponašanje objekta preko članova. Članovi klase mogu biti polja, svojstva, metode i događaji. Klasu pravite tako što koristite ključnu reč class. Sintaksa za pravljenje klase je sledeća:

class ime_klase
{
         članovi_klase

}


Šta je enkapsulacija?

Enkapsulacija, enkapsuliranje što u prevodu znači zamotavanje je način da vi sakrijete, zaštitite i kontrolišete pristup podacima koji se nalaze u objektu. To radite tako što članovima klase odredite rang vidljivosti, tj. odredite koji članovi klase su na primer javni, privatni, zaštićeni ili interni. Na primer dok vi gledate realiti šou na TV, vas ne interesuje kako televizor prikazuje realiti šou. Vas interesuje da gledate program. Tako isto kad koristite objekte, bilo da su objekti vaši ili da je objekte neko drugi pravio; vi želite da objekti rade ono za šta su namenjeni, bez obzira koliki vi uvid imate u ono kako tačno objekat radi. Znači, enkapsulaciju koristite u vašim klasama kad hoćete da kontrolišete skrivenost članova klase koju će objekat da koristi.

(izvor, www.manuelradovanovic.com )


Na drugi način objašnjeno: Kako su to objasnili u jednoj od knjiga:

Klase (classes) su opisi koji definišu kako će se generisati objekti i koje osobine i funkcionalnosti ti objekti poseduju. Klasa predstavlja strukturu u kojoj su grupisani podaci i funkcije, uključujući i druge klase. Klase predstavljaju opise tj. šablone za opis zajedničkih karakteristika grupe objekata. Klase se sastoje od članova (class members) različitog tipa. Podaci klasnih tipova predstavljaju primerke (instances) i nazivamo ih objektima (objects). Promenljiva klasnog tipa je pokazivač u statičkoj memoriji na objekat koji se nalazi u dinamičkoj memoriji.

Član klase može biti polje (field) za podatke, metoda (method) koje predstavljaju funkcije klase, konstruktor, destruktor, svojstvo, indekser, druga klasa ili događaj.

Deklaracija klase

class ime_klase : NazivOsnovneKlase
{
modifikator tip polje;
...
modifikator tip metoda(parametri);
...
}

Polje klase

   imeTipa  imePolja = početnaVrednost, imePolja2,..;

Klasom se definiše novi korisnički tip. Instance klase nazivaju se objekti. Svaki objekat ima svoje sopstvene elemente koji su navedeni u deklaraciji klase. Ovi elementi nazivaju se članovi klase. Kreiranje objekata se vrši operatorom new, članovima se pristupa preko operatora . (tačka):

    objekat.clan

Unutar klase, tekućem objektu klase se predstavlja ključnom reči this. Time se označava da se pristupa članu tekućeg objekta:

     this.clan

Za pristup članu sopstvene klase može se koristiti samo ime člana klase:

     clan

Za pristup članovima se koristi modifikator koji može biti: public, private, protected, protected internal i internal.

***

Da se podsetimo od ranije (ako se ne sećate, a trebalo bi da znate):

Modifiers - modifikatori određuju rang delovanja promenjive, funkcije, strukture, metode i klase na nivou celog rešenja. Osnovni modifikatori pristupa su:

  • Public – javan, bez restrikcija.
  • Protected Internal – limitiran na program, klasu i izvedene klase
  • Internal – limitiran na program i klasu
  • Protected – limitiran na klasu i izvedene klase.
  • Private – limitiran samo na klasu
Pored navedeni modifikatora obavezno trebate obratiti pažnju i na:
  • Static – omogućava da nam nije potrebno da instaciramo klasu kako bi smo pristupili članu klase

***


Last modified: Tuesday, 13 October 2020, 9:42 PM