Grupa Pitanja 4 Flashcards

1
Q

Razlika proceduralnog i objektno-orijentisanog programiranja?

A

Proceduralno programiranje je usmereno ka projektovanju metoda. OOP je usmereno ka objektima i operacijama nad njima. OOPp omogućava višestruku upotrebu klasa, jer se mogu koristiti od strane različitih aplikacija.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vrste veza između klasa, navedite i objasnite.

A
  1. zavisnost - najslabija veza
  2. asocijacija - jedan objekat koristi servise drugog
  3. agregacija - jedan objekat sadrži u sebi drugi
  4. kompozicija - vlasnik kreira i uništava delove objekta
  5. generalizacija - podklasa ima sve karakteristike klase
  6. realizacija - veza klase i interfejsa
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Šta je klasa asocijacije?

A

Kod asocijacije, dve klase mogu da razmenjuju servise (ako je asocijacija dvosmerna) odnosno da objekti jedne klase koriste servise objekata u drugoj klasi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Šta je agregacija, a šta kompozicija?

A

Agregacija je vrsta asocijacije, gde jedna klasa pripada drugoj, odnosno objekat jedne klase sadrži objekte drugih klasa. Kompozicija je jači oblik agregacije. Komponente ne mogu da budu deo drugog objekta ili da imaju agregaciju sa drugim objektima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Primena klasa BigInteger i BigDecimal, objasnite.

A

Klasa BigInteger nam omogućava da radimo sa ogromnim brojevima, a BigDecimal da imamo decimalne brojeve ogromne preciznosti. Ove klase imaju svoje metode za matematičke operacije sa ovim brojevima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Klase StringBuilder i StringBuffer - primena, objasnite.

A

Ove klase su slične klasi String, ali su fleksibilnije. Novi sadržaj može da se doda u StringBuilder i StringBuffer, a String objekat ne može da se menja. Koriste se jer imaju mnoge korisne metode za rad sa Stringovima, na primer metoda charAt(indeks), deleteCharAt(indeks), reverse(), i mnoge druge

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Šta je nasleđivanje?

A

Nasleđivanje je objektno orijentisani koncept za kreiranje hijerarhije klasa. Definišemo opštu superklasu koju nove, specijalizovane klase nasleđuju. Primer: superklasa Vozilo koju nasleđuju klase Automobil, Motocikli i Kamion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Navedite prednosti i nedostatke nasleđivanja.

A

Prednosti:

  1. ponovno korišćenje softvera (reusability)
  2. Polimorfizam
  3. Hijerarhija klasa
  4. Pravljenje klasa tako da imaju smisla na osnovu stvarnog sveta (automobil je vrsta vozila)

Nedostaci:

  1. Povezane klase koje bi inače mogle da budu samostalne
  2. Višestruko nasleđivanje
  3. Ako promenimo nešto u superklasi moramo da menjamo i sve podklase
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Objasnite odnos superklase i potklase.

A

Superklasa je opšta, može da sadrži neke promenljive i metode. Potklasa nasleđuje sve ove podatke i dobija pravo da redefiniše metode.
Primer: Vozilo, Automobil

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Upotreba konstruktora superklase u potklasi - objasnite.

A

Potklasa ne može da nasledi konstruktor, ali može da ga pozove ključnom reči super-. Poziva se kao
super()
ili
super(parametri superklase)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Navedite osobine apstraktne klase.

A

Apstrakna klasa mora da ima bar jedan apstraktni metod. Apstraktna klasa ne može da ima svoje objekte, mora da bude nasleđena i da potklase kreiraju instance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Šta je apstraktna klasa? Kako se kreira apstraktna klasa?

A

Apstrakna klasa je klasa koja ima bar jedan apstraktni metod. Kreira se pisanjem ključne reči abstract ispred imena klase.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Šta se dešava sa apstaktnim metodama superklase u potklasama?

A

Apstrakni metodi superklase bivaju redefinisani (override) od strane potklase (daje im se nova svrha).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Šta je interfejs? Kako se kreira interfejs?

A

Interfejs je sličan klasi, ali može da sadrži samo konstante i apstraktne metode. Kreira se kao
public interface ImeInterfejsa {
//kod }
a poziva se sa
public class ImeKlase implements ImeInterfejsa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Navedite razlike između apstraktne klase i interfejsa?

A

Interfejs nema konstruktore, sve promenljive su public static final

Apstraktna klasa ima konstruktore koji se pozivaju iz potklasa, nema ograničenja promenljivih

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Nasleđivanje klase i implementacija interfejsa - suštinske razlike - objasnite.

A

Klasa može da primeni više interfejsa ali može da proširi samo jednu klasu.

17
Q

Šta je polimorfizam? Navedite primere polimorfizma u Java programima.

A

Polimorfizam je korišćenje različitih klasa iz iste hijerarhije klasa (korišćenje bilo koje potklase na mestu gde nam treba superklasa)

18
Q

Šta je dinamičko povezivanje (dynamic binding) ?

A

Jedan metod se može primeniti u više klasa tokom lanca nasleđivanja. JVM odlučuje koji metod se poziva u vreme izvršenja.

19
Q

Navedite značaj primene interfejsa Comparable. Kako se porede objekti u Java programima?

A

Interfejs Comparable definiše metodu CompareTo() koja služi za upoređivanje objekata. CompareTo upoređuje dva objekta i vraća broj (negativan ili pozitivan ceo broj ili 0) koji zavisi od toga koji je objekat veći. CompareTo može da se koristi za sortiranje, traženje najmanjeg/najvećeg objekta, prikaz svih objekata koji su veći ili manji od nečega…