V Grupa Flashcards
- Navedite znacaj primene interfejsa Comparable. Kako se porede objekti u Java programima?
Interfejs Comparable definise metod compareTo() koji uporedjuje objekte. Metod equals() proverava da li su dva objekta jednaka, tj. da li imaju isti sadrzaj.
- Eksplicitna konverzija tipa objekta - objasnite.
→ Konverzija objekta (casting object) predstavlja konverziju objekta jednog tipa u objekat drugog tipa. Kada se vrsi konverzija tipa promenljive superklase u tip promenljive podklase (downcasting) mora se koristiti eksplicitna konverzija tipova da bi se naznacilo komplajleru da nije greska, vec nasa namera. Ako objekat superklase nije primerak podklase, dolazi do greske ClassCastException.
Primer eksplicitne konverzije:
Student student = (Student) objekat;
- Konverzija primitivnih tipova i konverzija tipova objekata - objasnite.
→ Konverzija tipa se moze uraditi kada je izvorni objekat primerak iz ciljne klase. Kod konverzije tipova objekta se ne kreira novi objekat nego reference promenljivih pokazuju na isti objekat.
Objekat objekat = new Krug();
Krug krug = (Krug) objekat;
→ Dok kod konverzije primitivnih vrednosti vraca novu vrednost.
int broj = 10;
Byte noviBroj = (byte) broj;
- Uporedjivanje dva objekata metodom equals() - objasnite.
Metoda equals() proverava da li su dva objekta jednaka, tj. da li imaju isti sadzaj. Ona ima povratni tip boolean sto znaci da vraca samo jednu od moguce dve vrednosti (true ili false). Metoda equals() je metoda klase Object i moze se redefinisati (override-ovati) u drugim klasama tj. podklasama klase Object. objekat1.equals(objekat2);
- Memorisanje objekata primenom klase ArrayList - objasnite.
Klasa ArrayList je veoma zgodna za memorisanje objekata. Pri kreiranju liste za memorisanje objekata, lista je fiksna i ne moze se povecavati niti smanjivati, dok je broj elemenata neogranicen u slucaju kada se koristi Javina klasa ArrayList.
- Navedite i objasnite preporuke za projektovanje klasa.
→ Kohezija - Jedna klasa bi trebalo da predstavlja samo jedan entitet.
→ Konzistentnost - Treba stlediti standardnom Javinom stilu i konvenciji nizova. Koristiti informativne nazive klasa, metoda i polja podataka.
→ Ucaurenje - Klasa treba da koristi modifikator private da bi sprecio da klijenti imaju direktni prilaz atributima klase. Koristite getter i setter metode za citanje i unos vrednosti podataka, ako to zelite da omogucite.
→ Kompletnost - Klase se projektuju da budu koriscene od mnogih korisnika. Zbog toga, klasa bi trebalo da omogucava korisnicima razlicite nacine prilagodjavanja polja podataka i metoda.
→ Jasnoca - Klasa bi trebalo da ima jasan interfejs koji je razumljiv i lako objasnjiv
→ Objektni i staticki -Promenljiva ili metod koji zavisi od specifičnog primerka klase, tj. njenog objekta, je objektna promenljiva ili objektni metod. Promenljiva koju dele svi primerci jedne klase (objekti) je statička. Ne prebacujte parametar iz konstruktora da bi inicijalizovali vrednost statičkog polja podataka. Bolje je da koristite setter metod za to. Statička promenljiva ili statički metod mogu se pozvati iz meto
→ Nasledjivanje i agregacija - Nasledjivanje je veza tipa “to-je” (is-a), agregacija je veza tipa “ima” (has-a)
→ Interfejsi i apstraktne klase - Za jake veze tipa “to-je” koristi se nasledjivanje klasa. Slabe veze tipa “je-vrsta-od” (is-kind-of) modeluju se interfejsima
- Sta je izuzetak? Navedite neke najpoznatije izuzetke?
→ Izuzetak je objekat koji predstavlja neku gresku ili neki uslov koji sprecava normalno izvrsenje programa. Izuzetak se cesto izbacuje iz nekog metoda.
Postoje:
ArrayIndexOutOfBoundsException, StringIndexOutOfBoundsException, NullPointerException, AritmheticException, InputMismatchException, FileNotFoundException, IllegalArgumentException, NoSuchElementException, IOException;
- Koje vrste izuzetaka poznajete?
Klase izuzeci se mogu klasifikovati u tri glavne vrste:
→ Sistemske greske - izbacuju od strane JVM i predstavljaju objekte klase Error.
→ Izuzeci - objekti klase Exception, koja opisuje greske prouzrokovane nasim programom i spoljnim okolnostima.
→ Izuzeci u fazi izvrsenja - objekti klase RuntimeException, koja opisuje greske programirajna.
- Objasnite izbacivanje i obradu izuzetaka.
Kada program otkrije neku gresku, kreira objekat odgovarajuce klase izuzetaka i izbacuje ga (throw). To se zove izbacivanje izuzetka. Cim Java naidje na iskaz u try bloku koji izbacuje neki izuzetak, pocinje da trazi obradjivac izuzetka u nekom od catch blokova, koji izvrsava program.
- Kada je potrebno upotrebiti izuzetke?
Blok try-catch bi trebalo koristiti kad radite sa neocekivanim uslovima za javljanje gresakam a ne u jednostavnim i ocekivanim situacijama.
- Kreiranje vlastitih klasa izuzetaka.
Ako ni jedan postojeci izuzetak u Javi ne odgovara vasim potrebama, mozete kreirati sopstveni izuzetak, kao podkasu klase Exception ili neke njene podklase.
- Olancani izuzeci - objasnite.
Olancane izuzetke imamo kada se izbaci novi izuzetak, pored pocetnog izuzetka.
- Razlika izmedju throw i throws - objasnite.
→ Throw naredbu koristimo kada zelimo da izbacimo jedan konkretan izuzetak unutar metode.
Na primer:
throw new ArithmeticException();
→ throws koristimo kada zelimo da izbacimo vise izuzetaka tj. da naznacimo koji ce se izuzeci javiti unutar metode.
Na primer:
/Imamo metodu koja vrsi neku operaciju nad dva broja, ali ta metoda moze baciti vise od jednog izuzetka koji su tipa ArithmeticException. Tada koristimo:/
throws (public int nazivMetode() throws ArithmeticException {…}).
- Klauzule try, catch i finally - objasnite upotrebu.
Blok try sadrzi kod koji se izvrsava u normalnim okolnostima. Izuzetak izbacen sa throw naredbom se hvata u bloku catch koji izvrsava. Finally omogucava da se program izvrsava bez obzira na javljanje izuzetaka.
- Sta su datoteke?
Datoteka je skup podataka koji se smestaju na jednoj logickoj adresi u trajnoj memoriji racunara.