37
Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008 Stručni studij informatike Ime i prezime: JMBAG: Bod/ocj: 1 Broj Pitanje Bodovi Navedi osnovne razloge uvođenja objektno orjentiranog pristupa? 1 1. Kriza software-a u kvalitativnom smislu Vrijeme izrade kvalitetnog softvare-a Cijena izrade i prilagodbe software-a Nivo ispunjenosti zahtjeva Pravovremen odgovor na zahtjeve Što je klasa u programskom jeziku? 1 2. Klasa je apstrakcija koja određuje zajedničku strukturu i zajedničko ponašanje skupa objekata. Klasa je koncept programskog jezika koji dozvoljava da podaci i metode budu grupirani zajedno. Što se definira klasom? 1 3. Klasa je koncept programskog jezika koji dozvoljava da podaci i metode budu grupirani zajedno. Klasa je (u Javi) tip koji definira implementaciju pojedine vrste objekta. Što je objekt? 1 4. Objekti su osnovni blokovi od kojih je sačinjen objektno orijentirani program. Objekt je programska jedinica koja objedinjuje podatke (polja) i operacije (metode) koje koriste te podatke ili ih mijenjaju. Što je objekt za korisnika aplikacija? 1 5. Objekt je s korisničkog stanovišta realizacija kojom on može manipulirati u ostvarivanju svojih zadataka. Objekt se može pojaviti kao tekst ili kao neka druga realizacija. Što je objekt pri izvođenju programa? 1 6. U OO projektiranju ili programiranju objekt je konkretna realizacija klase koja sadrži podatke i operacije kojima su ti podaci pridruženi. Na koji način radimo s objektima? 1 7. Izravno - koristeći objekt izravnim vezivanjem Neizravnim pristupom – pokazivačem (C ili C++) uz posebnu sintaksu Što predstavlja referenca na objekt? 1 8. Referenca je relacija između riječi ili izraza i objekta ili ideje na koju ukazuje. Programski – Referenca na objekt je pokazivač na objekt u memoriji i sadržana je u obliku varijable. Što je rezultat izvedbe koda String s = new String (“prvi”);? 1 9. Rezultat je novi objekt klase String koji sadrži varijablu tipa String čija je vrijednost „prvi“ Opiši programsku sintaksu klase? 1 10. class NekiTip {/* ovdje se upisuje tijelo klase */ } unutar tijela klase mogu biti: o metode npr.: public String(„x“) { return x; } o konstruktori npr.: public NekiTip() { } o glavna metoda npr.: public static void main(String[] args) { } o varijable npr.: int x; String y; double z; float w; Što su to članovi klase? 1 11. član je objekt bilo kojeg tipa s kojim se može povezati putem njegove reference, ali može biti i prosti tip tj. ne nužno referenca.

Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008 Stručni studij informatike Ime i prezime: JMBAG: Bod/ocj:

1

Broj Pitanje Bodovi Navedi osnovne razloge uvođenja objektno orjentiranog pristupa? 1 1.

• Kriza software-a u kvalitativnom smislu • Vrijeme izrade kvalitetnog softvare-a • Cijena izrade i prilagodbe software-a • Nivo ispunjenosti zahtjeva • Pravovremen odgovor na zahtjeve

Što je klasa u programskom jeziku? 1 2. • Klasa je apstrakcija koja određuje zajedničku strukturu i zajedničko ponašanje

skupa objekata. • Klasa je koncept programskog jezika koji dozvoljava da podaci i metode budu

grupirani zajedno.

Što se definira klasom? 1 3. • Klasa je koncept programskog jezika koji dozvoljava da podaci i metode budu

grupirani zajedno. • Klasa je (u Javi) tip koji definira implementaciju pojedine vrste objekta.

Što je objekt? 1 4. • Objekti su osnovni blokovi od kojih je sačinjen objektno orijentirani program. • Objekt je programska jedinica koja objedinjuje podatke (polja) i operacije

(metode) koje koriste te podatke ili ih mijenjaju.

Što je objekt za korisnika aplikacija? 1 5. • Objekt je s korisničkog stanovišta realizacija kojom on može manipulirati u

ostvarivanju svojih zadataka. Objekt se može pojaviti kao tekst ili kao neka druga realizacija.

Što je objekt pri izvođenju programa? 1 6. • U OO projektiranju ili programiranju objekt je konkretna realizacija klase koja

sadrži podatke i operacije kojima su ti podaci pridruženi.

Na koji način radimo s objektima? 1 7. • Izravno - koristeći objekt izravnim vezivanjem • Neizravnim pristupom – pokazivačem (C ili C++) uz posebnu sintaksu

Što predstavlja referenca na objekt? 1 8. • Referenca je relacija između riječi ili izraza i objekta ili ideje na koju ukazuje. • Programski – Referenca na objekt je pokazivač na objekt u memoriji i sadržana je

u obliku varijable.

Što je rezultat izvedbe koda String s = new String (“prvi”);? 1 9. • Rezultat je novi objekt klase String koji sadrži varijablu tipa String čija je

vrijednost „prvi“

Opiši programsku sintaksu klase? 1 10. • class NekiTip {/* ovdje se upisuje tijelo klase */ } • unutar tijela klase mogu biti:

o metode npr.: public String(„x“) { return x; } o konstruktori npr.: public NekiTip() { } o glavna metoda npr.: public static void main(String[] args) { } o varijable npr.: int x; String y; double z; float w;

Što su to članovi klase? 1 11. • član je objekt bilo kojeg tipa s kojim se može povezati putem njegove reference,

ali može biti i prosti tip tj. ne nužno referenca.

Page 2: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008 Stručni studij informatike Ime i prezime: JMBAG: Bod/ocj:

2

Što je to metoda? 1 12.

• Metoda - određenje porukama koje objekt može primiti. • Podaci vezani uz klasu ili objekt su spremljeni u varijablama, a ponašanje vezano

uz klase ili objekte se opisuje pomoću metoda. • Metode su slične funkcijama ili procedurama u proceduralnim jezicima.

Opiši programsku sintaksu metode? 1 13. • povratniTip nazivMetode ( /* lista argumenata */) { /* tijelo metode */ }

Što je konstruktor? 1 14. • To je metoda koja ima isto ime kao i klasa, nije povratnog tipa jer nezna kome

vratiti vrijednost, služi za kreiranje/inicijalizaciju objekata

Može li konstruktor imati povratni tip?Objasni? 1 15. • Ne može, jer nezna kome bi vratio vrijednost

Objasni značenje rezervirane riječi ABSTRACT. 1 16. • Apstraktna klasa je nepotpuna klasa i iz nje se ne može napraviti objekt. • Apstraktna klasa ne mora sadržavati niti jednu metodu. • Mogućnost pravljenja jedne ili više metoda bez definicije – osiguravamo sučelje ali

izostavljamo realizaciju koju će napraviti nasljednici te klase

Objasni uporabu rezervirane riječi SUPER. 1 17. • Ako klasa nema podrazumijevani konstruktor ili želimo pozvati konstruktor

osnovne klase kome su potrebni argumenti moramo ga izričito pozvati preko Javine rezervirane riječi super

Objasni uporabu rezervirane riječi THIS. 1 18. • Ako treba referenca na objekt vanjske klase navodi se ime vanjske klase i nakon

toga this • rezervirana riječ koju se koristi za reprezentiranje instance klase u kojoj se

pojavljuje. Također se može upotrijebiti za pristup metodi ili varijabli klase. • Unutar instance metode ili konstruktora klase this ukazuje na “ovaj objekt”

odnosno instancu kojom se trenutno operira.

Koja je razlika između varijable klase i varijable metode? 1 19. • Varijabla klase je dostupna svim objektima te klase, a varijabla metode je

dostupna samo unutar svoje metode

Što su to nereferentni java tipovi? 1 20. • Tipovi podataka bez referenci

Objasni značenje rezervirane riječi NEW. 1 21. • Povezivanje reference i objekta se vrši pozivom (rw) new – za izričito povezivanje

s objektom

Objasni pojam „stanje smrti”? 1 22. • trenutak od kad objekt ne trebamo pa je on spreman za čišćenje i njegova

memorija može biti oslobođena.

Objasni nasljeđivanje kompozicijom. 1 23. • Kompoziciju i nasljeđivanje možemo koristiti zajedno u konstruiranju složenijih

klasa (ako koristimo kompoziciju moramo voditi računa o inicijalizaciji objekata članova)

Zašto ne koristimo EXTENDS u nasljeđivanju kompozicijom. 1 24. • klasa može biti final – završna i tada ne može biti nasljeđivana (extended). • Uz rezerviranu riječ extends može se upotrijebiti samo jedna klasa

Page 3: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008 Stručni studij informatike Ime i prezime: JMBAG: Bod/ocj:

3

Što je to modifikator pristupa? 1 25.

• npr.: static je rezervirana riječ koja predstavlja modifikator primjene deklaracije metode ili varijable u klasi.

• varijable klase se definiraju koristeći modifikator static

Objasni uporabu rezervirane riječi IMPLEMENTS. 1 26. • Rezervirana riječ implements se koristi da se napravi klasa koja zadovoljava

određeni Interface tj. izgled se klase definira sučeljem ali se nakon implementacije definira kako će ona raditi.

O čemu nam govori tip podatka? 1 27. • Tip govori kakvu vrstu ponašanja možemo očekivati od objekta. • Tip specificira što objekt može raditi ili što se može s objektom raditi.

Navedi sve vrste kontejnera? 1 28. • Collection – grupa elemenata na koje se često primjenjuje neko pravilo.

o List čuva redoslijed elemenata o Set ne dozvoljava ponavljanje elemenata u kontejnerskim se

bibliotekama sreće i • Bag koji nema ograničenja. • Map – grupa parova objekata i ključeva – vraća kolekciju parova objekata i

ključeva

Što je to Iterator? 1 29. • To je objekt koji se pomiče kroz niz objekata i čita objekte pri čemu programeru

nije poznata struktura niza.

Što je izuzetak? 1 30. • Izuzetak je događaj koji remeti normalno odvijanje programa pa na taj način

predstavlja određeni tip greške odnosno neočekivani ishod programa.

Navedi vrste izuzetaka? 1 31. • Ulazno/izlazni izuzetci - kod ove vrste mora postojati metoda koja će prihvatit

izuzetak i proslijediti ga izvan metode. Prevoditelj obično javlja grešku. • Izuzetci tijekom izvedbe – aritmetički izuzetci, izuzetci pristupa polju, • Korisnički definirani izuzetci – vlastiti izuzetci

Što znači izbacivanje izuzetaka? 1 32. • Izvanredno stanje (exceptional condition) trenutak prekida programa i tad se

kontrola prenosi u više okruženje da se tamo riješi. Šaljući informacije o grešci u više okruženje zove se izbacivanje izuzetaka.

Što se dešava kad nastupi izuzetak? 1 33. • Kad nastupi izuzetak u dinamičkoj se memoriji pravi objekt operatorom new a

putanja izvršavanja se zaustavlja i referenca na objekt izuzetka se izbacuje iz trenutnog okruženja tražeći mjesto gdje će se nastaviti izvršavanje programa. To mjesto je blok za obradu izuzetaka.

Objasni komandu try { }; 1 34. • Kad ne želimo da throw izazove izlazak iz metode možemo uvesti poseban blok

unutar metode koji će hvatati izuzetak. Taj se blok zove ispitni blok try Ispitni blok je uobičajeni programski blok ispred kojeg se nalazi rezervirana riječ try tj. try { // kod koji generira izuzetke }

Page 4: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008 Stručni studij informatike Ime i prezime: JMBAG: Bod/ocj:

4

Objasni komandu catch (Exception e) { System.err.println(“caught exception”); };

1 35.

• Blok koji hvata bilo koji izuzetak se pravi hvatanjem osnovnog tipa izuzetka klase Exception

o catch (Exception e) { o System.err.println(“caught exception”); }

• Ovim se kodom hvata svaki izuzetak pa se zato stavlja na kraj liste izuzetaka.

Postoje dvije opće vrste objekata tipa Throwable. Koje? 1 36. • Error sistemske greške i greške tijekom prevođenja koje se ne trebaju hvatati

(osim u izuzetnim prilikama). Error ukazuje na ozbiljan problem koji aplikacija/program nije pokušao uhvatiti. Večina ovih grešaka su tzv. abnormalni uvjeti.

• Exception prost tip izuzetka koji može nastati u bilo kojoj metodi klase standardne Javine biblioteke. Klasa Exception i njezine klase nasljednice imaju oblik klase Throwable koje ukazuju na uvjete u kojima aplikacija može hvatati izuzetke.

Što su dretve (niti)? 1 37. • Nit je slična sekvencijalnom programu ali nije program i može se izvoditi samo

unutar programa. • Svaka nit ima svoje tijelo i može posjedovati određena stanja. Nitima se mogu

pridružiti prioriteti. • Tijelo niti - sve aktivnosti unutar niti definiraju se u tijelu koje zapravo predstavlja

metoda run(). • Kod jednoprocesorskog sistema niti se zapravo ne izvode istovremeno nego je

podjela vremena za izvođenje napravljena tako da se stječe dojam istovrmenog izvođenja. Način izvođenja se regulira prioritetima.

Ako je nit predstavljena klasom thread koje su glavne metode te klase? 1 38. • Niti su predstavljene klasom Thread koja je definirana u java.lang paketu. Izravno

izvedena iz klase Object • Nakon što se nit kreira i inicijalizira kontrola se predaje run() metodi u kojoj mora

biti funkcija namjenjena niti. • Run() se može prilagoditi potrebi na način da se iz Thread klase izvede klasa i

promjeni metoda ili primjeni sučelje Runnable definirano u java.lang paketu. Ako klasa nasljeđuje neku drugu klasu onda se koristi sučelje.

Navedi Javine standardne I/O tijekove. 1 39. • System.in – standardni ulaz • System.out – standardni izlaz • System.err – izlaz za ispis grešaka

Što je inicijalizacija, a što invokacija? 1 40. • Inicijalizacija je proces kojim osiguravamo da sve varijable u datoteci ili memoriji

računala budu iste do trenutka u kojem će biti promijenjene. Uobičajeno je da je inicijalizirana vrijednost 0. Ako inicijalizacija nije izvedena u datoteci se može pridijeliti slučajna vrijednost varijabli.

• Poziv metode (invokacija) se sastoji od imena metode kojeg slijedi lista parametara koji se prosljeđuju metodi. Ime metode može biti jednostavno ili označavajuće. Jednostavno ime poziva definira se u klasi kao i poziv. Označavajuće ime ukazuje na objekt ili klasu koja definira metodu.

Page 5: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008 Stručni studij informatike Ime i prezime: JMBAG: Bod/ocj:

5

Što je to referenca na objekt? 1 41.

• identifikator objekta koji koristimo je referenca na objekt – pokazivač/veza s objektom.

• Programski – Referenca na objekt je pokazivač na objekt u memoriji i sadržana je u obliku varijable.

Što je rezultat koda System.out.println( new Date( ));

1 42.

• Trenutni datum i vrijeme • Sun May 25 14:21:07 CEST 2008

Kada koristimo naredbu SWITCH_CASE? 1 43. • Naredba switch se koristi za uvjetno izvođenje naredbi zasnovanih na

cjelobrojnom prikazu uvjeta ili pri nabrajanju tipova objekata. Case je rezervirana riječ kojom se definira grupa naredbi koje se izvršavaju ako je uvjetom specificirana vrijednost ista kkao i ona u naredbi switch koja prethodi.

Koje metode posjeduje li klasa iz koda class A { }; metode? 1 44. •

Što je applet? 1 45. • Applet – program kojim se radi s client strane i izvršava samo unutar čitača Web-a

Page 6: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Objektno orijentirane tehnologije I 6/28/2008

I. Kolokvij

6

Rb. Pit.

Pitanje Bodovi

Navedi bar tri razloga za objektno orijentirani pristup u programiranju. 1 1. • Kriza software-a u kvalitativnom smislu • Vrijeme izrade kvalitetnog softvare-a • Cijena izrade i prilagodbe software-a • Nivo ispunjenosti zahtjeva • Pravovremen odgovor na zahtjeve

Koje su osnovne prednosti OO pristupa? 1 2. • Apstraktni tipovi podataka – instance/pojave – korisnik definira proizvoljno svoje

tipove podataka i osigurava instance operacijama nad podacima . • Enkapsulacija - sakrivenost od ostalog dijela sistema – pokazujemo što sistem

radi ali ne i kao. • Nasljeđivanje – inheritance – novodefinirani tip nasljeđuje svojstva svog

prethodnika i posjeduje neka nova. • Polimorfizam – mogućnost korištenja novih tipova na način kao da se pozivaju

stari/prethodnici •

Nabroji osnovne paradigme OO pristupa? 1 3. • Nsljeđivanje,polimorfizam,enkapsulacija,apstrakcija

Što je to programski jezik? 1 4. • Programski jezik je jezik za pisanje programa koje računalo zna i može izvršiti. • Osnovna podjela je na niže (strojne jezike) i više (orijentirane ljudima). • Viši jezici pak mogu biti:

o sekvencijalni o proceduralni (Pascal, C) o funkcijski (LISP, Erlang, ML) o objektno orijentirani (Java, C++)

Po čemu se OO programiranje razlikuje od proceduralnog? 1 5. • Klasični način programiranja, upotrebljavan od dana prvih računala, je tzv.

proceduralno (ili imperativno) programiranje kod kojeg na program gledamo kao na niz naredbi koje obično postupno mijenjaju vrijednosti nekih varijabli pohranjenih u memoriji računala. Za razliku od ostalih pristupa, u kojima je težište na akcijama koje se vrše na podatkovnim strukturama, ovdje je težište na projektiranju aplikacije kao skupa objekata koji izmjenjuju poruke.

Što je to klasa? 1 6. • Klasa je apstrakcija koja određuje zajedničku strukturu i zajedničko ponašanje

skupa objekata.

Objasni što je to objekt s programskog stanovišta? 1 7. • Objekt je programska jedinica koja objedinjuje podatke (polja) i operacije

(metode) koje koriste te podatke ili ih mijenjaju. • Objekti su osnovni blokovi od kojih je sačinjen objektno orijentirani program.

Pojasni što je klasa u programskom smislu. 1 8. • Programski – klasa je predložak za definiranje metoda i varijabli za svaki objekt

ponaosob, te procedura koje se izvode nad tim varijablama.

Što je zajedničko svim objektima jedne klase? 1 9. • Svi objekti u zadanoj klasi su identični oblikom i ponašanjem ali sadrže različite

podatke u svojim varijablama.

Page 7: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Objektno orijentirane tehnologije I 6/28/2008

I. Kolokvij

7

Što je objekt sa stanovišta korisnika? 1 10. • Objekt je s korisničkog stanovišta realizacija kojom on može manipulirati u

ostvarivanju svojih zadataka. • Objekt se može pojaviti kao tekst ili kao neka druga realizacija.

Pojasni odnos pojmova klasa – objekt sa stanovišta programa. 1 11. • U OO projektiranju ili programiranju objekt je konkretna realizacija klase koja

sadrži podatke i operacije kojima su ti podaci pridruženi.

Koje klase zovemo apstraktnima? 1 12. • One iz koje se ne može napraviti objekt. • Sadrže samo apstraktne metode.

Kako definiramo apstraktne klase? 1 13. • Apstraktna klasa je nepotpuna klasa i iz nje se ne može napraviti objekt, ne mora

sadržavati niti jednu metodu. • Klasa koja sadrži apstraktne metode je apstraktna klasa

Kada koristimo naredbu new? 1 14. • Kada želimo kreirati(inicijalizirati) novi objekt pomoću konstruktora.

Kako radimo s objektima? 1 15. • Izravno - koristeći objekt izravnim vezivanjem • Neizravnim pristupom – pokazivačem (C ili C++) uz posebnu sintaksu

Objasni odnos klasa-tip? 1 16. • Klasa je tip objekta. • Objekt je instanca ili pojava klase.

Objasni odnos objekt-tip objekta? 1 17. • Općenito uzevši, Tip dakle govori kakvu vrstu ponašanja možemo očekivati od

objekta. • Tip specificira što objekt može raditi ili što se može s objektom raditi. Tipovi su

poput “ugovora” koji specificiraju koju vrstu odnosa možemo imati s objektom. • Potpuna definicija objekta tj. kakve je strukture objekt, što objekt može raditi ili

što možemo raditi s objektom definirano je u potpunosti određenjem njegovog tipa.

Što je to referenca? 1 18. • Referenca je relacija između riječi ili izraza i objekta ili ideje na koju ukazuje. • Programski – Referenca na objekt je pokazivač na objekt u memoriji i sadržana je

u obliku varijable.

Što je to nereferentni Java tip? 1 19. • Tipovi podataka koji nemaju referncu,tj. prosti tipovi podataka.

Što se prepoznaje po tipu objekta? 1 20. • Tip specificira što objekt može raditi ili što se može s objektom raditi.

Nabroji Javine proste tipove? 1 21. • byte,short,long,integer,character,float,double,boolean,void

Što je rezultat naredbe String s; 1 22. • referenca (pokazivač) s tipa string

Što je to literal? Navedi primjer. 1 23. • • int x=5; • char j='z'; • Boolean g=True; • String c=“literal“;

Page 8: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Objektno orijentirane tehnologije I 6/28/2008

I. Kolokvij

8

Što su nizovi u Javi? 1 24. • Niz objekata je u Javi zapravo niz referenci i svaka se inicijalizira na određenu

vrijednost. • Nizovi su praktički blokovi memorije i pristupanje tim blokovima je rizično ako nije

inicijalizacija definirana ili ako se pristupi izvan memorijskog bloka

Što je registar? 1 25. • Privremena jedinica memorije za brzi izravni pristup i pohranu male mase

podataka. Većina računala posjeduje set internih registara kojima se može pristupiti brže nego glavnoj memoriji sustava. Registre – unutar procesora – dodjeljuje program prevoditelj – nemate izravne kontrole nad dodjelom.

Što je stack? 1 26. • Blok memorije u kojem se privremeno spremaju varijable(objekti). To je tzv. LIFO

(Last In First Out) buffer i nema random adresaciju. Varijablama se pristupa preko pokazivača – stack pointer-a. Pokazivač stack-a se pomiče gore ili dolje pokazujući slobodni dio memorije. Najčešće su samo reference na stack-u.

Što je to dinamička memorija? 1 27. • Dinamička memorija –vrsta RAM (Random Access Memory) memorije. Podaci u

ovoj vrsti memorije su često osvježavani ili mijenjani. Ovdje su svi objekti dok su “živi”.

• Pr: Kad god treba napraviti objekt napiše se kôd koristeći new i skladište će se napraviti u dinamičkoj memoriji

Čemu služi statično skladište? 1 28 • Statično skladište - varijable pohranjene u rezerviranom području RAM umjesto

na stack-u. Područje nije dostupno drugim varijablama. Nalazi se na određenoj adresi/lokaciji – podaci su dostupni cijelo vrijeme za izvršavanja programa static (rw).

Što je to scope? 1 29 • Scope – područje važenja tipa

Objasni pojam oblast važenja objekta? 1 30 • Kad se objekt napravi koristeći operator new on postoji i nakon kraja oblasti

važenja za razliku od važenja tipova. • Referenca s će nestati na kraju područja ali će objekt String ostati u memoriji.

Nema međutim načina da pristupite objektu izvan područja važenja reference. • Objekti napravljeni pomoću new zadržavaju se dok su nam potrebni, a uklonit će

ga sakupljač smeća (gc) koji uklanja one na koje ne ukazuje više niti jedna referenca.

Od čega se sastoji klasa (sintaktički)? 1 31 • Sintaksa: deklaracija klase {

tijelo klase }

Kako dodjeljujemo vrijednost podatcima članovima? 1 32 • pomoću konstruktora.metoda,direktnim pristupom

Što je to metoda? 1 33 • Metoda - određenje porukama koje objekt može primiti. • Podaci vezani uz klasu ili objekt su spremljeni u varijablama, a ponašanje vezano

uz klase ili objekte se opisuje pomoću metoda. • Metode su slične funkcijama ili procedurama u proceduralnim jezicima.

Page 9: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

Objektno orijentirane tehnologije I 6/28/2008

I. Kolokvij

9

Što je to invokacija metode? 1 34 • Poziv metode se sastoji od imena metode kojeg slijedi lista parametara koji se

prosljeđuju metodi. • Ime metode može biti jednostavno ili označavajuće. • Jednostavno ime poziva definira se u klasi kao i poziv. • Označavajuće ime ukazuje na objekt ili klasu koja definira metodu

Opiši metodu sintaktički (izgled u kodu)? 1 35 • public String getIme(String ime){ • return ime; }// vraća varijablu ime tipa string • public void ispis(){ • System.out.println(„Ime je: “+getIme); } // metoda u tijelu poziva metodu

getIme i ispisuje ga

Kako se vrši garantirana inicijalizacija? 1 36 • Garantirani način inicijalizacije objekta se osigurava konstruktor metodom. • Ako klasa ima KONSTRUKTOR Java ga automatski poziva pri stvaranju objekta

prije nego što korisnik uopće pristupi objektu. • Ime konstruktora je isto kao i ime klase pa će pri inicijalizaciji automatski biti

pozvana ta metoda.

Što je to podrazumijevana inicijalizacija? 1 37 • Ako imamo npr. int x; onda će x imati proizvoljnu vrijednost a ne 0 • Long - 0L • Float - 0.0f • Double - 0.0d • Boolena - false

Pravila za pisanje metoda? 1 38 • Metoda se sastoji od deklaracije i tijela. • Deklaracija metode definira sve atribute metode kao što su pristup, povratni tip,

ime, argumente. • Tijelo metode je mjesto gdje se dešavaju sve aktivnosti. Sastoji se od Java koda

kojim se implementira – primjenjuje metoda • Metode mogu primati i ne primati argumente. • Metode mogu ne vraćati vrijednost – onda su tipa void. • Metode mogu vraćati vrijednost npr:

o public int vrati(int z){ o return z; }

• Ako vraćaju vrijednost moraju imati naredbu return koja vraća vrijednost koju smo definirali.

Kako pišemo komentare u Java kodu? 1 39 • /*komentar za više redova*/ • // ikomentar za samo 1 red • Dokumentacijski komentari - javadoc • /** komentar klase */ • public class docTest { }

Kako prepoznajemo u Javi subrutine? 1 40 • Subrutina koja je član klase se najčešće u Javi zove statička metoda.

Page 10: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

10

1.1. Što je to objekt? Objekt je programski skup varijabli i pripadajućih metoda. Stanje objekta je definirano i sadržano u varijablama, a ponašanje objekta se implementira njegovim metodama. Objekti međusobno izmjenjuju poruke i na taj način komuniciraju. Objekt zauzima memoriju i primajući poruke izvodi određene metode koje mjenjaju stanja objekat ili pokreću neku aktivnost. Kad objekt završi posao za koji je kreiran briše se i oslobađa resurs koji je zauzeo.

1.2. Što je to deklaracija klase! U deklaraciji klase deklarira se ime klase, dostupnost drugim klasama, eventualno izvornu klasu i to jeli klasa završna ili nije. Imena klasa trebaju početi velikim slovom. Minimalna deklaracija sadrži samo ključnu riječ class nakon koje slijedi ime klase. Deklaracija može sadržavati naziv izvorne klase od kojke se naslijeđuju varijable i metode, popis sučelja koja korisiti te deklaraciju tipa klase po osnovi dostupnosti, nivou apstrakcije i stupnju završenosti. Klasa kao izvorni model ili prototip koristi se kod kreiranja objekata. Klasa se sastoji od: delkaracije klase i tijela klase. Sintaksa: deklaracija klase { tijelo klase }

1.3. Kako se pokreće Java program iz komandne linije? Nakon što smo napisali program u nekom od tekstualnih editora pokrećemo prevoditelja na način: Javac ProbaTest.java Nakon što prevođenje završi bez greške pokreće se program (u međuvremenu je prevoditelj formirao klasu). Sada pokrećemo interpretera na način: Java ProbaTest <lista_argumenata>

2.1. Čime je objekt opisan? Objekt je opisan varijablama i metodama. Stanje objekta je definirano i sadržano u varijablama, a ponašanje objekta se implementira njegovim metodama.

2.2. Kako se deklarira (izvorna i izvedena) klasa! Svaka klasa ima svoju izvornu klasu. Ako se izričito ne navede onda se smatra da je to java.lang.Object. Kad navodimo izvornu klasu tada sintaksa izgeda: class izvedena_klasa extends izvorna_klasa {..........} Izvedena klasa naslijeđuje varijable i metode nadklase. Prilikom deklaracije klase moguće je navesti sučelja koja će se primjeniti na deklariranu klasu. Sučelje deklarira skup metoda i konstanti bez stvarne implementacije u metodi. Kad klasa tvrdi da primjenjuje neko sučelje tada mora sadržavati implementaciju metoda deklariranih u navedenom sučelju. Sintaksa: class izvedena_klasa extends izvorna_klasa implements primjenjeno_sucelje {..........} Moguća je implementacija više sučelja koja se navode kao lista imena odvojenih zarezom.

2.3. Koje sistemske resurse koristi Java program? Pokretanjem Java okruženja podrazumijevano se uključuje osim vlastitih klasa i paket java.lang. Programi koriste sistemske resurse kroz programsko sučelje realizirano u klasi System koja je u java.lang paketu. Kod izvođenja programa često su potrebni određeni sistemski resursi à parametri, ulazni ili izlazni tokovi. Problem je vezanost programa za platformu odnosno sustav i potreba prilagodbe pri tranziciji. Taj problem je riješen u klasi System koja se nalazi u java.lang paketu. Java program à klasa System à java izvedbena Tri standardna I/O toka su definirana unutar System klase: System.in – standardni ulaz, System.out – standardni izlaz i System.err – izlaz za ispis grešaka.

3.1. Što je to referenca objekta? U JAVI je sve objekt, no identifikator koji koristimo je referenca na objekt – pokazivač/veza s objektom. Referenca može postojati i bez objekta tj. ako postoji referenca to ne znači da postoji i objekt. Ako želimo sačuvati riječ ili rečenicu napravit ćemo referencu na objekt klase String. String s - ovo je referenca-pokazivač, ali ne i objekt.

Page 11: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

11

Objekti međusobno izmjenjuju poruke i na taj način komuniciraju. Objekt zauzima memoriju i primajući poruke izvodi određene metode koje mjenjaju stanja objekat ili pokreću neku aktivnost. Kad objekt završi posao za koji je kreiran briše se i oslobađa resurs koji je zauzeo.

3.2. Što je to tijelo klase? Tijelo klase je niz naredbi koje se navode u paru {} koje slijede nakon deklaracije klase. Tijelo klase se satoji od: deklaracije varijabli i deklaracije metoda. Konvencija je da se najprije navode varijable pa onda metode. Sintaksa: Class Klasa { int x,y,z; metoda (z) { return (x*y); } }

3.3. Koji su standardni IO tijekovi? Tri standardna I/O toka su definirana unutar System klase : 1. System.in – standardni ulaz

Koristi se za unos podataka u program i najčešće služi za čitanje podataka s tipkovnice. Definiran je u klasi System na slijedeći način: public static InputStream in; Za čitanje se koriste različiti oblici metode read() koji su definirani u klasi InputStream.

2. System.out – standardni izlaz Koristi se za ispis programa i obično služi za prikazivanje informacija na ekranu. Definiran je u klasi System na slijedeći način: public static PrintStream out; Za ispis se koriste različiti oblici metoda i print(), println() i write() koje su definirane u klasi PrintStream Metoda write() se koristi rijeđe i služi za ispis podataka koji nisu ASCII. Metode i print(), println() mogu kao argument sadržavati bilo koji tip jer je za svaki tip u klasi System definirana posebna metoda.

3. System.err – izlaz za ispis grešaka Koristi se za ispis grešaka pri prijevodu programa na ekranu. Definiran je u klasi System na slijedeći način public static PrintStream err; Za ispis se koriste različiti oblici metoda i print(), println() i write() koje su definirane u klasi izvedenoj iz klase PrintStream. Metoda write() se koristi rijeđe i služi za ispis podataka koji nisu ASCII. Razlika je jedino u tome što se koristi drugi tok.

4.1. Od čega se sastoji referenca objekta? Referenca objekta se sastoji od naziva objekta, naziva metode i parametara za izvođenje metode.

4.2. Kako se deklariraju konstante! Za deklariranje konstanti koristi se ključna riječ final. Konvencija je da se imena konstanti pišu velikim slovima. Vrijednost se konstante ne može mijenjati. Pr.: class Test { ... final int OPTIMUM = 15; }

4.3. System.in Koristi se za unos podataka u program i najčešće služi za čitanje podataka s tipkovnice. Definiran je u klasi System na slijedeći način: public static InputStream in; Za čitanje se koriste različiti oblici metode read() koji su definirani u klasi InputStream.

5.1. Što je klasa? Klasa je skup indentičnih objekata po svemu osim po stanju tijekom izvršavanja programa. Objekt pripada klasi koja definira njegova svojstva i ponašanje. Klasa je podatkovno opisani skup objekata koji se jednako ponašaju (funkcionalni aspekt klase) Uspostavljanjem klase generiraju se objekti te klase. Klasa je dakle izvorni model ili prototip za kreiranje objekata. Klasa se satoji iz dva dijela: Deklaracija_klase {

Tijelo_klase }

Klasa je izvorni model koji sadrži varijable i metode zajedničke za sve objekte određene vrste.

5.2. Kako se deklariraju varijable članovi! Deklaracija varijable sadrži tip varijable i naziv varijable. Npr.: int x;. Tipom se određuje koje vrijednosti mogu biti pridružene toj varijabli te operacije koje se mogu izvoditi s tim varijablama.Varijabla može sadržavati i dodatne opise.

Page 12: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

12

access - definira koje sve klase imaju pristup toj varijabli static - varijabla se definira kao izvorna za razliku od naslijeđenih varijabli final - označava da je varijabla konstanta transient - definira da varijabla njie sastavni dio stalnog stanja objekata - serijalizacija objekata volatile - vrijednost se varijable povremeno mijenja.

5.3. System.out Koristi se za ispis programa i obično služi za prikazivanje informacija na ekranu. Definiran je u klasi System na slijedeći način: public static PrintStream out; Za ispis se koriste različiti oblici metoda i print(), println() i write() koje su definirane u klasi PrintStream. Metoda write() se koristi rijeđe i služi za ispis podataka koji nisu ASCII. Metode i print(), println() mogu kao argument sadržavati bilo koji tip jer je za svaki tip u klasi System definirana posebna metoda.

6.1. Pojasni naslijeđivanje? Podklasa ili izvedena klasa naslijeđuje sve varijable i metode klase iz koje je izvedena. Ako je klasa iz koje izvodimo novu klasu također izvedena naslijeđivanje je potpuno (tranzitivnost). Naslijeđivanje je uzimanje oblika postojeće klase i dodavanje novog kôda. Naslijeđivanjem je moguće naslijediti sve članove koji nisu proglašeni privatnima. Podklasa ili izvedena klasa naslijeđuje sve varijable i metode klase iz koje je izvedena. Izvođenje podklase iz izvorne nad(klase).

6.2. Što su to transient varijable članovi! Varijabla ne smije biti serijalizirana. Ako se drukčije ne deklarira sve su varijable stalni dio objekta. Sve stalne varijable su spremljnen skupa s objektom. Rezerviranom riječi transient definiramo Java okruženju da ta varijabla nije dio stalnog stanja objekta. Pr.: class Test { ... transient int temp; }

6.3. System.err Koristi se za ispis grešaka pri prijevodu programa na ekranu. Definiran je u klasi System na slijedeći način: public static PrintStream err; Za ispis se koriste različiti oblici metoda i print(), println() i write() koje su definirane u klasi izvedenoj iz klase PrintStream Metoda write() se koristi rijeđe i služi za ispis podataka koji nisu ASCII. Razlika je jedino u tome što se koristi drugi tok.

7.1. Sigurnost u rukovanju memorijom? Zauzimanje memorije kontrolira Java okruženje. Pri prevođenju nije moguće zauzimanje memorije. Java koristi simboličke adrese koje se tek pri izvođenju pretvaraju u stvarne memorijske adrese.

7.2. Što su to volatile varijable članovi! Upozorava kompajler da se varijabla mijenja asinhrono. Ako klasa sadrži varijablu čija se vrijednost povremeno mijenja zbog paralelnog izvođenja više niti programa tada se to rezerviranom riječi volatile definira Java okruženju. Pr.: class Test { ... volatile int thread_x; }

7.3. Navedi sistemske parametre? Klasa System sadrži skup parametara od kojih se svaki sastoji od naziva i vrijednosti. Kod prvog pokretanja Jave svi se ti parametri inicijaliziraju definirajući izvedbenu okolinu. To su npr. “file.separator” à / “java.class.path” à lokacija Java klasa itd. Za čitanje sistemskih parametara koristimo dvije metode iz klase System i to: getProperty() za jedan parametar i getProperties() za sve parametre. Za promjenu parametara koristimo setProperties() metodu, koja zahtjeva objekt tipa Properties. Klasa Properties je definirana unutar java.util paketa Da bi se izvela izmjena parametara potrebno je zasebno pripremiti skup novih parametara od kojih se svaki sastoji od naziva i vrijednosti i tek tada primjeniti metodu setProperties().

Page 13: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

13

Napomena: izmjena parametara aktivna je samo unutra aplikacije u kojoj je napravljena jer Javina okolina prilikom svakog pokretanja postavlja izvorne parametre.

8.1. Sigurnost u provjeri bajt kodova? Prevodilac prilikom prevođenja brine o sigurnosnim pravilima. Internet preglednici kod učitavanja ne mogu znati je li kod ispravan pa se svaki kod provjerava.

8.2. Pojasni implementaciju metode! Implementacija se metode sastoji od dva dijela: deklaracije metode i tijela metode. Pr.: deklaracija_metode {

tijelo_metode }

8.3. Što je to sakupljač smeća? U klasi System definiran kao metoda gc() čijim pozivom počinje čišćenje smeća (čišćenje objekata koji više ne trebaju). Ako čistimo sami moramo pisati kod koji će čistiti. Java čisti izvedbenu okolini brišući objekte koji se više ne koriste. Čistač radi na način da periodički pregledava koji objekti nemaju refrence i jednostavno ih pokupi i oslobodi memoriju. Ako ipak želimo posebno brisati koristimo odgovarajuće metode unutar klase System. Objekt ima priliku sam osloboditi memoriju i spasiti se od brisanja pozivom metode finalize() ili runfinalization(). Npr. System.runfinalization(); Skupljanje smeća pokrećemo s System.gc();

9.1. Sigurnost u provjeri bajt kodova - prevođenje? Java izvorni kod programa (SRC) à javac (CLASS) prevoditelj à java bajt kodovi à event. prijenos po mreži

9.2. Pojasni deklaraciju metode! Deklaracija metode mara sadržavati ime metode i tip podatka koji metoda vraća. Osim osnovnih podataka može sadržavati argumente i opis dostupnosti. Vraćanje vrijednosti iz metode osigurava se rezerviranom riječi return. Pr.: double aa (int x) {

double bb = x*x; return bb;

} Return mora vratiti tip koji je deklariran u imenu metode. Imena metoda korištena u deklaraciji moraju poštivati ista pravila koja se odnose na imena varijable. 1. Podržano je preopterećivanje metode tj. više metoda može imati isto ime. Metode se onda razlikuju po listi argumenata koje koriste. 2. Ako metoda ima isto ime kao i klasa onda je to konstruktor. Konstruktor služi za inicijalizaciju novog objekta i može se naći samo uz kjučnu riječ new. 3. Ako metoda ima isti naziv, vraća podatke istog tipa i koristi argumente istog tipa kao i metoda iz neke izvorne ili nadređene klase tada je ta metoda potpuno prekrila nadređenu metodu.

9.3. Što je to finalizacija objekta? Prije nego bude očišćen sakupljačem smeća objekt može osloboditi resurse taako da pozove svoju finalize() metodu. Pozivom metode runFinalization() iz klase System pokreću se finalize() metode svih objekata koji čekaju da budu počišćeni.

10.1. Sigurnost u provjeri bajt kodova - izvođenje? Učitavanje bajt koda à provjera bajt koda à interpreter+generator koda à izvođenje à Strojna platforma

10.2. Ključne riječi u deklaraciji metode! Static (Mogućnost pozivanja metode bez pravljenja objekta), Final (Zaključavamo metodu tako da je klasa nasljednica ne može promijeniti. Drugi je razlog zaključavanja efikasnost jer će prevoditelj sve pozive toj metodi ugraditi direktno u programski kod.), abstract, native, syncronized, returnType, methodName, paramlist, throws exceptionList, accessSpecifier.

10.3. Što je to izuzetak i vrste izuzetaka? Izuzetak je događaj koji remeti normalno odvijanje programa pa na taj način predstavlja određeni tip greške odnosno neočekivani ishod programa. Java koristi pojam “izbacivanje izuzetaka” pri čemu neko iz izvedbene okoline mora

Page 14: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

14

prihvatiti izuzetak i obraditi ga. Ako se to ne desi program završava. Programski kod za upravljanje izuzetcima je odvojen u poseban dio. Definiran je kao objekt klase Exception i sadrži informacije o izuzetku i stanju programa u trenutku kad je izuzetak nastupio. Stvaranje izuzetka se u Javi naziva izbacivanje izuzetka. Izuzetci mogu biti IO izuzetci, izuzetci izvođenja i vlastiti izuzetci.

11.1. Proces provjere bajt kodova? Niz testova za provjeru da učitani kod slijedi pravila: npr. Koriste li se pokazivači, pristupa li se objektima na nedozvoljen način, narušavaju li se pravila pristupa memoriji ili disku.

11.2. Prenošenje podataka u metodu! Podaci se u metodu prenose korištenjem argumenata metode. Argumenti mogu biti svi Java tipovi podataka. Argument metode ne može biti metoda ali može biti argument tipa objekt, a zatim se nakon prenošenja može koristiti njegove metode. Argumenti se navode iza deklaracije metode. Imena argumenata mogu biti ista kao i imena varijabli klase. Ako je tako onda kažemo da argumenti metode sakrivaju varijable klase. takav se način primjenjuje najčešće u konstruktorskim metodama. Pr.: class AAA { int x; float y; public AAA (int x, float y) { this.x = x; this.y = y; // pristup unutar metode } Rezeviranu riječ this koristimo za pristup skrivenim varijablama klase. U metodama se argumenti prenose po vrijednosti tj. prenosi se kopija vrijednosti izvorne varijable i pridružuje se varijabli deklariranoj u pozivu metode čime se spriječava metodu da promijeni izvornu vrijednost argumenta. Ako metoda treba mjenjati vrijednost argumenta argument mora biti referentnog tipa tj. polje ili objekt. I argumenti ovog tipa se prenose po vrijednosti ali njihova vrijednost predstavlja referencu. Time se zapravo prenosi adresa podatka u memoriji. Ako lokalna metoda korisiti istu memorijsku adresu ona može promijeniti izvornu vrijednost jer se koristi izvornom memorijskom lokacijom.

11.3. Obrada izuzetaka? Ako izuzetak remeti normalno odvijanje programa onda se na neki način treba formalizirati odnosno treba odrediti način kako da se nastavi program. Programski kod za upravljanje izuzetcima se naziva blok za obradu izuzetaka (exception handler). Vanredno stanje (exceptional condition) je trenutak prekida programa i tad se kontrola prenosi u više okruženje da se tamo riješi. Šaljući informacije o grešci u više okruženje zove se bacanje izuzetaka. Aktivnost: kad nastupi izuzetak u dinamičkoj se memoriji pravo objekt operatorom new a putanja izvršavanja se zaustavlja i referenca na objekt izuzetka se izbacuje iz trenutnog okruženja tražeći mjesto gdje će se nastaviti izvršavanje programa. To mjesto je blok za obradu izuzetaka. Naredba try – prvi je korak sve ono što može prouzročiti grešku smjestiti u blok naredbe try ono što izazove izuzetak bit će prihvaćeno u jedan od blokova catch tako da naredbu try mora slijediti barem jedan blok catch ili finally. Naredba catch – zahtjeva jedan argument koji izgleda kao deklaracija u pozivu metode. Taj argument mora biti tipa Throwable ili izveden iz te klase. Da bi se ispisala poruka mora se koristiti metoda getMessage() definirana unutar klase Throwable. Ukoliko je moguće pojavljivanje više izuzetaka mora se pripremiti više blokova catch. Naredba finally – prenos kontrole na drugu metodu bez obzira je li se dogodio izuzetak. Pr.: catch (Exception e) { .........}

12.1. Sigurnosni mehanizmi u mrežnom paketu? Javin mrežni paket osigurava sučelje za razne mrežne protokole kao što su FTP, HTTP, Telnet i drugi. Korištenjem funkcija u ovom paketu može se: zabraniti sav pristup s mreže, dozvoliti pristup svima s mreže, dozvoliti pristup samo računalima s kojih se učitava kod, dozvoliti pristup sam računalima izvan vlastite grupe.

12.2. Opiši tijelo metode! U tijelu metode se deklariraju lokalne varijable i programski kod koji metoda izvodi. Lokalne varijable imaju vrijednost dostupnu samo unutar metode i po završetku metode one se brišu. Metoda može korisiti i varijable članove objekta unutar kojeg se koristi metoda kao i varijable nadređene klase prekrivene varijablama objekata čija se metoda koristi.

Page 15: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

15

12.3. Klasa Throwable? Javina klasa Throwable opisuje sve što se može generirati kao izuzetak. Postoje dvije opće vrste objekata tipa Throwable: 1. Error - sistemske greške i greške tijekom prevođenja koje se ne trebaju hvatati (osim u izuzetnim prilikama), 2. Exception - prost tip izuzetka koji može nastati u bilo kojoj metodi klase standardne Javine biblioteke. RuntimeException à Throwable à Error ili Exception à RuntimeException. Svi izuzetci posredno su izvedni iz klase Throwable. Korisnički izuzetci nastaju naslijeđivanjem klase Throwable ili jedne od njenih podklasa.

13.1. Komentari u Java programu? // jedna linija, /* */ više linija, /** */ Java dokumentacija

13.2. Rezervirana riječ this? Koristimo je kad želimo naglasiti da pristupamo varijabli objekta, a ne argumentu metode. Rezeviranu riječ this koristimo za pristup skrivenim varijablama klase. U metodama se argumenti prenose po vrijednosti tj. prenosi se kopija vrijednosti izvorne varijable i pridružuje se varijabli deklariranoj u pozivu metode čime se spriječava metodu da promijeni izvornu vrijednost argumenta.

13.3. Što su to niti? Većina je programa sekvencijalnog tipa tj. postoji određeni redoslijed u izvršavanju te se u jednom trenutku može izvoditi samo jedna naredba. Nit je slična sekvencijalnom programu, ali nije program i može se izvoditi samo unutar programa. Kako nit predstavlja sekvencijalni programski tijek ona zahtjeva i vlastite resurse. Svaka se nit pokreće korištenjem metode start(). Čekanje niti se obavlja korištenjem metode sleep(). Prednost niti je u mogućnosti istovremenog odvijana više nit. Nit zahtjeva resurse za sebe pri izvođenju. Svaka nit ima tijelo i može posjedovati određena stanja. Svakoj se niti može pridružiti prioritet pri korištenju resursa. Niti su u Javi predstavljene klasom Thread definiranomu java.lang.

14.1. Varijable u Java programu? Prvi znak (slovo, _ ili $) , može sadržavati brojeve i sva slova A-Z,a-z, sve Unicode znakove iznad heksadecimalnog 00C0 osim nekoliko specijalnih znakova, velika i mala slova se razlikuju, rezervirane riječi se ne mogu koristiti, a duljina je maksimalno 32 znaka.

14.2. Rezervirana riječ super? Koristimo je kad želimo naglasiti da pristupamo varijabli nadređene ili izvorne klase. Također ako je metoda prekrila metodu iz nadređenog objekta toj se metodi pristupa korištenjem rezervirane riječi super.

14.3. Svojstva niti? Svaka nit ima svoje tijelo i može posjedovati određena stanja. Nitima se mogu pridružiti prioriteti. Niti su predstavljene klasom Thread koja je definirana u java.lang paketu. Tijelo niti - sve aktivnosti unutar niti definiraju se u tijelu koje zapravo predstavlja metoda run(). Nakon što se nit kreira i inicijalizira kontrola se predaje run() metodi u kojoj mora biti funkcija namjenjena niti. Run() se može prilagoditi potrebi na način da se iz Thread klase izvede klasa i promjeni metoda ili primjeniti sučelje Runnable definirano u java.lang paketu. Ako klasa naslijeđuje neku drugu klasu onda se koristi sučelje. Aktivnosti koje se izvode unutar niti definiraju se unutar tijela niti koje predstavlja run() definirana u niti. Nakon što je nit kreirana i inicijalizirana kontrola se predaje run() metodi. Prilagođavanje run() metode vlastitim potrebama moguće je izvesti: 1. Iz klase Thread izvodi se vlastita klasa i primjenjuje vlastita run() metoda. 2. Definira se klasa koja primjenjuje sučelje Runable iz java.lang paketa i koja ima deklariranu run() metodu. Nit može biti u New Thread (start() i stop()) , Runnable (start()) , Not Runnable (sleep(), suspend()), Dead (stop()) stanju. Prioritet niti se određuje u programu pri kreiranju nit kao objekta. Deamon nit ili uslužna nit - beskonačna petlja izvršavanja koja prestaje kad prestane potreba za posluživanjem drugih niti. Niti je moguće grupirati radu istovremene uporabe. Mehanizam je sadržan u klasi ThreadGroup. Ako se izričito ne navede pripadnost nekoj grupi nit pripada trenutačnoj grupi (current thread group). Također se nit može pridružiti vlastitoj grupi.

15.1. Rezervirane riječi u Javi? abstract, boolean, break, byte, case, catch, char, class, continue, default, do, double, else, extends, false, final, finally, float, for, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public,

Page 16: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

16

return, short, static, super, switch, syncronized, this, threadsafe, throw, transient, true, try,void, volatile, while (const i goto)

15.2. Kako se kontrolira pristup članovima klase? Zaštita podataka i metoda omogućena je ogranićavanjem pristupa određenim podacima za određene skupine klasa. U tu se svrhu koriste rezervirane riječi private, protected, public i (bez oznake). Private - definiramo da su varijable i metode dostupne samo unutar klase u kojoj su definirane. Time je ograničen pristup podacima. Protected - omogućen je dostpu samoj klasi, podklasama i svim klasama unutar paketa gdje se nalazi klasa čijim varijablama definiramo dostupnost. Koristi se kod pakiranja klasa po nekom svojstvu. Public - dostup je dozvoljen svima. Koristi se kod klasa kod kojih mjenjanje vrijednosti varijabli neće izazvati nikakve posljedice. (Frendly) - dostup je dozvoljen svim unutar nekog paketa.

15.3. Klasa ThreadGroup? Broj niti koje se mogu grupirati unutar jedne grupe je neograničen. Klasa ThreadGroup sadrži metode za rad s grupama niti. Rukovanje nitima: activeCount(), activeGroupCount(), enumerate() i list() Postavljanje i čitanje svojstava niti: getMaxPriority(),setMaxPriority(), getDeamon(), setDeamon(), getName(), getParent(), parentOf(), toString() Rad s nitima: resume(), stop(), suspend() Opisivanje pristupa: checkAccess().

16.1. Što je to tip podatka? Tip određuje područje vrijednosti varijable ili izraza. Definiranjem tipa određujemo raspon vrijednosti koje se mogu pridružiti toj varijabli dok određivanjem tipa izraza određujemo skup operacija koje su dozvoljene nad tim izrazom.

16.2. Koja je razlika između člana klase i člana objekta? Kad se deklarira varijabla u tijelu klase deklarira se zapravo varijabla objekta. Dakle, kod kreiranja objekta prema modelu klase kreiraju se i kopije varijabli deklariranih u klasi. Pristup varijabli je objekt+tocka+varijabla klase. Varijable klase se razlikuju od varijabli objekta po tome što se definiraju u klasi kao static. U memoriji je tada samo jednom rezerviran prostor za takvu varijablu bez obzira koliko mi objekata kreirali. Svi oni dijele istu kopiju varijable. Isto vrijedi i za metode.

16.3. Višenitni programi? Programi kod kojih se izvodi više niti odjednom. Da bi više niti moglo pristupiti nekim podacima mora se izvesti sinkronizacija niti. Asinkrone nit su niti koje sadrže sve podatke i metode potrebne za svoje izvođenje i nisu ovisne u izvođenju o drugim nitima. Kad više niti pristupa istim podacima onda to nazivamo kritičnim momentom u izvedbi. Kontrola takvog stanja se izvodi procesom sinkronizacije koristeći ključnu riječ synchronized. Metodom notify() se poručuje neaktivnoj niti da se može aktivirati. Metodom wait() se poručuje niti da čeka poruku. Beskonačna petlja (deadlock).

17.1. Cjelobrojni tipovi podataka? byte 8 bita, short 16 bita, int 32 bita, long 64 - jedinstvena prezentacija tipa podatka

17.2. Što je to konstruktor? Metoda kojom se inicijaliziraju novi objekti, a nosi isto ime kao klasa. Kako je konstruktor metoda on trpi preopterećenja tj. može se definirati više konstruktora s različitim brojem i tipom argumenata. Prilikom definiranja klase nije nužno definiranje konstruktora jer ga Java okruženje kreira kao podrazumjevanog. Konstruktor ne vraća vrijednosti i unutra njega se ne može koristit rezervirana riječ return. Ako unutar konstruktora pozivamo konstruktor nadklase koristimo rezerviranu riječ super. Prilikom deklaracije konstruktora vrijede sva pravila dostupnosti i vidljivosti.

17.3. Javini ulazni tijekovi? Ulazni su tijekovi predstavljeni klasom InputStream Izvori ulaznih tijekova mogu biti: niz bajtova, objekt klase String, datoteka, cijev (pipe) – prolaz podataka kao kroz cijev, niz drugih tijekova koji se objedinjavaju u jedan tijek, drugi izvori – veza s Internetom. Svaki od navedenih tipova je povezan s podklasom klase InputStream.

Page 17: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

17

18.1. Realni tipovi podataka? float 32 - bitna prezentacija jednostruke preciznosti, double - 64 bitna prezentacija dvostruke preciznosti

18.2. Koja je namjena metode finalize()? Koristi se za oslobađanje resursa koje objekt zauzima. Kad izričito želimo Java okruženju najaviti da nam neki objekt ne treba potrebno je unutar te klase definirati metodu finalize(). Mora biti deklarirana na slijedeći način: protected void finalize() throws throwable. Metoda je deklarirana u klasi java.lang.Object i mora se u vlastitoj klasi preopteretiti da bi se mogla koristiti. Ako klasa ima nadređenu klasu tada se u pozivu metoda finalize koriste hijerarhijski.

18.3. Javini izlazni tijekovi? Izlazni su tijekovi predstavljeni klasom OutputStream. Obuhvaća klase koje odlućuju gdje će i u što usmjeriti izlazni tijek: niz bajtova, ako se želi na izlazu String tada će se napraviti korištenjem niza bajtova, datoteka, cijev (pipe) – prolaz podataka kao kroz cijev. Svaki od navedenih tipova je povezan s podklasom klase OutputStream. Dekoraterski obrazac – postupno dodavanje odgovornosti na klasu. Pravilno dodavanje je podržano tzv. Java filtarskim klasama.

19.1. Logički tipovi podataka? Tip koji se koristi za deklariranje varijabli te prilikom vraćanja vrijednosti raznih metoda koje vraćaju true ili false. Ne mogu se konvertirati u brojeve.

19.2. Pojasni pojam naslijeđivanja u OOT? Kada iz jedne klase izvodimo podklase tada vršimo naslijeđivanje klase. Sve su klase u Javi izvedene iz jedine klase Object koja se nalazi u java.lang paketu. Naslijeđivanjem se preuzimaju varijable i metode od nadređene kalse koje se onda mogu koristiti kao takve ili se mogu mijenjati. Također se novom deklaracijom mogu prekriti.

19.3. Što su to filtrirani IO tijekovi? Klase FilterInputStream i FilterOutputStream Klase: DataInputStream i DataOutputStrem - Omogućuju zapisivanje podataka u nezavisnom formatu. BufferedInputStream i BufferedOutputStrem - Omogućuju čitanje i pisanje podataka u/iz spremnika. LineNumberInputStream - Vodi računa o broju linija kod ispisa. PushBackInputStream - Implementira ulazni tijek sa spremnikom od jednog bajta. PrintStream - Omogućuje ispis u izlazni tijek.

20.1. Znakovni tip podatka? Znakovni je tip podatka baziran na Unicode znakovnom skupu. Za deklaraciju se koristi ključna riječ char, a tip je reprezentiran kao 16-bitna cjelobrojna varijabla bez predznaka.

20.2. Kako se izvodi podklasa? Podklasa se deklarira unutar deklaracije klase korištenjem ključne riječi extends. Sintaksa je: class Podklasa extends Nadklasa {....} Pravila: Ako je klasa izvedena iz izvedene klase tada tranzitno naslijeđuje zajedničku nadklasu. Podklasa naslijeđuje sve varijable deklarirane kao public i protected kao i varijable bez oznake dostupnosti ako su u istom paketu s nadređenom klasom, kod korištenja istih imena varijable podklase prekrivaju varijable nadklase, ne naslijeđuje varijable deklarirane kao private. Pravila koja vrijede kod naslijeđivanja varijabli vrijede i kod naslijeđivanja metoda!!

20.3. Datodeke sa slučajnim pristupom? Većina je datoteka ranije bila sekvencijalna. Ako je moguć pristup podacima nasumično tada datoteku zovemo datoteka sa slučajnim pristupom - RandomAccessFile.

21.1. Što su konstante? Konstante su podaci nepromjenjive vrijednosti. U javi postoji pet tipova konstanti: cjelobrojne, realne, logičke, znakovne i znakovni nizovi.

Page 18: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

18

21.2. Što je to prekrivanje metoda? Podklasa prekriva metodu nadklase svojom deklaracijom ali je može i sami izmjeniti. Kad ne želimo koristiti naslijeđenu metodu omogućena je implementacija vlastite koja onda prekriva naslijeđenu. Također se može naslijeđena metoda dopuniti novim funkcijama. Ako je metoda u klasi deklarirana kao final ili static nemoguće ju je prekriti u podklasi. Ako je metoda u nadređenoj klasi deklarirana kao abstract u podklasi se mora prekriti ili deklarirati kao abstract.

21.3. Što su to kontejneri? Klase List, Set, Map i Bag Collection – grupa elemenata na koje se često primjenjuje neko pravilo. List čuva redoslijed elemenata, Set ne dozvoljava ponavljanje elemenata u kontejnerskim se bibliotekama sreće i Bag koji nema ograničenja. Map – grupa parova objekata i ključeva – vraća kolekciju parova objekata i ključeva.

22.1. Vrste konstanti? cjelobrojne: oktalne, decimalne i heksadecimalne realne: konstanta sadrži decimalnu točku ili eksponent ili oboje. Može biti jednostruke npr. 2.3, 2.3f, 2.3F, 2.3e11 i dvostruke preciznosti 2.3d, 2.3D, 2.3456De1032, znakovne: sastoje se od jednog znaka ili grupe znakova koji predstavljaju znak. Tipa su char i bazirane su na Unicode znakovnom skupu, a reprezentirane su kao cjelobrojne 16-bitne varijable logičke: nisu brojevi ne mogu se pretvoriti u broj znakovni niz: sastoji se od nekoliko znakova sadržanih unutar dvostrukih navodnika. Definirana je kao objekt tipa String

22.2. Što su to apstraktne klase? Klasa iz koje se nikad neće kreirati objekt se zove apstraktna klasa. Ona služi za izvođenje drugih klasa. Apstraktna klasa može sadržavati apstraktne metode. Apstraktne metode su metode bez implementacije. Apstraktne se metode koriste za definiciju sučelja unutar kojeg postoje sve metode nužne za implementaciju sučelja. Implementacija se apstraktnih metoda ostvaruje u podklasama.

22.3. Nizovi - čuvanje objekata? Klasa Array i klasa ArrayList. Metode get() i add() Nizovi su efikasniji su od ostalih kontejnera i razlikuju se po tipu. U nizu se može nasumce pristupiti objektu ili grupi objekata po njegovoj referenci. Prema tipu objekta niz je linearna sekvenca (bez obzira na dimenzionalnost) i pristup određenoj poziciji je vrlo brz i efikasan. Nedostatak: statičan karakter objekta tj. kad napravimo niz njegova je veličina definitivno određena za njegova života. Da bi se napravio niz varijabilne veličine koristimo klasu ArrayList koja je znatno manje efikasna.

23.1. Što su operatori? S objektima se radi pomoću operatora. Izbor se vrši pomoću rezerviranih riječi za kontrolu izvršavanja. Operatori + , - , * , / i =. Operatori daju vrijednost objektu, ali se nijma mogu i mjenjati vrijednost objekata. Svi operatori rade samo s prostim tipovima. Izuzetak su = , == i != koji rade sa svim objektima. To su iskazi koji izvode neku funkciju na jednoj ili više varijabli. Ako ih dijelimo po broju varijabli postoje: unarni, binarni i trinarni operatori. Unarni operatori mogu imati prefiksnu i posfiksnu notifikaciju. Binarni operatori imaju tzv. infiksni notifikaciju tj. operator se pojavljuje između varijabli. Trinarni ili uvjetni operator predstavlja skretnicu na osnvi ispunjenja zadanog uvjeta

23.2. Što su to finalne klase? Klase iz kojih se ne mogu izvesti podklase su finalne klase. Osnovni razlog za postojanje ovih klasa je sigurnost. Kod provjere prevođenja finalnih klasa provjeravaju se i bajt kodovi. Drugi razlog je dizajnerske prirode tj. kad smatrate da je klasa zaokružena u punom smislu proglasite ju finalnom. Finalne metode su pak metode koje nije moguće kod naslijeđivanja prekriti. Najčešća upotreba je kod metoda koje su kritične i čije mijenjanje nije uputno. Metoda se proglašava finalnog oznakom rezrviranom riječi final.

23.3. Što su to iteratori? To je objekt koji se pomiče kroz niz objekata i čita objekte pri čemu programeru nije poznata struktura niza. Javin Iterator se iz kontejnera proslijeđuje metodom iterator() koji vraća prvi element niza poslije prvog poziva njegove metode next(). Može se dobiti slijedeći objekt u nizu pomoću metode next(). Ustanoviti ima li još objekata pomoću metode hasNext(). Ukloniti posljednji vraćeni element pomoću metode remove().

Page 19: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

19

24.1. Vrste operatora? Aritmetički operatori: +, -, *, /, % te unarni +, - te prefiksni ++, -- i postfiksni ++, -- .Operacije relacije i uvjeta: relacije >, >=, <, <=, ==, != i uvjeta &&, ||, ! Bitovni operatori: >>, <<, >>> Logički operatori: &, |, ^, ~ Operatori pridruživanja: =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=

24.2. Klasa Object? Sve klase u Javi su nastale izvođenjem iz jedne jedine klase Object koja je definirana u java.lang paketu. Unutar ove klase definirana su osnovna stanja i ponašanja koja svaki objekt mora sadržavati da bi se mogao uspoređivati s drugim objektom, da bi mogao pretvoriti u znakovni niz i da bi mogao vratiti naziv klase iz koje je nastao. Neke od metoda klase Object: equals() - ovu metodu koristimo za uspoređivanje jednakosti dvaju objekata. Vraća vrijednost true ako su objekti jednaki. Kod izvođenja podklasa nužno je ovu metodu prekriti vlastitom. getClass() - je finalna i ne može se prekriti. Vraća klasu objekta unutar kojeg se poziva. toString() - vraća reprezentaciju objekta kao zankovni niz. Koristi se za ispisivanje objekta. finalize (), notify(), notifyAll() i wait().

24.3. Što je to applet? Applet je Java program koji se može izvoditi unutar Java kompatibilnih Internet preglednika. Kao i kod samostalnih Java programa programski kod Apleta se sprema u datoteku s nastavkom *.java Svaki je aplet izveden iz klase Applet koja se nalazi u paketu java.applet i hijerarhija je: java.lang.Object à java.awt.Componentà java.awt.Containeràjava.awt.Panel àjava.awt.Applet

25.1. Prioriteti operatora? Postfiksni operatori: [] element polja , poziv metode , argument i metode (), inkrement izraz++, dekremnet izraz-- Unarni operatori: ++izraz, --izraz, +izraz, -izraz, ~ , ! Operatori kreiranja i kastiranja: new i (type) Multiplikativni operatori: +, /, % Operatori zbrajanja:+, - Operatori pomaka: <<, >>, >>> Operatori relacije: <, <=, >,>=,>>> Bitovni operatori:&, |, ^ Logički operatori: &&, || Trinarni operator: ?: (a?x:y) Operatori pridruživanja: =, *=, /=, %=, +=, -=, ^=, &=, |=, <<=, >>=, >>>=

25.2. Što je to polimorfizam? Mogućnost da se razdvoji sučelje od realizacije odnosno da se razdvoji što i kako. Također pruža mogućnost aplikaciji da raste i da se proširenje predvidi u samom početku definicije klasa i objekata. Polimorfizam razdvaja klase po tipovima. Polimorfni poziv dozvoljava da određeni tip izrazi svoju različitost u odnosu na neki drugi tip sve dok su izvedeni iz istog prostog tipa.

25.3. Objasni životni ciklus appleta? Životni ciklus apleta je: Inicijalizacija à pokretanje à zaustavljanje à oslobađanje resursa (init(), start(), stop(), destroy())

26.1. Objasni naredbu if - else? Služi za selektivno izvođenje određene naredbe ili niza naredbi u zavisnosti od ispunjenja određenog uvjeta. Npr: if (izraz) { blok1 } else { blok2 } tj. ako je vrijednost izraza true ispunjava se blok1 a ako je false ispunjava se blok2. Skraćeni oblik sadrži samo if (izraz) { blok 1 }

26.2. Što je to sučelje? Skup konstanti i deklaracija metoda bez implementacije. Šučelje se koristi da bi se definirao određeni način ponašanja koji se kasnije može primjeniti u bilo kojoj klasi. Također sučelje korstimo za definiranje metoda koje se mogu implementirati u više klasa. Zatim ako želimo sumirati zajednička svojstva više klasa koje nisu u vezi koristimo sučelje. Sučelje ima status referentnog tipa pa se može koristiti na mjestima kao i tipovi podataka.

26.3. Pojasni dodavanje Appleta na HTML stranicu? Napisani i prevedeni programski kod apleta učitavamo ili preko Applet Viewera ili Internet preglednika.

Page 20: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

20

Ključne riječi: <APPLET CODE="mypackage2.LifeCycle" HEIGHT="200" WIDTH="200"></APPLET> Preglednik učitava HTML stranicu i rezervira veličinu ekrana definiranu u HEIGHT="200" WIDTH="200"> učitava kod i pokreće metode init(), start(), Ključne riječi: CODEBASE=“http://www.test.com/Examp/” Naglašavamo da se kod nalazi na drugoj poziciji <PARAM NAME =rowNumber value=10> “ Naglašavamo da se definira poseban parametar koji ima naziv i vrijednost.

27.1. Objasni naredbu else - if? Za razliku od jednostavne kombinacije if-else kombinacija else-if sadrži više else if izraza. Pr. if (izraz1) { blok1 } else if (izraz2) { blok2 } ... else if (izraz2) { blok2 } kontrola se prenosi na ispitivanje izraza1 i ako vrati true završava blok else if inače ispituje sekvencijalno.

27.2. Definiranje sučelja? Definicija se sučelja sastoji od deklaracije sučelja i tijela sučelja. Koristi se rezrvirana riječ interface Pr.: public interface Sučelje3 extends Sučelje1, Sučelje2 {public abstract void metoda();....} Ako je sučelje public mogu se koristiti sve klase iz svih paketa. Naslijeđivanja sučelja su kao i naslijeđivanja klasa. Sučelje ne može naslijediti ponašanje klase. Naslijeđivanje konstanti i metoda iz više sučelja je potpuno. Tijelo sučelja sadrži definiciju konstanti i deklaraciju metoda. prilikom deklariranja članova sučelja ne mogu se koristiti rezervirane riječi: transient, volatile, synchronized, private i protected. pravila deklariranja metoda i varijabli su ista kao kod klasa. Za sve varijable deklarirane u sučelju podrazumjeva se da su static, public i final . Sve metode su deklarirane kao public i abstract.

27.3. Pojasni pojam korisničko sučelje! GUI okruženje - AWT (Abstract Windows Toolkit) AWT klase su veza između aplikacije i grafičkog okruženja OS u kojem se izvodi aplikacija. Klase unutar AWT su: AWT kontejneri : okviri(Frames), dijalozi(Dialogs), prozori (Windows) i paneli(Panels) AWT komponente: dugme(Button), kanvas(Canvas), izborni okvir(Checkbox), grupa izbornih okvira(GroupCheckbox), izbor (Choice), Labela(Label), listu (List), izbornik(Menu),Klizač(Scrollbar), polje za unos podataka(TextField), polje za ispisivanje teksta(TextArea) Ostale AWT klase: java.awt.image i java.awt.peer Klase Graphics - prostor za crtanje i Event – korisničke akcije.

28.1. Objasni naredbu switch? Koristi se kad je na osnovu vrijednosti jednog izraza potrebno izvršiti blok naredbi. Sastoji se od ključne riječi switch i izraza i bloka case naredbi s odgovarajućim vrijednostima.Tip uz case mora biti isti kao i tip u izrazu uz switch. Pr.:int izraz; switch (izraz) { case 1: blok1; break; ....... case n: blokn; break; default: default_blok; break;} Svaki blok mora završiti naredbom break

28.2. Implementiranje sučelja? Sučelje se koristi prilikom deklariranja klasa kja želi implementirati sučelje ili sučelja.Pri deklaracij se koristi rezrvirana riječ implements iza koje se navodi lista sučelja.

28.3. Komunikacije s ostalim programima? Aplet komuniciraju s drugim programima naslijedeće načine: Pozivanjem public metoda drugih apleta; Korištenjem API (Application Programming Interface) metodama iz java.net paketa bilo da se radi o drugim programima ili udaljenim računalima.

Page 21: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

21

29.1. Objasni naredbu while? Naredbom while izvodi se određeni blok naredbi dok se ne ispuni određeni uvjet. Npr.: while (izraz) { blok; }

29.2. Korištenje sučelja kao tipa podatka? Definiranjem sučelja definiramo novi tip podatka pa ga i koristimo kao tip podatka.

29.3. Komunikacije s preglednicima? Metode getCodeBase() i getDocumentBase() služe za komuniciranje s preglednikom. Definicija je kroz metodu showDocument() unutar sučelja AppletContext u java.applet Verzije su: public abstract void showDocument(URL url); public abstract void showDocument(URL url, String target);

30.1. Objasni naredbu do-while? Slična je naredbi while ali se uvjet ispituje na kraju petlje, a izraz ponavlja dok se ne ispuni uvjet. Npr.: do { blok; } while (izraz);

30.2. Što je to paket? Paket = package, bibliotečna jedinica, predstavlja biblioteku klasa. Paket upotrebljavamo kod uvoženja cijele biblioteke i koristimo – import. Npr.: import java.util.* Uvoženje cijele datoteke koja je dio standardne distribucije, ali Npr.: import java.util.ArrayList; Uvoženje samo jedne klase koju možemo koristiti bez navođenja imena biblioteke, ali se ne mogu koristiti druge klase iz istog paketa. Uvoženje se radi zbog osiguranja imenskog prostora odnosn da se metode iz jedne klase ne sudare s metodama iz druge klase. Veliki dio metoda koje se ponavljaju je sadržan u paketima koji se mogu uvesti.

30.3. Koje su mogućnosti i ograničenja appleta? Izvođenje zvučnih zapisa. Unutar Internet preglednika moguće su nove stranice. Apleti mogu pozivati public metode drugih apleta ako se nalaze u istoj. Određena su sigurnosna ograničenja.

31.1. Objasni for petlju? Kao i while i do-while for se koristi za ponavljanje naredbi određeni broj puta. Za for petlju se može točno odrediti koliko puta će se ponoviti naredbe iz uvjetnog izraza. For se petlja izvodi dok se ne dosegne oredđena vrijednost brojača. Pr.: for (izraz_pridruživanja; izraz_uvjeta; izraz_brojaca) { blok; } Izraz pridruživanja se izvodi samo jednom i to na početku petlje i radi se obično o pridruživanju vrijednosti brojača. Izraz brojača se izvodi svaki put kod ponavljanja petlje obično inkrementirenjem ili dekrementiranjem. Izraz uvjeta se ispituje svaki put prije prolaza kroz petlju. Nastavak prolaska kroz petlju ispituje se na početku petlje i ako je vrijednost izraza_uvjeta false petlja se prekida i program nastavlja narednom linijom nakon for. Petljom for (;;) { ...} realizira se beskonačna petlja uz uvjet iz tijela petlje. Petlja se prekida naredbom break.

31.2. Nabroji vrste paketa? Standardni Java paketi i vlastiti paket. Ključna riječ package. Lang, util, io, net, awt, applet, peer, image.

31.3. AWT kontejneri? AWT kotejneri: prozori (Windows)m, Okviri(Frames), paneli(Panels) i dijalozi(Dialogs). • U klasi Window su definirane metode i konstruktori za rad s osnovnim prozorima. Konstruktor: Public Window(Frame

parent); Metode: Sve metode za upravljanje prozorima. U klasi Frame su definirane metode i konstruktori za rad s okvirima. Konstruktor: Public Frame(); Public Frame(String Title) Metode: Sve metode za upravljanje okvirima i kursorom.

• AWT klasa Panel je najjednostavnija klasa kontejnera. Njime grupiramo komponente. U klasi Panel su definirane metode i konstruktori za rad s panelima. Konstruktor: Public Panel(); - kreira novi panel inicijalno postavljajući FlowLayout Dijalog je prozor ovisan o nekom drugom prozoru tj. ako zatvorimo okvir automatski se zatvara i dijaloški prozor. Postoje dva tipa: 1. MODAL otvaranjem ovog dijaloga blokiraju se svi prozori i dijalozi.

Page 22: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

22

2. MODELES ostavlja aktivne sve ostale prozore. Konstruktor klase Dialog: public Dialog(Frame parent, boolean modal); public Dialog(Frame parent, String title, boolean modal); Konstruktor klase FileDialog: public Dialog(Frame parent, String title); public Dialog(Frame parent, String title, int

mode);

32.1. Objasni naredbu break? Naredbu break koristimo za izlaz iz programske petlje. Npr. kod uporabe naredbe switch. Naredba break se može koristiti i za prekid programa unutar bloka označenog labelom.

32.2. Kako se koriste klase i sučelja paketa? Prilikom pokretanja interpretera automatski se uključuju sve klase i sučelja iz osnovnog paketa. Osnovni paket je neimenovani paket i u njega se spremaju klase za koje izričito ne navedemo kojem paketu pripadaju. Osim ovog paketa odmah su uključene i sve klase i sučelja paketa java.lang. Uključenje određene klase u kod programa: import prijevoz.Auto; Navesti se treba cijela putanja u direktoriju kod uključivanja klase. Uključenje cijelog sadržaja paketa (svih klasa, unutrašnjih klasa i sučelja): import prijevoz.*; Mogu se korisiti samo klase i sučelja koja su definirana kao public.

32.3. AWT komponente? AWT komponente: dugme(Button), kanvas(Canvas), izborni okvir(Checkbox), grupa izbornih okvira(GroupCheckbox), izbor (Choice), Labela(Label), listu (List), izbornik(Menu),Klizač(Scrollbar), polje za unos podataka(TextField), polje za ispisivanje teksta(TextArea). • AWT klasa Button - Konstruktori: Public Button(); Public Button(String label); Metode: public String getLabel();

protected String paramString(); public void setLabel(String label); • AWT klasa Canvas - Konstruktori: Public Canvas(); Metode: public void paint(Graphics g); • AWT klasa Checkbox - Konstruktori: Public Checkbox(); Public Checkbox(String label); Public Checkbox(String label

CheckboxGroup group, boolean state); Metode: Set i get metode za obradu boxova. • AWT klasa CheckboxGroup - Konstruktori: Public CheckboxGroup(); Metode: Public Checkbox getCurrent(); Public

void setCurrent(Checkbox box); Public String tostring(); • AWT klasa Choice - Konstruktori: Public Choice(); Metode: Za selektiranje, postavljanje i uzimanje izbora • AWT klasa Label - Konstruktori: Public Label(); Public Label(String label); Public Label(String label, int aligment);

Metode: Za postavljanje i uzimanje labela • AWT klasa List - Konstruktori: Public List(); Public int rows,boolean multipleselection); Metode: Za postavljanje i

uzimanje iz liste • AWT klasa Menu - Konstruktori: Public Menu(String label); Public Label(String label, boolean tearOff); Metode: Za

postavljanje i uzimanje iz izbornika • AWT klasa Scrollbar - Konstruktori: Public Scrollbar(); Public Scrollbar(int orientation); Public Scrollbar(int

orientation, int value, int visible, int minimum, int maximum); Metode: Za postavljanje i uzimanje scrollbar klizača • AWT klasa TextField - Konstruktori: Public TextField(); Public TextField(int rows, int cols); Public TextField(String

text); Public TextField(String text, int rows,int cols); Metode: Za unos i brisanje teksta • AWT klasa TextArea - Konstruktori: Public TextArea(); Public TextArea(int cols); Public TextArea(String text); Public

TextArea(String text, int cols); Metode: Za unos i brisanje teksta

33.1. Objasni naredbu continue? Naredba continue se koristi za skok s trenutne naredbe na vrh petlje ili na određenu labelu. Skok na labelu nadomješta naredbu goto. Ova se naredba može koristit samo unutar petlje.

33.2. Java.lang paket? Automatski se uključuje u svaki program. Unutar ovog paketa su: klasa Object (sve su klase nastale izvođenjem iz ove klase), klase tipova podataka, klase znakovnih nizova, sistemske klase, izvedbene klase, sigurnosne klase, klase za rad s nitima.

33.3. Rukovanje događajima? Bilo koja akcija generira objekt tipa Event. Moguće akcije su:

• Komponenta ignorira dogadjaj i proslijeđuje ga nadređenoj komponenti. • Komponenta mijenja događaj prije proslijeđivanja nadređenoj komponenti. • Reagira na događaj i poziva odgovarajuću metodu

Page 23: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

23

Spriječava proslijeđivanje događaja nadređenoj komponenti

34.1. Objasni naredbu return? Naredbom return se izlazi iz trenutne metode i vraća na naredbu koja slijedi nakon naredbe kojom smo pozvali prekinutu metodu. Postoje dva oblika: jedan koji vraća vrijednost iz metode i druga koja ne vraća nikakvu vrijednost. Ako se želi vratiti vrijednost iz metode koristimo naredbu return nakon koje slijedi vrijednost koja se vraća. Kao argument u return može se pojaviti i izraz čija se vrijednost izračunava prije nego se izvede naredba return.

34.2. Java.io paket? Unutar ovog paketa su: klase za rad s ulaznim i izlaznim tokovima. Sve su klase ovog paketa izvedene iz klasa InputStream i OutputStream. Upravljanje jednostavnim tokovima podataka i tzv. filtriranim tokovima.

34.3. Layout Manager? Kontrolu nad pozicijama komponenti koje se dodaju razmještaju omogućuje sučelje java.awt.LayoutManager. Budući da se ne može u naprijed znati sa kako velikom površinom će se raditi i kakvog je ona oblika, kontrola je relativna, dakle uglavnom se ogređuje da li će neka komponenta biti gore, dole, lijevo ili desno poravnata, ali u pravilu se ne određuje da li specifična točka pojavljivanja. Sučelje java.awt.LayoutManager implementirano je u više različitih klasa, kao što su:

• java.awt.FlowLayout • java.awt.BorderLayout • java.awt.CardLayout • java.awt.GridLayout • java.awt.GridBagLayout

Appleti ili kontejneri imaju mogućnost koristiti ove i druge layout managere da bi odlučili gdje će staviti komponente koje se u njih dodaje. Klasa java.awt.FlowLayout raspoređuje komponente s lijeva na desno dok ima prostora, a tada nastavlja na isti način u retku ispod. Svaka komponenta u FlowLayout razmještaju dobija upravo onoliko prostora koliko joj minimalno treba i ništa više. Takav je razmještaj koristan za raspoređivanje buttona, ali za mnoge druge stvari nije. On je pretpostavljeni (default) razmještaj za applete i panele. Klasa java.awt.BorderLayout organizira applet na sekcije prema stranama svijeta: North, South, East, West i Center. North, South, East i West su pravokutnici na rubovima appleta. Oni se kontinuirano šire prema veličini komponenata u njima. Center je ono što preostane u središtu. Klasa java.awt.CardLayout razbija applet u skupinu površina (karata) koje imaju svaka svoj vlastite razmještaj. U svakom trenutku samo se jedna karta pojavljuje na ekranu. Korisnik može prebacivati izgled ekrana s jedne na drugu kartu, a svaka prikazuje različite skupove komponenti. Obično se to uspoređuje sa HyperCardom na Macu ili Toolbookom on Windowsima. U Javi se to može koristiti kao serija maski za unos podataka ako sva polja ne mogu stati na ekran. Klasa java.awt.GridLayout dijeli applet na određeni broj redaka i stupaca te tako formira mrežu ćelija kao matricu. Kako se koja komponenta dodaje, ona se smješta u sljedeću slobodnu ćeliju, počevši od lijevog ugla prema desno i prema dolje. Svaka komponenta se podešava po veličini tako da pristaje u ćeliju. Takav razmještaj će neke komponente nepotrebno stisnuti, a neke razvući, ali je jako pogodan za razmještanje panela. Klasa java.awt.GridBagLayout daje najprecizniji od svih AWT razmještaja. Razmještaj je kao i GridLayout, ali komponente ne moraju biti iste veličine. Svaka komponenta može zauzeti jednu ili više ćelija. Štoviše, komponente nisu nužno smještene u ćelije počevši od gornjeg lijevog ugla niti se moraju dodavati prema desno i prema dolje. U jednostavnim appletima sa samo nekoliko komponenti bit će dovoljan jedan razmještaj. U kompliciranijima, međutim, često se razbija applet na panele, raspoređuje prema nekom razmještaju, a onda svaki panel snabdjeva vlastitim layout managerom za raspoređivanje komponenti unutar njega.

35.1. Što su polja ili nizovi? Polja ili znakovni nizovi ssu onovne klase u Javi. Svako novo polje se kreira pozivom operatora new. Npr.: int int Array[]= new int[10]; Svi nizovi sadrže svoju dužinu u varijabli legth. int intArraySize = intArray.length; Prilikom korištenja Javinog niza ne može se pristupiti izvan granica. Nizovi se mogu definirati i dinamički. Počinju s 0 i kontinuirano zauzimaju memorijski prostor. Postoje i višedimenzionalni nizovi koji su zapravo definirani kao niz niza odnosno polje polja.

35.2. Java.util paket? Unutar ovog paketa su klase uslužnog tipa kao što su: klase za rad sa znakovnim nizovima, klase za rad s datumima, klase za rad s vremenom, klase za rad s bitovima i klase za rad sa sistemskim varijablama.

Page 24: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

24

35.3. Grafički oblici? Crtanje se u Javi obavlja pomoću objekata klase java.awt.Graphics. Koristi se grafički objekt koji se daje kao argument metodi paint(Graphics g) koju klasa java.applet.Applet nasljeđuje od klase java.awt.Container. Sve o crtanju u appletima vrijedi i za objekte kao što su paneli, okviri, gumbi, podloge itd. Svaki objekt tipa Graphics ima svoj vlastiti koordinatni sustav i metode za crtanje stringova, linija, pravokutnika, krugova, poligona i tako dalje. Crtanje u Javi počinje od pojedinačnog objekta tipa Graphics. Svaki poziv metode za crtanje izgleda ovako: g.drawString("Hello World", 0, 50) gdje je g specifični objekt tipa Graphics pomoću kojeg se crta. g znači već postojeći objekt klase Graphics. Možete koristiti i druga imena za određeni kontekst, npr myGraphics ili appletGraphics i slično.

36.1. Klasa String- znakovni niz? (Unicode a ne ASCII) Klasa String sadrži nekoliko konstruktora i funkcija za rukovanje znakovnim nizovima. Osim klase String postoji i klasa StringBuffer koja dozvoljava manipuliranje sadržajem znakovnog niza. Kreiranje znakovnog niza se izvodi jednim od konstruktora klase String. Znakovni se nizovi mogu zbrajati tzv. preopterećivanjem operatora +. Znakovni se nizovi mogu uspoređivati ali se ne može koristiti operator ==. Za uspoređivanje se koriste metode klase String kao equals(). Metode IndexOf() i lastIndexOf() se koriste za pronalaženje definiranog znaka u znakovnom nizu. Za sortiranje se koristi metoda compareTo() tj. metoda za mjeđusobno uspoređivanje elemenata niza.

36.2. Java.net paket? Unutar ovog paketa su: klase za rad s URL( Uniform Resource Locator)-ovima, klase za rad s IP adresama, klase za rad s UDP ( User Datagram Protokol)- paketima, klase za rad s vezama. Napomena: klase iz ovog paketa se koriste za implementaciju server-client aplikacija.

36.3. Rad s mrežom?

37.1. Klasa StringBuffer- znakovni niz? (Unicode a ne ASCII) Klasa StringBuffer je slična klasi String ali dozvoljava manipuliranje sadržajem znakovnog niza tj. umetanje znakova niza te modificiranje pojedinih znakova. Niz se inicijalizira jednim od konstruktora. Objekt klase StringBuffer ima sadržaj, duljinu i kapacitet. Za umetanje određenog znaka na određeno mjesto koristi se metoda charAt(). Za izuzimanje određenog znaka ili niza znakova koristi se metoda getChars(). Za dodavanje određenog znaka ili niza znakova na kraj koristi se metoda append(). Za umetanje znakova u niz koristi se metoda insert().

37.2. Java.awt paket? Klase za izradu GUI okruženja. Abstract Windows Toolkit. Unutar ovog paketa su: klase za rad u (GUI) grafičkom sučelju, klase za izradu prozora, dijaloga, dugmadi, klizača, izbornika i sl.

37.3. Osnovni elementi HTML? Elementi koji su zatvoreni u trokutastim zagradama kao <html>, <head>, and <title> >zovu se oznake (tags). Oznake se mogu pisati velikim ili malim slovima (nisu case sensitive). Većina oznaka ima zatvarač koji definira doseg oznake. Zatvarač ima isto ime kao i oznaka, ali mu je dodan slash (/) nakon otvorene zagrade. Na primjer, </html>, </head>, i </title> su zatvarači. Tekst između <title> i </title> predstavlja naslov stranice. Oznake se u pravilu mogu pisati unutar drugih oznaka, ali se ne mogu preklapati. Neke oznake imaju dodatne atribute (to nije isto što i atributi u Javi). Atribut je ime iza kojeg slijedi znak jednakosti i vrijednost, a zajedno s oznakom pobliže određuje način interpretacije teksta. Na primjer, da bismo zaglavlje H1 centrirali, možemo koristiti atribut ALIGN i dati mu vrijednost center.

38.1. Pojasni kreiranje objekta! Kreiranje objekta se izvodi prema određenom obrascu uzorku ili modelu. Kao model služi klasa s određenim stanjem i ponašanjem. Pr.: Novi n = new Novi(); ovim je kreiran objekt Novi. Kreiranjem se istovremeno izvode: deklariranje, kreiranje/stvaranje i inicijalizacija objekta. Deklariranje objekta nije nužno ali je nužno definirati varijablu prije nego joj se pridruži objekt. To znači da se varijabla možr deklarirati i na početku programa. Operatorom new se stvara/kreira objekt. Operator new nužno kao argument zahtjeva poziv konstruktora. Pr.:

Page 25: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

25

String ss = new String(); U primjeru String s predstavlja deklaraciju varijable ss koja će sadržavati tip String. Operator new poziva konstruktor String(). Inicijalizacija se vrši pozivom konstruktora. Klasa može imati više konstruktora.

38.2. Java.awt.image paket? Unutar ovog paketa su: klase za rad u (GUI) grafičkom sučelju, klase za rad sa slikama, bojama, kolor filterima i pikselima Slike, boje, kolor filteri i pikseli.

38.3. Osnovni elementi XML? Elementi koji su zatvoreni u trokutastim zagradama kao <html>, <head>, and <title> >zovu se oznake (tags). Oznake se mogu pisati velikim ili malim slovima (nisu case sensitive). Većina oznaka ima zatvarač koji definira doseg oznake. Zatvarač ima isto ime kao i oznaka, ali mu je dodan slash (/) nakon otvorene zagrade. Na primjer, </html>, </head>, i </title> su zatvarači. Tekst između <title> i </title> predstavlja naslov stranice. Oznake se u pravilu mogu pisati unutar drugih oznaka, ali se ne mogu preklapati. Neke oznake imaju dodatne atribute (to nije isto što i atributi u Javi). Atribut je ime iza kojeg slijedi znak jednakosti i vrijednost, a zajedno s oznakom pobliže određuje način interpretacije teksta. Na primjer, da bismo zaglavlje H1 centrirali, možemo koristiti atribut ALIGN i dati mu vrijednost center.

39.1. Pojasni korištenje objekta! Kreirani se objekt može koristiti. Korištenje objekta podrazumjeva mjenjanje vrijednosti koje ga opisuju: izravno ili korištenjem neke metode. Klase posjeduju mehanizme zaštite svojih varijabli pa se zato preporuća mjenjanje varijabli pristupanjem metodama. Izravan pristup varijabli objekta se jednostavno napravi tako da se imenu objekta doda točka i ime varijable. Na isti se način može pristupati varijablama u izrazima (zbroj ...). Pozivanje metode se izvodi na sličan način tj. objektu se doda točka i naziv metode, a u nazivu metode lista novih vrijednosti varijabli.

39.2. Java.awt.peer paket? Unutar ovog paketa su: klase za povezivanje AWT komponenti s njihovim izvedbenim parovima na pojednim strojnim platformama, npr. Microsoft Windows kontrole. Povezivanje AWT komponenti pri tranziciji s platforme na platformu.

39.3. Što je to servlet? Kurci koji se nakače na web stranice.

40.1. Pojasni brisanje objekta! Sakupljač smeća ili sakupljanje smeća je proces kojim se iz memorije uklanjaju objekti koji se više ne koriste odnosno koji nemaju reference odnosno koji se više ne koriste. Objekte možemo brisati izričito pozivom metode finalize(). Metoda je definirana u klasi java.lang.Object ali se mora prekriti u objektu iz kojeg je pozvana. Kad je memorija zauzeta toliko da određeni program ne može dobiti memorijski prostor on poziva čistača smeća.

40.2. Java.applet paket? Unutar ovog paketa su: klase za izradu apleta pomoću Applet, klase kao i klase koje omogućuju određene multimedijske mogućnosti (slika, ton, pokret). Izrada apleta korištenjem klase Applet uz određene multimedijalne mogućnosti.

40.3. Što je to zrno?

Page 26: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

26

1. Kakava je vrsta jezika Java? - Objektno orijentirani programski jezik što omogućuje pisanje robusnog koda, primjenjivog na različitim platformama. 2. Kako radi sakupljač smeća? - Proces kojim se oslobađa memorijski prostor od objekata koji se ne koriste, u Javi naziva se skupljanje smeća. Objekt postaje garbage tek nakon što nestanu svi pozivi (reference) na njega. 3. Zašto je Java platforma, a ne samo jezik za programiranje? - Java platforma je predefinirani skup klasa koji postoji na bilo kojoj platformi. - Namjera je bila izgraditi GUI (Graphical User Interface) okruženje u kojem bi Client mogao kreirati aplikacije koje će na svim platformama izgledati jednako. 4. Iz čega se sastoji i kako je zapisan program u Javi? - Sastoji se od klasa, objekata i metoda, a program je zapisan u .class i .java file-ove. 5. Navedi osnovne razloge uvođenja objektno orijentiranog pristupa? - Kriza software-a u kvalitativnom smislu - Vrijeme izrade kvalitetnog software-a - Cijena izrade i prilagodbe software-a - Nivo ispunjenosti zahtjeva - Pravovremen odgovor na zahtjeve 6. Što je klasa? - Klasa je apstrakcija koja određuje zajedničku strukturu i zajedničko ponašanje skupa objekata. 7. Što je to apstraktna klasa? - Klasa iz koje se nikada neće kreirati objekt zove se Apstraktna klasa. Služi za izvođenje drugih klasa. Prevodilac spriječava pravljenje objekta iz apstraktne klase. 8. Što je objekt? - Objekt je primjerak (instanca) klase. Objekt pripada klasi koja definira njegova svojstva i ponašanje. Svi objekti imaju dvije karakteristike: 1. stanje (state) 2. djelovanje-funkcioniranje (behavior) 9. Voće i Ivan Pogarčić: što je od navedenog objekt, a što klasa? - Voće je klasa, Ivan Pogarčić je objekt. 10. Od čega se sastoji klasa? - Klasa se sastoji od atributa i metoda te ima dva glavna dijela: Deklaracija_klase { Tijelo_klase } - Atributi kažu što neki objekt jest. Metode kažu što neki objekt radi.

Page 27: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

27

11. Kakve tipove podataka/objekata možemo koristiti u Javi? - Primitivne (jednostavne) tipove: - Cjelobrojni (znakovni), Realni i Logički - Složene tipove: - Znakovni niz , sučelje, ... - byte (8), short (16), int (32), long (64 bita), - char (16) - baziran na Unicode znakovnom skupu, - float (32), double (64), - boolean (true, false), - string 12. Navedi osnovne paradigme objektno orjentiranog pristupa. - Apstrakcija, enkapsulacija, nasljeđivanje, polimorfizam. - 1. Funkcijski-orijentirana (Function-driven) - Koncentriranje na osnovna svojstva ponašanja (behavioral) i dinamiku promjena 2. Podatkovno-orijentirana (Data-driven) - Koncentriranje na strukturalna svojstva 3. Objektno-orijentirana (Object driven) - Koncentrirana na problemske koncepte cjeline objekta i sustava. 13. Što je to metoda? - Metode sadržavaju izvršni kod klase i definiraju djelovanje objekata. - Metoda govori što neki objekt radi. 14. Što je konstruktor? - Metoda kojom se inicijaliziraju novi objekti, a nosi isto ime kao klasa. Konstruktor nikada ne vraća vrijednost. Kako je konstruktor metoda on trpi preopterećenja tj. može se definirati više konstruktora s različitim brojem i tipom argumenata. Prilikom definiranja klase nije nužno definiranje konstruktora jer ga Java okruženje kreira kao podrazumjevanog. - Konstruktor - mjesto inicijalizacije novog objekta. 15. Opiši sintaksu klase, od čega se sastoji klasa. - Deklaracija klase sastoji se od ključne riječi class nakon koje slijedi ime klase i tijelo klase. Tijelo klase sadrži atribute i metode. - Klasa se sastoji od atributa i metoda te ima dva glavna dijela: Deklaracija_klase { Tijelo_klase } - Atributi - kažu što neki objekt jest. Metode - kažu što neki objekt radi. class TwoDPoint { double x; double y; } 16. Opiši sintaksu metode, od čega se sastoji metoda. - Deklaracija metode mora sadržavati ime metode i tip podatka koji metoda vraća. Osim osnovnih podataka može sadržavati argumente i opis dostupnosti. Vraćanje vrijednosti iz metode osigurava se rezerviranom riječi return. - Kao klasa i metoda ima dva glavna dijela: deklaraciju metode i tijelo metode. - npr. modifikator povratni_tip ime_metode ( lista-parametara ) { naredbe koda }

Page 28: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

28

- Deklaracija metode definira sve atribute metode kao što su pristup, povratni tip, ime, argumente. - Minimalno deklaracija ime i povratni tip kojim se ukazuje na tip podatka koji će biti vraćen metodom metoda metodaIme() { . . . }. - Tijelo metode je mjesto gdje se dešavaju sve aktivnosti. Sastoji se od Java koda kojim se implementira - primjenjuje metoda. - Parametri metode su opcijske komponente. Njima se osigurava unos podataka iz okoline metode/klase. class TwoDPoint { double x; double y; void print() { System.out.println("(" + this.x + "," + this.y + ")"); } } 17. Što je to povratni tip? - Vrsta tipa podatka kojeg metoda vraća (char, int, double…). 18. Gdje se vrši inicijalizacija? - U klasi, konstruktoru, metodi. (?) - Konstruktor kreira novu instancu klase. On inicijalizira potrebne varijable i obavlja sve poslove koji su potrebni da bi se klasa pripremila za uporabu. - Određivanje mjesta inicijalizacije je strogo vezano za područje važenja varijable (scope). 19. Što je to sučelje? - Interface (sučelje) u Javi je poput klase s tom razlikom što nema niti jednu izvršnu naredbu. - Sučelje je nešto poput klase, ali sadrži samo metode koje su abstract i atribute koji su final static. Sve metode u sučelju moraju biti public. - Sučelje je područje gdje su definirane mogućnosti postavljanja zahtjeva konkretnom tipu. - Za razliku od klasa, sučelje može biti pridruženo klasi koja je već podklasa neke druge klase Nadalje, sučelje se može primijeniti (kao neka vrsta "tipa") na članove (member-e) mnogih različitih klasa. 20. Objasni značenje rezervirane riječi ABSTRACT. - Deklarira apstraktnu klasu ili metodu. 21. Objasni uporabu rezervirane riječi SUPER. - Referenca na roditelja promatranog objekta. 22. Objasni uporabu rezervirane riječi THIS. - Referenca na sam promatrani objekt. 23. Što je to inicijalizacija? - Definiranje objekta u konstruktoru. Konstruktor - mjesto inicijalizacije novog objekta. - Zauzimanje potrebnog prostora u memoriji za pojedini tip podtaka. (?)

Page 29: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

29

24. Što je to referenca? - Referenca (poziv) na objekt je adresa memorijske lokacije u kojoj je spremljen objekt. - Referenca je pokazivač/veza. 25. Objasni značenje rezervirane riječi STATIC. - Deklarira da varijabla ili metoda pripada klasi, a ne objektu. 26. Objasni značenje rezervirane riječi NEW. - Alocira novi objekt. Alokacija (zuzimanje) prostora na dinamičkom (heap) dijelu memorije. 27. Objasni pojam „stanje smrti”? - Stanje smrti - od trenutka kad objekt ne trebamo (od kada nema više referenci na njega) on je spreman za čišćenje i njegova memorija (prostor koji zauzima) može biti oslobođena. 28. Objasni nasljeđivanje kompozicijom. - Nasljeđivanje - ponovno korištenje sučelja. - Smatra se da je mogućnost višestrukog korištenja koda (code reusability) ključna prednost objektno orijentiranih jezka nad tradicionalnim. Nasljeđivanje je mehanizam koji to omogućuje. Objekt može naslijediti varijable i metode od drugog objekta. Može zadržati one koje mu trebaju, a zamijeniti one koje mu ne trebaju. - Nasljeđivanje: Objektno orijentirani sustavi dozvoljavaju klasama da budu definirane preko drugih klasa. 29. Objasni nasljeđivanje i rezerviranu riječ EXTENDS. - Naziv NASLJEĐIVANJE odnosi se na činjenicu da jedna klasa može naslijediti dio ili svu strukturu i ponašanje druge klase. - EXTENDS - označava da je promatrana klasa podklasa neke druge klase. 30. Koje vrste operatora razlikujemo prema broju operanada? - Unarne, binarne i trinarne. 31. Kakvi su to trinarni operatori? - Trinarni ili uvjetni operator predstavlja skretnicu na osnovi ispunjenja zadanog uvjeta. - Uvjetni operator je ternarni operator tj. ima 3 elementa. - Piše se u obliku: logički izraz ? izraz-1 : izraz-2 32. Kada koristimo trinarni operator? - Trinarni ili uvjetni operator predstavlja skretnicu na osnovi ispunjenja zadanog uvjeta. - Kod odlučivanja ovim operatorom kad je odluka donesena može se vratiti što god se želi. 33. Int a=5; ++a; a--; što je rezultat koda? - Rezultat je 5. 34. Int a=5; a ++; --a; što je rezultat koda? - Rezultat je 5. 35. Koje vrste enkapsulacije postoje? - Enkapsulacija (sakrivenost od ostalog dijela sistema) - pokazujemo što sistem radi, ali ne i kako. - dvije vrste klijenta razreda: 1. objekti koji pozivaju operacije nad instancama razreda, 2. podrazredi koje nasljeđuju razred. - Private, Protected, Public, Default (Friendly)

Page 30: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

30

36. Što je to modifikator pristupa. Nabroji ih. - Zaštita podataka i metoda omogućena je ograničavanjem pristupa određenim podacima za određene skupine klasa. U tu se svrhu koriste rezervirane riječi private, protected, public i (bez oznake (default, friendly)). 37. Objasni modifikaciju pristupa PROTECTED. - Dozvoljeni pristup iz bilo koje klase unutar istog paketa i iz bilo koje sub klase. - Onemogućava pristup iz drugog paketa ali ne ograničava nasljeđivanje !!! - Nasljeđivanjem je moguće naslijediti sve članove koji nisu proglašeni privatnima. - Omogućuje da sakrijemo dio koda od šire javnosti ali da dozvolimo pristup izvedenim klasama. - Koristi se kod pakiranja klasa po nekom svojstvu. - U Javi je podrazumjevani tip pristupa protected. Protected pristup podrazumjeva da samo klase iz istog paketa mogu pristupiti obilježjima i metodama. 38. Što je to paket? - Paketi - temeljni dio Java programa. - Paket je skup funkcionalno povezanih klasa i sučelja koji osigurava zaštitu pristupa i upravljanje prostorom naziva. Svaka klasa u Javi je sastavni dio nekog paketa. - Paket = package, bibliotečna jedinica, predstavlja biblioteku klasa, grupu klasa i sučelja. 39. Opiši sintaksu naredbe IF. - Izvršava kod ako je uvjet istinit. npr.: - if (izraz) { blok1 } 40. Opiši sintaksu naredbe IF-ELSE. - Služi za selektivno izvođenje određene naredbe ili niza naredbi u zavisnosti od ispunjenja određenog uvjeta. npr.: - if (izraz) { blok1 } else { blok2 } - tj. ako je vrijednost izraza true ispunjava se blok1 a ako je false ispunjava se blok2. 41. Opiši sintaksu naredbe SWICH_CASE. - Ispituje istinitost nekoliko mogućih uvjeta. - Koristi se kad je na osnovu vrijednosti jednog izraza potrebno izvršiti blok naredbi. - Sastoji se od ključne riječi switch i izraza i bloka case naredbi s odgovarajućim vrijednostima. - Tip uz case mora biti isti kao i tip u izrazu uz switch. - npr.: int izraz; switch (izraz) { case 1: blok1; break; ....... case n: blokn; break; default: default_blok; break;} - Svaki blok mora završiti naredbom break 42. Koja je namjena naredbe BREAK? - Naredbu break koristimo za (prijevremeni) izlaz iz programske petlje. (npr.: kod nar. switch) 43. Koja je namjena naredbe RETURN? - Vraća vrijednost iz metode i uzrokuje trenutni izlaz iz metode.

Page 31: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

31

44. Koja je namjena naredbe CONTINUE? - Naredba continue se koristi za skok s trenutne naredbe na vrh petlje ili na određenu labelu. - Skok na labelu nadomješta naredbu goto. Ova se naredba može koristit samo unutar petlje. 45. Zašto se ne može istovremeno naslijediti više klasa? - Zbog toga da ne dođe do sukoba istoimenih članova i metoda. 46. Koliko se klasa može naslijediti odjednom? - Jedna i isključivo samo jedna. 47. Koji su osnovni operatori u Javi? - 4 osnovne skupine operatora su: 1. Aritmetički ( +, -, +, /, %, ++, +=, ... ) 2. Operatori na bitovima ( ~, &, >>, >>>, &=, ... ) 3. Relacijski ( ==, !=, <, >, <=, >= ) 4. Logički ( &&, ||, !, &, ?:, ...) - Zbrajanje(+), oduzimanje(-), množenje(*), dijeljenje(/) i modulo(%) - ostatak cjelobrojnog dijeljenja. (?) 48. Kako rade operatori s bitovima? - Operatori nad bitovima - mogućnost operiranja s pojedinim bitovima prostih tipova varijabli uz primjenu logičke algebre nad tim bitovima dva argumenta uz izračun rezultata. - Operatori nad bitovima su slični logičkim operatorima pa su im oznake jednostruke. 49. Koje je značenje rezervirane riječi IMPORT? - Dopušta pristup klasi ili grupi klasa unutar uvedenog (importiranog) paketa. 50. U kojem dijelu programa mora biti naredba koja počinje s IMPORT? - Na samom početku Java programa da bi uključili pakete (klase i sučelja) potrebne za rad. 51. Prilikom podizanja virtualnog stroja Java, koji se paketi podižu? - Standardni (temeljni) Java paket (java.lang. (util, io, net, awt, applet, peer, image)) i osnovni (vlastiti) paket. - Prilikom pokretanja interpretera automatski se uključuju sve klase i sučelja iz osnovnog paketa. Osnovni paket je neimenovani paket i u njega se spremaju klase za koje izričito ne navedemo kojem paketu pripadaju. Osim ovog paketa odmah su uključene i sve klase i sučelja paketa java.lang. 52. Koje metode ima klasa u slijedećem kodu class Student { }; ? - Nema definirane metode djelovanja jer unutar vitičastih zagrada ({}) nema tijela klase. 53. Koje značenje ima rezervirana riječ PRIVATE? - Deklarira metodu ili member varijablu kao privatnu. - Definiramo da su varijable i metode dostupne samo unutar klase u kojoj su definirane. Time je ograničen pristup podacima. 54. Opiši sintaksu naredbe WHILE? - Naredbom while izvodi se određeni blok naredbi dok se ne ispuni određeni uvjet. npr.: - while (izraz) { blok; }

Page 32: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

32

55. Opiši sintaksu naredbe DO - WHILE? - Slična je naredbi while ali se uvjet ispituje na kraju petlje, a izraz ponavlja dok se ne ispuni uvjet. npr.: - do { blok; } while (izraz); 56. Čemu služi modifikator pristupa? - Zaštita podataka i metoda omogućena je ograničavanjem pristupa određenim podacima za određene skupine klasa. U tu se svrhu koriste rezervirane riječi private, protected, public i (bez oznake (default, friendly)). 57. Navedi nivoe enkapsulacije. 1. Private - definiramo da su varijable i metode dostupne samo unutar klase u kojoj su definirane. Time je ograničen pristup podacima. 2. Protected - omogućen je dostup samoj klasi, podklasama i svim klasama unutar paketa gdje se nalazi klasa čijim varijablama definiramo dostupnost. Koristi se kod pakiranja klasa po nekom svojstvu. 3. Public - dostup je dozvoljen svima. Koristi se kod klasa kod kojih mjenjanje vrijednosti varijabli neće izazvati nikakve posljedice. 4. (Friendly) - dostup je dozvoljen svim unutar nekog paketa. - 1. private - bez mogućnosti pristupa, 2. protected - zaštićeni, 3. public - potpuni pristup, 4. “ prijateljski”- (nema rezervne riječi),. 58. Ako klasa nema naznačen modifikator pristupa, što je s nasljeđivanjem i dostupnošću? - Friendly, Default, Bez oznake - dostup je dozvoljen svim unutar nekog paketa. - Nema ograničenja kod nasljeđivanja. 59. Što je enkapsulacija? - Sakrivenost od ostalog dijela sistema - pokazujemo što sistem radi ali ne i kako. - Pakiranje varijabli objekta unutar zaštitnog sloja metoda naziva se enkapsulacija. 60. Koji su osnovni razlozi za enkapsulaciju? 1. Modularnost 2. Skrivanje informacija - Razlozi: - izbjegavanje ponavljanja pri programiranju. - Potprogrami (procedure, funkcije i subrutine), nizovi, struktura sloga su primjer mehanizama enkapsulacije u svrhu izbjegavanja ponavljanja programiranja. 61. Objasni rezerviranu riječ import? - Rezervirana riječ import govori prevoditelju da uključi paket (package) koji predstavlja biblioteku klasa. Dopušta pristup klasi ili grupi klasa unutar paketa. 62. Što su uvjeti za kreiranje paketa? - Klase i sučelja moraju biti deklarirane kao public. 63. Kako kreiramo vlastit paket? - Package (rw) - rezervirana riječ za definiranje paketa u programu čime sve klase i sučelja (interface) postaju dijelovi paketa. - Mogu se korisiti samo klase i sučelja koja su definirana kao public. 64. Navedi pravila pristupa unutar Javine kodne jedinice. - Učitavanje bajt koda à provjera bajt koda à interpreter+generator koda à izvođenje à Strojna platforma

Page 33: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

33

65. Navedi osnovne načine nasljeđivanja? - Nasljeđivanje kompozicijom, ... (?) - Osnovna i izvedena klasa (roditelj i dijete). - Izvedena klasa sadrži sva svojstva klase iz koje je izvedena. - Podklasa ili izvedena klasa naslijeđuje sve varijable i metode klase iz koje je izvedena. Ako je klasa iz koje izvodimo novu klasu također izvedena naslijeđivanje je potpuno (tranzitivnost). - Naslijeđivanje je uzimanje oblika postojeće klase i dodavanje novog kôda. Naslijeđivanjem je moguće naslijediti sve članove koji nisu proglašeni privatnima. Podklasa ili izvedena klasa naslijeđuje sve varijable i metode klase iz koje je izvedena. Izvođenje podklase iz izvorne nad (klase). 66. Gdje se sve može vršiti inicijalizacija? - U klasi, konstruktoru, metodi. - Inicijalizacija - metode klase, inicijalizacija konstruktorima, statička inicijalizacija bloka, inicijalizacija - instanci članova - konstruktorom, inicijalizacija nizova. 67. Objasni uporabu rezervirane riječi EXTENDS. - Označava da je promatrana klasa podklasa neke druge klase. 68. Objasni uporabu rezervirane riječi IMPLEMENTS. - Deklarira da promatrana klasa implementira dano sučelje. 69. Što je sučelje? - Interface (sučelje) u Javi je poput klase s tom razlikom što nema niti jednu izvršnu naredbu. - Sučelje je nešto poput klase, ali sadrži samo metode koje su abstract i atribute koji su final static. Sve metode u sučelju moraju biti public. - Sučelje je područje gdje su definirane mogućnosti postavljanja zahtjeva konkretnom tipu. - Za razliku od klasa, sučelje može biti pridruženo klasi koja je već podklasa neke druge klase Nadalje, sučelje se može primijeniti (kao neka vrsta "tipa") na članove (member-e) mnogih različitih klasa. 70. Objasni značenje metode toString() - Metoda klase Object (java.lang.Object), vraća reprezentaciju objekta kao znakovni niz. - Koristi se za ispisivanje objekta. 71. Kako se prosljeđuju argumenti prostog Javinog tipa? - Argument je vrijednost koju prosljeđujemo u pozivu metode. 72. Što su to referentni Javini tipovi? - Sučelje ima status referentnog tipa pa se može koristiti na mjestima kao i tipovi podataka. 73. Gdje se sve može inicijalizirati referenca? - U klasi, konstruktoru, metodi. - Reference na objekte je nužno definirati/inicijalizirati (koristeći new u posebnoj funkciji/metodi koju zovemo konstruktor). 74. Objasni značenje metode finalize(). - Koristi se za oslobađanje resursa koje objekt zauzima. Kad izričito želimo Java okruženju najaviti da nam neki objekt ne treba potrebno je unutar te klase definirati metodu finalize().

Page 34: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

34

75. Gdje se sve može uporabiti rezervirana riječ final? - Deklarira da klasa ne može imati podklasu ili da varijabla ili metoda ne može bit pregažena. - Kod deklariranja klasa, metoda i varijabli članova. 76. Objasni paradigmu polimorfizma. - Mogućnost korištenja novih tipova na način kao da se pozivaju stari/prethodnici. - Možemo koristiti varijable bazne klase kao referencu bilo koje klase koja je iz nje derivirana. 77. Što je rezultat izvedbe naredbe >Javac Proba.java? - Nakon što smo napisali program u nekom od tekstualnih editora pokrećemo prevoditelja. - Pokrećemo program "Proba.java" iz komandne linije. 78. Na koji način čuvamo objekte u Javi? - Objekte čuvamo u kontejnerima. - Stack ili statički prostor za čuvanje - visok prioritet i brza fluktuacija (protok) - lokalni podaci. - Heap - dinamički dio memorije - koristeći rezerviranu riječ new. 79. Navedi sve vrste kontejnera? - Paket AWT (Abstract Windows Toolkit) definira više vrsta kontejnera. 1. Prozori - Windows 2. Okviri - Frames 3. Paneli - Panels 4. Dijalozi - Dialogs 80. U kojem dijelu programa mora biti naredba koja počinje s IMPORT? Zašto? - Na samom početku Java programa da bi uključili pakete (klase i sučelja) potrebne za rad. 81. Koje su osnovne metode klase Arrays? - asList () - Returns a fixed-size list backed by the specified array. - binarySearch () - Searches the specified array of bytes for the specified value using the binary search algorithm. - equals () - Returns true if the two specified arrays of booleans are equal to one another. - fill () - Assigns the specified byte value to each element of the specified array of bytes. 82. Što je to Iterator? - To je objekt koji se pomiče kroz niz objekata i čita objekte pri čemu programeru nije poznata struktura niza. - koristi metode: iterator(), next(), hasNext(), remove(). 83. Što je izuzetak? - Izuzetak je događaj koji remeti normalno odvijanje programa pa na taj način predstavlja određeni tip greške odnosno neočekivani ishod programa. - exception je Java objekt koji se kreira kad se u programu pojavi abnormalna situacija. - exception je Java objekt ima podatkovne članove koji pohranjuju informaciju o problemu.

Page 35: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

35

84. Navedi vrste izuzetaka? 1. IO izuzetci, 2. Izuzetci izvođenja 3. Vlastiti izuzetci. 85. Što znači izbacivanje izuzetaka? - Slanje informacije o grešci u više okruženje zove se izbacanje izuzetaka. 86. Što se dešava kad nastupi izuzetak? - Netko iz izvedbene okoline mora prihvatiti izuzetak i obraditi ga. Ako se to ne desi program završava. - Kad nastupi izuzetak u dinamičkoj se memoriji pravi objekt operatorom new, a putanja izvršavanja se zaustavlja i referenca na objekt izuzetka se izbacuje iz trenutnog okruženja tražeći mjesto gdje će se nastaviti izvršavanje programa. 87. Koji su osnovni modeli obrade izuzetaka? 1. Naredba try - prvi je korak sve ono što može prouzročiti grešku smjestiti u blok naredbe try ono što izazove izuzetak bit će prihvaćeno u jedan od blokova catch tako da naredbu try mora slijediti barem jedan blok catch ili finally. 2. Naredba catch - zahtjeva jedan argument koji izgleda kao deklaracija u pozivu metode. Taj argument mora biti tipa Throwable ili izveden iz te klase. Da bi se ispisala poruka mora se koristiti metoda getMessage() definirana unutar klase Throwable. Ukoliko je moguće pojavljivanje više izuzetaka mora se pripremiti više blokova catch. 3. Naredba finally - prijenos kontrole na drugu metodu bez obzira je li se dogodio izuzetak, npr.: catch (Exception e) { .........} 88. Objasni komandu try { }; - Prvi je korak sve ono što može prouzročiti grešku smjestiti u blok naredbe try ono što izazove izuzetak bit će prihvaćeno u jedan od blokova catch tako da naredbu try mora slijediti barem jedan blok catch ili finally. 89. Objasni komandu catch (Exception e) { System.err.println(“caught exception”); }; - Ovim se kodom hvata svaki izuzetak pa se zato stavlja na kraj liste izuzetaka. - Obrada izuzetka i izbacivanje greške i poruke o grešci. (?) - Prijenos kontrole na drugu metodu bez obzira je li se dogodio izuzetak. (?) 90. Postoje dvije opće vrste objekata tipa Throwable. Koje? 1. Error - sistemske greške i greške tijekom prevođenja koje se ne trebaju hvatati 2. Exception - prost tip izuzetka koji može nastati u bilo kojoj metodi klase standardne Javine biblioteke.

Page 36: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

36

91. Što su dretve (niti)? - Thread (u prijevodu: nit, konac, trag, staza) možemo definirati kao tok izvođenja operacija koji se događa nezavisno od procesa ili događaja u okolini. - Nit je slična sekvencijalnom programu, ali nije program i može se izvoditi samo unutar programa. Kako nit predstavlja sekvencijalni programski tijek ona zahtjeva i vlastite resurse. - Prednost niti je u mogućnosti istovremenog odvijana više niti. Nit zahtjeva resurse za sebe pri izvođenju. Svaka nit ima tijelo i može posjedovati određena stanja. Svakoj se niti može pridružiti prioritet pri korištenju resursa. - Niti su u Javi predstavljene klasom Thread definiranomu java.lang. 92. Nit je predstavljena klasom …? - java.lang.Thread 93. Ako je nit predstavljena klasom thread koj su glavne metode te klase? - Metoda start() priprema thread za izvršavanje. - Metoda run() je ta koja obavlja zadaću namijenjenu threadu. Thread se normalno završava kad ona završi. - Metoda sleeep() čekanje niti - Tu su još metode stop(), suspend() i resume() ali su se te motede pokazale nesigurnima. 94. Navedi Javine standardne I/O tijekove. - Tri standardna I/O toka su definirana unutar System klase : 1. System.in - standardni ulaz (unos podataka u program i čitanje podataka s tipkovnice) 2. System.out - standardni izlaz (ispis programa i prikazivanje informacija na ekranu) 3. System.err - izlaz za ispis grešaka (ispis grešaka pri prijevodu programa na ekranu) 95. Što je applet? - Java apleti su mali programi namijenjeni izvršavanju kroz HTML stranicu u mrežnom pretraživaču. Točnije, aplet je objekt koji pripada klasi java.applet.Applet ili jednoj od podklasa te klase. - Applet je Java program koji se može izvoditi unutar Java kompatibilnih Internet preglednika. Program koji se radi s client strane i izvršava samo unutar čitača Web-a. ---------------------------------------------------------------------------------------------------------------- Polja(fields) - su varijable koje su asocirane s klasama i njihovim objektima te sadržavaju stanje klase ili objekta. Životni vijek objekta - Objekt postoji sve dok postoji bar jedna varijabla koja ga referencira ! - Moguće je postaviti varijablu da ne pokazuje ni na što : ball=null; - Garbage collection - proces uklanjanja objekata. - Objekti se ne brišu u istom trenutku kad više nema referenci na njih. Rekurzija - Metoda može pozvati samu sebe - rekurzija. - Potrebno je uključiti neku logiku po kojoj će metoda prestati zvati samu sebe.

Page 37: Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I ...metrobroadband.metronet.hr/ksenija-pejic/Objects/OOT_Pitanja_I_Odgovori.pdf · Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008

OOT – Pitanja i odgovori za usmeni

37

For petlja - Kao i while i do-while for se koristi za ponavljanje naredbi određeni broj puta. - Za for petlju se može točno odrediti koliko puta će se ponoviti naredbe iz uvjetnog izraza. - For se petlja izvodi dok se ne dosegne određena vrijednost brojača. npr.: - for (izraz_pridruživanja; izraz_uvjeta; izraz_brojaca) { blok; } - Izraz pridruživanja se izvodi samo jednom i to na početku petlje i radi se obično o pridruživanju vrijednosti brojača. - Izraz brojača se izvodi svaki put kod ponavljanja petlje obično inkrementirenjem ili dekrementiranjem. - Izraz uvjeta se ispituje svaki put prije prolaza kroz petlju. - Nastavak prolaska kroz petlju ispituje se na početku petlje i ako je vrijednost izraza_uvjeta false petlja se prekida i program nastavlja narednom linijom nakon for. - Petljom for (;;) { ...} realizira se beskonačna petlja uz uvjet iz tijela petlje. Petlja se prekida naredbom break. Tip podataka - Tip govori kakvu vrstu ponašanja možemo očekivati od objekta. - Tip specificira što objekt može raditi ili što se može s objektom raditi. - Tipovi su poput “ugovora” koji specificiraju koju vrstu odnosa možemo imati s objektom. Operator - Operator je simbol ili simbolički prikaz aktivnosti koja će biti izvedena nad objektima ili varijablama. - Prema tipu operatori se dijele na: aritmetičke, relacijske i logičke i operatore za upravljanje stringom. - Odabir i poziv operatora se vrši pomoću rezerviranih znakova i riječi za kontrolu izvršavanja. Polimorfizam - Polimorfizam - mogućnost da se razdvoji sučelje od realizacije odnosno da se razdvoji što i kako. Također pruža mogućnost aplikaciji da raste i da se proširenje predvidi u samom početku definicije klasa i objekata. Polimorfizam razdvaja klase po tipovima. Polimorfni poziv dozvoljava da određeni tip izrazi svoju različitost u odnosu na neki drugi tip sve dok su izvedeni iz istog prostog tipa.