II Grupa Flashcards
- Opisite ulogu klase Math u Java programima? Da li se kreira Math objekat za pozive metoda?
Klasa Math je deo Javine biblioteke koja sadrzi veliki broj metoda koji obezbedjuju izracunavanje razlicitih matematickih funkcija. Math objekti se ne kreiraju kao tradicionalne metode.
- Pokažite polimorfizam na primeru metoda klase Math.
Math.max (a, b) - ako su a i b int onda ce izraz vratiti int. Ako su vrednosti long, vratice long, itd. Isto npr Math.round (x) - za double x - ce vrednost biti double, za float x - ce vrednost biti float, itd. Ali sqrt(x) uvek pretvara x u double i vraca vrednost tipa double.
- Objasnite redosled izvrsavanja matematickih operacija u Java programima.
Redosled zavisi od vrste operacija koje treba izvrsiti i od zagrada koje se koriste.
Recimo da imamo izraz:
x = ( -b + Math.sqrt(bb - 4ac) ) / ( 2a )
Prvo se koriste operacije mnozenja i deljenja, a zatim sabiranja i oduzimanja.
Pri ovome, postuje se i redosled operacija koji definisu zagrade. Prvo se izracunavaju operacije u okviru unutrasnjih zagrada, pa onda operacije u okviru spoljasnjih.
- Objasnite eksplicitnu i implicitnu konverziju primitivnih tipova podataka.
Eksplicitna konverzija (downcasting) predstavlja konverziju veceg tipa u manji tip (na primer: int x = (int)y; a y je tipa long). Implicitna konverzija (upcasting) predstavlja konverziju manjeg tipa u veci tip (na primer: long y = x; a x je tipa int).
- Kako se ucitavaju stringovi sa tastature?
Kreiranjem objekta klase Scanner kome je kao argument proslendjen (System.in) omogucavamo unos vrednosti sa tastature u program. U slucaju unosa teksta koristimo metode .next() i .nextLine(). Metoda .next() omogucava unos samo jedne reci. Dok unos recenice koristimo metodu .nextLine(). Scanner sc = new Scanner ( System.in ); //prosledjuje se rec String a = sc.next(); //prosledjuje se recenica String b = sc.nextLine();
- Objasnite formatiranje izlaza primenom naredbe printf().
→Metoda System.out.printf() može imati jedan argumenat ili vise njih razdvojenih zapetama. Prvi argument je formatirani string (objekat tipa String) kojim se odredjuje format izlaznih podataka. Preostali argumenti predstavljaju vrednosti koje se prikazuju. System.out.printf(formatiraniString, argument1, argument2...argumentN); →Zeljeni izlazni format neke vrednosti se navodi u prvom argumentu metoda printf() zapisom koji pocinje znakom procenta (%), zavrcava se odredjenim slovom, a izmedju mogu biti jos neke informacije. Slovo na kraju ukazuje na tip podatka koji se prikazuje, pri cemu se d koristi za cele brojeve, f za realne brojeve, s za stringove i tako dalje. Između pocetnog znaka % i slova na kraju moze se navesti minimalan broj mesta za ispis podataka. double prosekOcena = 89.0 / 9; System.out.printf("Prosek ocena je: %5.2f\n", prosekOcena); //na ekranu bismo dobili sledeci rezultat: Prosek ocena je: 9.89
- Koje tipove petlji poznajete u Java jeziku? Napisite ih u opstem obliku. Pokazite jedan jednostavan Java primer uradjen primenom razlicitih vrsta petlji.
→ U Javi postoji 4 vrsta petlji, a to su: for petlja, for-each petlja, while petlja i do-while petlja.
for for (kontrolni deo) { naredba1; … naredbaN; } Gde je kontrolni deo: (inicijalizacija;logickiIzraz; zavrsnica )
int suma = 0; for ( int i = 0; i < 10; i++ ) { suma += 1; } System.out.print(suma); for-each for (kontrolni deo) { naredba1; … naredbaN; } Gde je kontrolni deo: ( inicijalizacija : niz ) int suma = 0; int[] niz = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; for ( int i : niz ) { suma += 1; } System.out.print(suma); while while (logickiIzraz) { naredba1; … naredbaN; } int suma = 0; int i = 0; while ( i < 10 ) { suma += 1; i++; } System.out.print(suma); do-while do { naredba1; … naredbaN; } while ( logickiIzraz); int suma = 0; int i = 0; do { suma += 1; i++; } while (i < 10); System.out.print(suma);
Svaka petlja izbacuje rezultat 10 za sumu.
- Napravite razliku izmedju while i do-while petlje. Pokazite na primeru.
→ Razlika izmedju while i do-while petlje je u tome sto se kod while petlje prvo proveri uslov, a zatim izvrsi blok petlje (ukoliko je uslov zadovoljavajuc) dok kod do-while petlje se prvo izvrsi blok petlje, a zatim se proverava uslov. Do-while petlja ce se uvek izvrsiti bar jednom.
While petlja: int i = 11; while (i < 10) { //nista se nece stampati System.out.print(i); i++; } Do-while petlja: int i = 11; do { //stampa broj 11 System.out.print(i); i++; } while (i < 10);
- Po cemu se razlikuju for i for-each petlja?
→ For petlja je dobar izbor kada vam treba
petlja koja se izvrsava tacno odredjeni
broj puta. Koristi se kada vam nisu potrebne
unutrasnje kontrole u petlji.
→ For-each petlja je korisna kada neka
operacija treba da bude izvrsena nad
svim clanovima niza, ili neke druge
container klase. Eliminise sanse da se pojavi greska pri
definisanju petlje i njenoj aritmetici.
- Pokazite na primeru i objasnite primenu ugnjezdenih petlji.
Ugnježdene petlje možemo da koristimo kada pravimo matricu. Tada nam jedna petlja služi za kretanje po kolonama, a druga po redovima. int n = 3; int m = 3; /*kretanje po redovima, svaki put kada se zavrsi logicki iskaz unutrasnje for petlje, spoljasnja se ponavlja, i tako sve dok se i sama ne izvrsi tj. dok i ne dobije vrednost 3*/ for (int i = 0; i < n; i++) { //kretanje po kolonama, prati vrednost m promenjive i izvrsava se sve dok j ne dobije vrednost 3 for (int j = 0; j < m; j++) { //stampa zvezdicu posle svakog prolaza unutrasnje patlje System.out.print("*"); } //posle svakog izvrsenja unutrasnje pelje prebacuje na novi red System.out.println(); }
- Sta su metode? Kako se definisu metode? Kako se pozivaju metode?
Metode predstavljaju potprograme koji pomazu glavnom programu u toku njegovog izvrsavanja. Potpis metode se sastoji od modifikatora, povratnog tipa, imena (prvo slovo je uvek malo) i parametara. Metode se mogu pozivati u glavnom programu ili u drugim metodama pomocu njihovog imena ( pr. imeMetode(parametri || ako postoje) ). Unutar zagrada stoje parametri ukoliko su oni definisani unutar originalne metode.
- Sta su modifikatori pristupa? Objasnite ih pojedinacno.
Postoje:
private = metod moze da bude aktiviran samo od objekta klase gde se nalazi.
protected = metod moze da bude aktiviran iz programa istog paketa, objekta ove klase i njenih podklasa.
public = metod moze biti aktiviran bilo kojim java programom.
default = ako ne koristimo nikakav modifikator pristupa i on je dostupan samo unutar paketa.
- Na osnovu povratnog tipa kako delimo metode?
Na osnovu povratnog tipa metode delimo u dve vrste. Sa i bez povratnog tipa. Bez povratne vrednosti su metode tipa void, dok su sve ostale metode imaju povratni tip. One moraju sadrzati kljucnu rec return i vrednost koju vraca. Ta vrednost mora da se slaze sa navedenom vrednoscu tipa rezultata metode koji se definise. Sto znaci da ako nam je metod tipa boolean, return moze biti samo true ili fals. Dok ako nam je metod double return vrednost mora vracati double broj.
- Na osnovu nacina pozivanja kako delimo metode?
Generalno, poziv nekog metoda u Javi moze imati tri oblika. Najprostiji oblik naredbe poziva metoda je imeMetoda(listaArgumenata). Prema tome na mestu u programu gde je potrebno izvrsavanje zadatka koji neki metod obavlja, stavlja se samo njegovo ime i argument u zagradi kojoj odgovara parametrima metode. Drugi je pozivanje statickih metoda. One se definisu modifikatorom static i mogu se pozvati i izvan klase u kojoj su definisani. Sto znaci da se zapisuju kao ImeKlase.imeMetoda(listaArgumenata), gde je ImeKlase ime one klase u kojoj se metod definise. I poslednje je pozivanje metoda objekata. Metod objekata ima efekta samo na odredjenom objektu gde se poziva navodjenjem odredjenog objekta. On se definise u okviru klase, ali vazi samo za odredjeni objekat te klase. On ne pripada celoj klasi u kojoj je definisan, te se poziva obavezno uz navodjenje imena metoda kome pripada i na koji ima efekta. imeObjekta.imeMetada(listaArgumenata);
- Navedite prednosti primene metoda u programima.
Metod dosta olaksava rad u izradi neke aplikacije. Moze se skratiti pisanje u slucaju kada jedan blok koda pozivamo vise puta. Takodje cini nas kod preglednijim. Dobra praksa je da program ima vise metoda, cime ga delimo na manje celine i cinimo ga laksim za citanje i rad.