Grupa Pitanja 4 Flashcards
Razlika proceduralnog i objektno-orijentisanog programiranja?
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.
Vrste veza između klasa, navedite i objasnite.
- zavisnost - najslabija veza
- asocijacija - jedan objekat koristi servise drugog
- agregacija - jedan objekat sadrži u sebi drugi
- kompozicija - vlasnik kreira i uništava delove objekta
- generalizacija - podklasa ima sve karakteristike klase
- realizacija - veza klase i interfejsa
Šta je klasa asocijacije?
Kod asocijacije, dve klase mogu da razmenjuju servise (ako je asocijacija dvosmerna) odnosno da objekti jedne klase koriste servise objekata u drugoj klasi.
Šta je agregacija, a šta kompozicija?
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.
Primena klasa BigInteger i BigDecimal, objasnite.
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.
Klase StringBuilder i StringBuffer - primena, objasnite.
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
Šta je nasleđivanje?
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
Navedite prednosti i nedostatke nasleđivanja.
Prednosti:
- ponovno korišćenje softvera (reusability)
- Polimorfizam
- Hijerarhija klasa
- Pravljenje klasa tako da imaju smisla na osnovu stvarnog sveta (automobil je vrsta vozila)
Nedostaci:
- Povezane klase koje bi inače mogle da budu samostalne
- Višestruko nasleđivanje
- Ako promenimo nešto u superklasi moramo da menjamo i sve podklase
Objasnite odnos superklase i potklase.
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
Upotreba konstruktora superklase u potklasi - objasnite.
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)
Navedite osobine apstraktne klase.
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.
Šta je apstraktna klasa? Kako se kreira apstraktna klasa?
Apstrakna klasa je klasa koja ima bar jedan apstraktni metod. Kreira se pisanjem ključne reči abstract ispred imena klase.
Šta se dešava sa apstaktnim metodama superklase u potklasama?
Apstrakni metodi superklase bivaju redefinisani (override) od strane potklase (daje im se nova svrha).
Šta je interfejs? Kako se kreira interfejs?
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
Navedite razlike između apstraktne klase i interfejsa?
Interfejs nema konstruktore, sve promenljive su public static final
Apstraktna klasa ima konstruktore koji se pozivaju iz potklasa, nema ograničenja promenljivih