IV Grupa Flashcards

1
Q
  1. Razlika proceduralnog i objektno-orijentisanog programiranja?
A

→ Proceduralno programiranje je usmereno ka projektovanju metoda. Jezici koje koristimo u proceduralnom programiranju su C, Pascal, Fortran, …
→ Objektno-orijentisano programiranje povezuje podatke i metode u objekte, Ono je usmereno na objekte i operacije nad njima. Jezici koje koristimo u OOP jesu C#, C++, Java, Javascript, Python, Ruby,..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Vrste veza izmedju klasa, navedite i objasnite.
A

Postoje 6 veze izmedju klasa
Zavisnost - najlabavija veza izmedju dve klase
Asocijacija - jedan objekat upotrebljava servise drugog
Agregacija - jedan objekat sadrzi u sebi drugi objekat
Kompozicija - vlasnik je odgovoran za kreiranje ili unistavanje delova objekata
Generalizacija - podklasa ima sve karakteristike klase
Realizacija - veza izmedju klase i njenog interfejsa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Sta je klasa asocijacije?
A

Klasa asocijacije oznacava da dve klase mogu razmenjivati servise, iako ih poseduje samo jedna klasa. Asocijacije su relacije koje se manifestuju u vreme izvrsavanja time sto dozvoljavaju razmenu poruka izmedju objekata.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Sta je agregacija, a sta kompozicija?
A

→ Agregacija je asocijacija izmedju klasa koja oznacava pripadnost jedne klase drugoj, tj. da jedan objekat jedne klase sadrzi objekte drugih klasa.
→ Kompozicija je jak oblik agregacije. Upotrebljava se za aktivne objekte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Primena klasa BigInteger i BigDecimal, objasnite.
A

BigInteger i BigDecimal se mogu koristiti za predstavljanje celih ili decimalnih brojeva bilo koje velicine i preciznosti. One se nalaze u pateku java.math i za kreiranje mozemo koristiti new BigInteger(String) i new BigDecima(String). Kod ovih klasa mozemo koristiti metode add, subtract, multiply, divide, reminder i compareTo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Klase StringBuilder i StringBuffer - primena, objasnite.
A

Klase StringBuilder i StringBuffer su fleksibilnije od klase String i omogucavaju obacivanje ili dodavanje novog sadrzaja u objekte, dok ova funkcija kod klase String nije moguca.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Sta je nasledjivanje?
A

Nasledjivanje (generalizacija) predstavlja osobinu gde sve podklase nasledjuju atribute i metode svoje nadklase (roditeljske klase). Nasledjivanje predstavlja jedan od tri osnovna principa objektno orijentisanog programiranja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Navedite prednosti i nedostatke nasledjivanja.
A

→ Prednosti nasledjivanja se ogledaju u tome sto se sprecava dupliranje koda. Sve zajednicke atribute i metode definisemo na jednom mestu, tj. u roditeljskoj klasi, dok podklase samo uzimaju
vrednosti atributa i pozivaju metode te roditeljske klase.
→ Nedostatak predstavlja to sto Java ne omogucava visestruko nasledjivanje, pa samim tim jedna klasa moze naslediti iskljucivo i samo jednu klasu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Objasnite odnos superklase i potklase.
A

Superklasa je klasa cija svojstva nasledjuju njene podklase, koje ih prosiruju svojim specijalizovanim svojstvima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Upotreba konstruktora superklase u potklasi - objasnite.
A

Upotreba konstruktora superklase u podklasi se vrsi pozivom metoda super() ili super(argumenti) koje pozivaju prazan konstruktor superklase ili konstruktor superklase sa argumentima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Sta je apstraktna klasa? Kako se kreira apstraktna klasa?
A

Apstraktna klasa predstavlja klasu koja ne moze kreirati svoje instance tj. objekte, ali moze definisati i posedovati svoje atribute i metode, dok objekte definisu njene potklase koje nasledjuju vec definisane atribute i metode.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Navedite osobine apstraktne klase.
A
→ Apstraktna klasa se kreira dodavanjem kljucne reci abstract u potpisu klase. 
	Na primer : 
	public abstract class imeKlase {...}.
→ Apstraktna klasa ne moze kreirati svoju instancu tj. objekat, moze naslediti samo jednu klasu, moze implementirati vise interfejsa i njeni clanovi mogu biti podeseni na public, private i protected.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Sta se desava sa apstaktnim metodama superklase u potklasama?
A

Abstraktne metode superklase u podklasama se mogu redefinisati (override) ili samo pozvati.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Sta je interfejs? Kako se kreira interfejs?
A

Interfejs predstavlja klasu koja lici na apstraktnu klasu, ali sadrzi samo metode bez konstruktora. Klase koje implementiraju ovaj interfejs mogu redefinisati i koristiti te metode. Interfejs specificira zajednicka svojstva povezanih klasa ali i nepovezanih klasa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Navedite razlike izmedju apstraktne klase i interfejsa?
A

→ Apstraktna klasa moze imati apstraktne i neapstraktne metode dok interfejs moze imati samo apstraktne metode
→ Unutar interfejsa mogu biti staticke i finale promenljive dok u apstraktnoj klasi mogu biti finale, nefinalne, statice i nestaticke promenljive.
→ Apstraktna klasa se moze prosiriti pomocu kljucne reci extends, a intefejs se moze implementirati pomocu kljucne reci implements.
→ Interfejs moze prosiriti samo drugi interfejs, a apstraktna klasa moze prosiriti drugu apstraktnu klasu i impementriati vise interfejsa.
→ Clanovi intefejsa su javi (public), a apstraktna klasa moze imati clanove koji su public, private i protected.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Nasledjivanje klase i implementacija interfejsa - sustinske razlike - objasnite.
A

Nasledjivanje klase se moze izvrsiti koriscenjem reci extends, dok se implementacija interfejsa izvrsava koriscenjem kljucne reci implements. Metode koje se dobijaju u podklasi nasledjivanjem se redefinise (override)

17
Q
  1. Sta je polimorfizam? Navedite primere polimorfizma u Java programima.
A

Polimorfizam predstavlja jedan od tri osnovna principa objektno-orijentisanog programiranja. Polimorfizam predstavlja definisanje neke metode unutar superklase koja ce se kasnije redefinisati unutar podklase koja nasledjuje tu superklasu.

18
Q
  1. Sta je dinamicko povezivanje (dynamic binding)
A

Dinamicko povezivanje je povezivanje gde kompajler ne odlucuje koju ce metodu pozvati. Redefinisanje (overriding)je dobar nacin da se pokaze dinamicko povezivanje. Iz razloga sto u overridingu, superklasa i subclass imaju istu metodu.