Professional Documents
Culture Documents
Publish()
Like() - Ponasanje(Metode/Funkcije)
Comment(message)
STATIC klasa – ne može imati objekte, sadrži statičke vrednosti atributa (konstante) i statičke
metode, poziva se nazivom klase, nakon čega sledi naziv atributa ili metoda.
Console.WriteLine();
2. Sta je objekat?
Objekat je konkretan primerak složenog tipa podatka. „Klase“ obuhvataju ne samo varijable već
i funkcije tj. metode objekata. Metode tj. funkcije objekata opisuju akcije koje mogu neki objekti
da obavljaju. Jasno je da neki objekat nije okarakterisan samo atributima koji opisuju ‘’izgled’’
nekog objekta već i „metodama“ koje objekat može da vrši. Objekat predstavlja instancu
klase.
3. Sta je enkapsulacija?
4. Sta je polimorfizam?
5. Sta je nasledjivanje?
Svaka klasa koja sadrži ključnu reč abstract i koja ima najmanje jednu apstraktnu metodu se
naziva apstraktna klasa. Apstraktna metoda je metoda koja sadrži ključnu reč abstract i koja
nema ni telo ni implementaciju. Apstraktna klasa ne može da se instancira dok svaka njena
apstraktna metoda mora da bude nadjačana u svakoj neapstraktnoj klasi koja nasleđuje
apstraktnu klasu. To jednostavno znači da apstraktnu klasu i njene apstraktne metode koristite
kad niste sigurni kakva će biti implementacija neke metode ali vam je ta metoda neophodna.
Primer koriscenja apstraktne klase, imamo abstraktnu klasu Shape koja u sebi ima metodu
Draw(), dve klase nasledjuju klasu Shape, a to su Rectangle i Circle. U ovom slucaju u
abstraktnoj klasi Shape, metoda Draw() ce biti apstraktna. Previse je apstraktno opisati kako se to
crta Shape, ali nam je ta metoda potrebna za njene podklase Rectangle i Circle. Podklase su u
obavezi da implementiraju metodu Draw(), posto ta metoda u klasi Shape nema implemenatciju.
Tako da ce klase Rectangle i Circle pomocu kljucne reci override implementirati metodu Draw(),
svaka klasa na svoj nacin. Na ovaj nacin se postize polimorfizam.
7. Sta je konstruktor?
Konstruktor je metoda koja se poziva kada je instanca klase kreirana. Bitna pravila kod
konstruktora su ta da konstruktor mora imati isti naziv kao i klasa u kojoj se nalazi i nema return
tip, ne vraca nikakvu vrednost. U svakoj klasi postoji defaultni konstruktor(bez parametara) koji
ce biti koriscen u slucaju da se konstruktor ne definise. Sluzi za kreiranje objekata. U jednoj klasi
moze biti vise konstruktora sa razlicitim parametrima, odnosno drugacijim
potpisima(signatures), tako da u isto vreme mozemo imati vise konstruktora i pozivati onaj koji
nam u odredjenom trenutku najvise odgovara.
8. Sta je interfejs?
Interfejsi su veoma slicni klasama u smislu sintakse, ali su u osnovi potpuno drugaciji. Interfejsi
ne sadrze nista drugo osim deklaracija za metode, propertije, evente. Ne sadrze implementaciju.
Jedna od prednosti interfejsa je ta sto klasa ne moze da nasledjuje vise osnovnih klasa, ali zato
moze da implementuje vise razlicitih interfejsa. Interfejs je najjednostavnije receno “ugovor” o
tome sta ce biti implementirano, kompletno odvaja imena i potpise metoda, svojstava,
dogadjaja… od njihove implementacije. U praksi se interfejs oznacava sa velikim slovom I
ispred imema(IActivity), ne moze da sadrzi polja i ne moze se instancirati bas kao i apstraktna
klasa. Svaki clan interfejsa se podrazumeva da je javni, iako ispred clanova intefejsa ne ide
access modifier. Takodje interfejs moze da poziva druge interfejse, to se onda naziva re-
implementation.
- Kastovanje se koristi kada zelimo da izvrsimo konverziju iz tipa sa vecim kapacitetom u tip sa
manjim kapacitetom prilikom cega postoji mogucnost gubitka podataka.
string s = “1”;
int i = Convert.ToInt32(s);
int j = int.Parse(s);
- Reference Types
- klase(nizovi, stringovi, custom klase)
- memorija se mora alocirati
- memorija je alocirana na heap-u
- garbage collected by CLR
- Garbage collection – proces upravljanja memorijom, gde se memorija čisti od zaostalih instanci
objekata koji se ne koriste i-ili promenljivih. Ovo je mehanizam koji programmer ne kontroliše,
već se realizuje automatski. Svaka promenljiva ima oblast važenja u svom bloku naredbi i nakon
završetka bloka ili završetka procedure, sve promenljive se brišu iz memorije automatski.
- Nizovi imaju fiksiranu velicinu(unapred odredjenu), dok Liste imaju dinamicku velicinu.