Professional Documents
Culture Documents
OOP-C++-2-Objektna Paradigma-2018 PDF
OOP-C++-2-Objektna Paradigma-2018 PDF
OOP-C++-2-Objektna Paradigma-2018 PDF
Teme
Objektno-orijentirano programiranje
u programskom jeziku C++
11.10.2018. 1 11.10.2018. 2
PONAŠANJE:
PONAŠANJE: PONAŠANJE:
prihvatiOdjeću()
prihvatiOdjeću() prihvatiDeterdžent()
prihvatiOdjeću()
prihvatiDeterdžent() uključi()
prihvatiDeterdžent() isključi()
uključi() uključi()
isključi() prihvatiOmekšivač()
isključi()
pokreniCentrifugiranje()
modeliranje objekata tako da se koriste samo bitne komponente svaki objekt ima:
stvarnog objekta svojstva (atribute, varijable)
što je bitno? - podatkovni dio objekata
npr. perilica rublja – serijskiBroj - ima vlastite vrijednosti atributa
- bitan ako modeliramo sustav u kojem bilježimo koliko je koja perilica oprala ponašanje (metode, funkcije)
- nebitan ako izrađujemo program koji upravlja smjerom okretanja bubnja - operacije koje objekt nudi
perilice - operacije se izvršavaju nad objektom (nad atributima i funkcijama)
- operacije mogu utjecati na atribute objekta
ATRIBUTI:
nazivMarke
nazivModela
KLASA serijskiBroj
kapacitet
PerilicaRublja volumenBubnja
motor
vrstaMotora
Metode
11.10.2018.
11 Algoritmi i strukture podataka, 11.10.2018.
12 / 55
FER, 2008./09.
objekti međusobno komuniciraju slanjem poruka metode objekta mogu pristupati svim članskim varijablama i metodama
slanje poruka zapravo je pozivanje metoda klijenti mogu vidjeti samo javne članske varijable i metode
Objekt Pero
Objekt KL_doo Klijent
klase Student
klase Firma
Radi()
Radi()
Vozi() public
SetId GetId
Objekt RI555 Objekt klase
klase Auto Student
id
Vozi() private
tri modifikatora vidljivosti: niti jedan dio složenog sustava ne bi smio ovisiti o realizaciji ili
private – član klase dostupan ili vidljivo samo metodama definiranim unutar implementaciji nekog drugoga dijela sustava
iste klase i prijateljima klase robusnost se postiže skrivanjem podataka i detalja implementacije -
protected – dostupno metodama unutar iste klase, prijateljima klase+ učahurivanje (enkapsulacija)
članovima njihovih izvedenih klasa (nasljeđivanje)
učahurivanjem klasa skriva neke atribute i neka ponašanja od ostalih
public – član klase dostupan ili vidljivo svim korisnicima (klijentima) koji imaju
klasa
pristup klasi
učahurivanje je komplementaran koncept apstrakcije
apstrakcija se fokusira na vidljivo ponašanje objekta, dok se enkapsulacija fokusira
pomoću modifikatora vidljivosti ograničava se pristup članskim
na implementaciju koja podržava takvo ponašanje
varijablama i metodama
opis klase ima dva dijela:
ograničavanje pristupa provodi se već pri prevođenju programa sučelje (interface) - sučelje predstavlja vanjski pogled na klasu
implementacija (implementation ) klase - predstavlja mehanizme pomoću kojih su
ostvarene funkcije opisane u sučelju
11.10.2018.
15 / 55 11.10.2018.
16
Hijerarhija Nasljeđivanje
skup apstrakcija često formira hijerarhiju odnos između klasa kod kojeg se jedna klasa stvara na temelju druge
Hijerarhija predstavlja rangiranje apstrakcija tako da joj se dodaju specifični atributi i ponašanje
GENERALIZACIJA
Hijerarhija nasljeđivanja
SPECIJALIZACIJA
nasljeđivanje definira odnose među klasama, tako da jedna klasa dijeli strukturu i Vozilo na Vozilo na motorni
električni pogon:
ponašanje jedne ili više drugih klasa (jednostruko i višestruko nasljeđivanje) Električno Motorno
pogon:
generalizacija/ specijalizacija: “je tip” ili “is a kind of” veza između nadređenog i vozilo vozilo Vrsta goriva
Vrsta motora
Napon
podređene klase Izvor napajanja
Veličina spremnika
za gorivo
…
…
11.10.2018.
19 Algoritmi i strukture podataka, 11.10.2018.
20
FER, 2008./09.
….
};
11.10.2018. 25 Algoritmi i strukture podataka, 11.10.2018.
26
FER, 2008./09.