You are on page 1of 3

1Polimorfizam predstavlja isti niacin pristupa za optu klasu akcija.Prevodilac odreuje koju de metodu zaista pozvati u zavisnosi od konteksta.

Ovo smanjuje sloenost koda. Primer koridenja ula mirisa kod psa. Jednim isti ulom on razlikuje maku ili hranu!Tokom vremena moete menjati unutranju konstrukciju klase ne remetedi kod koji se oslanja na javni interfejs klasa. 2Kapsuliranje je mehanizam koji povezuje naredbe i podatke sa kojima one rade. Kapsulirani kod pravi zatitnu auru oko podataka i naredbi nedozvoljavajudi proizvoljan pristup.Pristup kapsuliranim podacima i naredbama je strogo definisano. Primer menjaa-brzina se moe altati samo preko ruice menjaa, i to nema uticaja na migavce automobila!Osnova kapsuliranja u JAVI je klasa (class). Klase definiu nove tipove podataka. 3Nasleivanje (inheritance) je proces kojim jedan objekat nasleuje osobine drugog. Ovaj koncept podrazumeva hijerahijske klasifikacije.Bez postojanja hijerarhije svakom objektu bi morali iznova zadavati sve njegove karakteristike. Sa nasleivanjem dovoljno je samo definisati karakteristike koje ga ine jedistvenim u klasi.Opta svojstva objekti nasleuju od svojih roditelja 4Bytecode!!! Java programi se prevode u meukod koji se naziva bytecode.Bytecode je isti bez obzira na kompjutersku platformu na kojoj se izvrava.Bytecode se prevodi u izvrni kod procesora i tek tada se moe izvriti u okruenju programa domadina: Java Virtual Machine (JVM).Bytecode se moe izvriti na svakom raunaru koji poseduje JVM. 5U Javi se definie prostor imena u kojima se smetaju metode i podaci koji se koriste u odgovarajudoj klasi.Ovo znai da metode mogu imati ista imena ako pripadaju razliitim imenskim prostorima.Da bi se definisalo koja se metoda tano poziva mora se navesti hijerarhijski pristup preko prostora imena (paketa).Umesto : println("Hello World!"), pie se System.out.println("Hello World!"). 6Niz (array) predstavlja grupu promenljivih istog tipa koje se pojavljuju pod zajednikim nazivom.Nizovi su referentni tipovi podataka. Mogudi su nizovi svih tipova!Pristup elementima niza mogud je preko rednog njegovog broja-indexa.Mogude je definisati jednodimenzione i viedimenzione nizove 35 Naredbe skoka:continue class Continue { public static void main(String args[]) { for(int i=0; i<10; i++) { System.out.print(i + " "); if (i%2 == 0) continue; System.out.println(""); }}}

7Klasa definie novi tip podataka. Ovako formirani tipovi se koriste za pravljenje objekta. Klasa predstavlja ablon za objekat, a objekat je samo primerak (instanca) klase.Klasa se deklarie pomodu rezervisane rei class Klasa se sastoji od podataka i koda (programa) koji radi sa tim podacima.Klasa sadri metodu main() samo ako u njoj poinje program. 8Operator new dinamiki dodeljuje memoriju objektu:Promenljiva = new imeklase(); Imenom klase iza koga slede () odreuje se konstruktor.Konstruktor definie ta se dogaa kada se pravi jedan od objekata klase. Ako konstruktora nema Java obezbeuje podrazumevani konstruktor (kao u prethodnom primeru). 9Preklapanje metoda!!!Mogu se definisati vie metoda sa istim imenom sve dok im se dekleracija parametara razlikuju!U tom sluaju metodi su preklopljeni (overload).Na osnovu tipa i/ili broja argumenata Java odreuje kojade se metoda zapravo pozvati! 10Rezervisana re: Static Ako je potrebno definisati lan klase koji se koristi nezavisno od objekta oznaite ga sa static.Sasvim drugo znaenje nego kpd C-a.Primer statine metode je: main() jer se poziva pre pravljenja bilo kakvog objekta!Sve instance neke klase dele istu statiku promenljivu.Ogranienja su da statine metode mogu pozivati samo statine metode, statine metode moraju pristupati samo statikim podacima i ne mogu se koristiti rezervisane rei this i super. 11Argumenti sa komandne linije!!! Prosleivanje podataka u trenutku pokretanja.Slanje argumenata metodi main() sa komandne linije. Argumenti sa komandne linije se nalaze iza imena programa.Argumenti se smetaju kao znakovni niz koji se prosleuje metodi main(). // Display all command line arguments. class CommandLine { public static void main(String args[]) { for(int i=0; i<args.length; i++) System.out.println("args[" + i + "]: " + args[i]); }} 12Nasleivanje! Pomodu nasleivanja moe se napraviti opta klasa koja definie zajednike karakteristike za skup srodnih pojava. Ovu klasu mogu da naslede specifine klase pri emu se svakoj pridodaje ono to je za nju specifino.Nasleena klasa se naziva natklasa (superclass).Klasa koja nasleuje naziva se potklasa (subclass).Potklasa je specifian sluaj natklase. 13Arithmetiki operatori su simboli koji obavljaju neku aritmetiku operaciju. Ako se koriste vie operatora u izrazu definisan je specifian redosled (prioritet) njihove primene.Operatori sa vedim prioritetom se prvo primenjuju!Predefinisan prioritet operatora se moe menjati zagradama.

14Rezervisana re: super!!! Promenljiva natklase moe da referencira objekat potklase. Kad potklasa treba da se obrati svojoj neposrednoj natklasi to moe uraditi rezervisanom rei super.Potklasa moe da pozove konstruktor definisan natklasom. super (lista parametara) Naredba super mora da bude prva naredba koja se izvrava unutar konstruktora potklase. 15Interfejsi ! Intefejsom definiete ta klasa treba da radi ali i ne kako to treba da izvede.Da bi se realizovao odreeni interfejs, klasa mora da napravi potpun skup metoda koje su nime definisane. Interfejsi podravaju dinamiko razreavanje metoda u trenutku izvravanja metoda!Interfejsi se mogu proiriti. Primer:interface Callback { void callback(int param); } class Client implements Callback { // Implementiranje Callback interfejsa public void callback(int p) { System.out.println("callback called with " + p);}} 16Paketi ! Pravljenje paketa obavlja se komandom package kao prvom naredbom izvorne datoteke.Za uvanje paketa koristi se sistem direktorijuma.Datoteke .class za bilo koju klasu deklarisanu u paketu MojPaket moraju da budu u direktorijumu MojPaket. Paketi mogu da obrazuju hijerarhiju. Opti oblik viestepene nardebe package: package.java.awt.image;Paket takoe definie pravo pristupa metodama.Uvoenje paketa rezervisanom rei import:import java.lang.*; 17Obrada izuzetaka! Izuzeci su neuobiajena stanja koja se javljaju u trenutku izvrenja programa.Izuzetak je greka pri izvrenju! Java poseduje poseban mehanizam za obradu izuzetaka.Java poseduje mehanizme za izazivanje i obradu izuzetaka. Rezervisane rei su throw odnosno catch.Koriste se jo throws i finally.Izuzetak je u Javi objekat koji opisuje vanredno stanje. Ovaj objekat se ubacuje u metodu koja je izazvala greku. 18Vienitno programiranje! Java ima ugraene mehanizme za istovremeno izvravanje vie delova programa.Ovi delovi programa nazivaju se niti (thread). Vienitni rad je specijalni sluaj vieprogramskog rada.U vieprogramskom radu upravljanje izvravanjem obavlja operativni sistem.Kod vienitnog rada upravljanje izvravanja obavlja sam programski jezik Java. Nit moe biti u stanju:izvravanja, spremnosti za izvrenje (odmah po dodeli proces. vre.),suspenzije (aktivnost niti privremeno prekinuta),nastavak rada (suspendovana nit nastavlja sa izvr.), blokade (eka pristup resursu).Svakoj programskoj niti se pridruuje odreeni prioritet.Nit moe dobrovoljno da preda kontrolu ili kontrolu moe da preuzme nit vieg prioriteta.

19Glavana programaska nit! Glavna programska nit se stvara pokretanjem programa i njome se upravlja preko objekta Thread.Iz glavne programske niti se startuju sve druge niti i iz nje se vri idenje radnog okruenja.Referenca na glavnu programsku nit se dobija pozivom statike metode currentThread().Kada se dobije referenca na glavnu programsku nit njome se upravlja kao i svakom drugom niti 20Redefinisanje metoda Kada metoda potklase ima isto ime kao i metoda natklase ona je redefinie (override). Kada se unutar potklase pozove redefinisana metoda izvride se verzija definisana u potklasi.Verzija metode u natklasi biude sakrivena.Redefinisanje metode je mogude samo ako imene i tipovi metoda identini, ako to nije sluaj onda su metode preklopljene.Redefinisanje metoda omogudava da opta klasa definie metode koje de biti zajednike za sve klase, ostavljajudi potklasama slobodu da definiu specifine varijante nekih ili svih metoda 21Apstraktne klase! Moete definisati natklasu koja samo deklarie strukturu klase bez detaljnog definisanja svih metoda. Potklase moraju redefinisati sve metode. Dekleracija apstraktne metode je slededa: abstract tip ime(lista parametara) Apstraktne metode nemaju telo metode! Metode koje sadre apstraktne klase i same su pstraktne! 22Appleti! su male aplikacije smetene na serveru, koje se prenose preko Interneta, a zatim se automatski instaliraju kod klijenta i izvravaju kao deo Web dokumenta.Nemaju metodu main().Aplet ima ogranieni pristup resursima klijenata tako da se mogu izvravati bez bojazni virusne infekcije.Apleti su neto drugaije struktuirani u odnosu na standardne Java aplokacije.Primer jednostavnog Apleta: import java.awt.*; import java.applet.*; public class SimpleApplet extends Applet { public void paint(Graphics g) { g.drawString("A Simple Applet", 20, 20); 23Tipovi podataka su abloni koji opisuju funkcionalnost kolekcije podataka Postoje referentni i vrednostni tipovi.Osnovna razlika izmeu ovih tipova je u nainu pristupa podacima.Memorija za podatke je podeljena na stek i hip deo.Vrednosni tipovi se smetaju u stek deo memorije (integer,boolen,char,struct). Posle koridenja ovi tipovi oslobaaju memoriju. Promenljive referencnog tipa postoji na dve memorijske lokacije.Pravi podaci objekta se nalaze u hip prostoru.Promenljiva koja ukazuje na taj objekt nalazi se u steku.Kada funkcija pozove takvu promenljivu ona vrada memorijsku adresu za objekat na koji ona ukazujeKada se promenljiva vie ne koristi referenca objekta se unitava ali ne i sam obje..

24Logiki operatori kombinuju logike vrednosti true i false u jednu vrednost true i false. Postoje est osnovnih logikih operatora. Mogude su kombinacije logikih operatora i operatora dodeljivanja. 25Upravljake naredbe se koriste za kontrolisanje toka programa i njegovo grananje na osnovu stanja promenljivih. Postoje tri kategorije ovih naredbi: naredbe uslovljavanja, naredbe ciklusa i naredbe skoka. Obradidemo sledede naredbe: if, switch, for, while, do while, break, continue i return. 26 If naredba int a, b; if(a < b) a = 0; else b = 0; boolean dataAvailable; if (dataAvailable) ProcessData(); else waitForMoreData(); int bytesAvailable; if (bytesAvailable > 0) { ProcessData(); bytesAvailable -= n; } else waitForMoreData(); 27 If-else-if naredba // Demonstracija if-else-if naredbe. class IfElse { public static void main(String args[]) { int mesec = 4; // April String sezona; if(mesec == 12 || mesec == 1 || mesec == 2) sezona = Zima"; else if(mesec == 3 || mesec == 4 || mesec == 5) sezona = Prolede"; else if(mesec == 6 || mesec == 7 || mesec == 8) sezona = Leto"; else if(mesec == 9 || mesec == 10 || mesec == 11) season = Jesen"; else sezona = Lani mesec"; System.out.println("April je u " + sezona + "."); }} 28 While naredba class While { public static void main(String args[]) { int n = 10; while(n > 0) { System.out.println("tick " + n); n--;}}} 29 Naredbe skoka: return class Return { public static void main(String args[]) { boolean t = true; System.out.println("Before the return."); if(t) return; // return to caller System.out.println(Ovo se nede izvriti.");

30 Switch naredba class SampleSwitch { public static void main(String args[]) { for(int i=0; i<6; i++) switch(i) { case 0: System.out.println("i je nula."); break; case 1: System.out.println("i je jedan."); break; case 2: System.out.println("i je dva."); break; case 3: System.out.println("i je tri."); break; default: System.out.println("i je vede od 3."); } }} 31 Do-While naredba class DoWhile { public static void main(String args[]) { int n = 10; do { System.out.println("tick " + n); n--; } while(n > 0); } } 32 For naredba class Comma { public static void main(String args[]) { int a, b; for(a=1, b=4; a<b; a++, b--) { System.out.println("a = " + a); System.out.println("b = " + b); } } } 33 For-each naredba class ForEach { public static void main(String args[]) { int brojevi []={1,2,3,4,5,6,7,8,9,10}; int zbir=0; for(int x: brojevi) { System.out.println(" Broj je: " + x); zbir += x; } System.out.println(" Zbir iznosi: " + zbir); }} 34 Naredbe skoka, break class BreakLoop { public static void main(String args[]) { for(int i=0; i<100; i++) { if(i == 10) break; System.out.println("i: " + i); } System.out.println("Loop complete."); } }

1Polimorfizam 2Kapsuliranje 3Nasleivanje 4Bytecode!!! 5prostor imena 6Niz (array) 7Klasa 8Operator new 9Preklapanje metoda 10Rezervisana re: Static 11Argumenti sa komandne linije 12Nasleivanje! 13Arithmetiki operatori 14Rezervisana re: super 15Interfejsi ! 16Paketi ! 17Obrada izuzetaka! 18Vienitno programiranje!

19Glavana programaska nit! 20Redefinisanje metoda 21Apstraktne klase! 22Appleti! 23Tipovi podataka 24Logiki operatori 25Upravljake naredbe 26 If naredba 27 If-else-if naredba 28 While naredba 29 Naredbe skoka: return 30 Switch naredba 31 Do-While naredba 32 For naredba 33 For-each naredba 34 Naredbe skoka, break

You might also like