Klase u C# programskom jeziku
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
- Static – omogućava da nam nije potrebno da instaciramo klasu kako bi smo pristupili članu klase
***