Vous êtes sur la page 1sur 3

Osnovni principi objektno orijentisanog programiranja

Posmatrajmo nastavni proces u koli. Recimo da u uionici 1 uenik


IVa, Pera, radi zadatak iz matematike po zahtevu profesora Laze, a u
uionici 2 profesor Mika predaje svim uenicima odeljenja IVb novu lekciju iz
fizike. Sasvim je mogue da sutradan uloge profesora budu promenjene, pa
da profesor Mika u IVa ispituje ili predaje novu lekciju iz fizike, a profesor
Laza u IVb predaje novu lekciju iz matematike.
Ve u ovom uproenom prikazu nastavnog procesa moemo uoiti
osnovne objekte koji uestvuju u njemu (Pera, Mika, Laza, IVa, IVb,
matematika, fizika, uionica 1).
Lako se moe uoiti da Mika i Laza koordiniraju nastavnim procesom,
da upoznaju uenike sa novim gradivom, da vre proveru znanja uenika,
ocenjuju ga. Oni imaju i zajednika svojstva (ime, struna sprema, predmet
koji predaju, godine staa). Samim tim oni pripadaju jednoj od klasa
uesnika u nastavnom procesu, klasi Profesor.
Na slian nain moemo uoiti i klase Ucenik (Pera), Predmet
(matematika, fizika) , Odeljenje (IVa, IVb)
ovek koristi raunar kao pomono sredstvo u reavanju raznih
problema. Reavanje problema iz nae okoline je pravljenje modela te iste
okoline. U modeliranju koristimo intelektualne operacije, a pri tome je
osnovni alat apstrakcija. Osnovni nivo apstrakcije je uoavanje ablona za
objekte sa vie zajednikih osobina. Na osnovu tih ablona gradimo klase
kontrolisanim ukljuivanjem i iskljuivanjem nekih detalja o objektima, to
je jo jedan nivo apstrakcije.
Posmatranjem svih uenika uoavamo njihova zajednika svojstva. Na
primer, za sve uenike u nastavnom procesu je potrebno pratiti ime,
prezime, datum roenja, razred, odeljenje a nisu nam od znaaja boja kose,
boja oiju i slino. Svojstva od vanosti za proces koji pratimo nazivamo
atributima. Takoe, svim uenicima moemo pridruiti iste akcije koje su
znaajne za proces: uenik odgovara i dobija ocenu, uenik menja
odeljenje... Te akcije u okviru klase nazivamo metodima klase, i njima se
opisuje funkcionalnost objekata te klase.
Klasa Ucenik je uoptenje (apstrakcija) pojedinanih uenika. Svaki
pojedinani uenik je primerak (instanca) klase Ucenik, i opisan je skupom
vrednosti atributa te klase. Vrednost atributa ime za konkretnog uenika je
na primer Pera, a vrednost atributa razred je broj 4. Pera i broj 4 su
pojedinani podaci.

Svaki objekat u objektno orijentisanom programiranju (u daljem


tekstu OOP) predstavlja samostalnu, zaokruenu, celinu koju moemo
uklapati sa drugim objektima u skladu sa potrebama i tako reavati sloenije
probleme. Svaki objekat u OOP ima svoja unutranja stanja, kao i skup
metoda ili akcija koje moe da izvri. Enkapsulacija, jedan od vanih
principa OOP, je postupak objedinjavanja stanja i ponaanja objekta u jednu
celinu. Tako organizovane objekte je lake kontrolisati i onemoguiti
neovlaen pristup. Korisnici sa objektom komuniciraju samo kontrolisano,
pomou javnih metoda i ne mogu neovlaeno menjati unutranja stanja
objekta. Samo internim metodima objekta omoguen je pristup tim
stanjima. Ovakav pristup omoguava lake organizovanje tima programera u
razvijanju istog projekta. Svaki lan tog tima lako moe koristiti sve objekte
koji su drugi lanovi tima razvili, poznavajui samo naine komunikacije sa
objektima, bez poznavanja njihove realizacije.
Posmatrajmo klasu Dugme(button) na raunaru. Na slici koja sledi
vidimo tri takva objekta. Kaemo da su oni instanca klase Dugme. Svi oni
mogu da prime iste poruke. Na njih se primenjuju isti metodi (npr. dugme je
pritisnuto...), imaju istu funkcionalnost. Funkcionalnosti koje imaju dobijene
su iz opte klase Dugme.
Nasleivanje je jo jedna vana osobina jezika OOP. Ono je posledica
generalizacije kao metoda za modelovanje objekata. Na primer u nastavnom
procesu moemo polazei od klasa Ucenik, Profesor uoavajui njihove
zajednike atribute i metode napraviti novu klasu Osoba. Tu operaciju
nazivamo generalizacijom a obrnutu operaciju specijalizacijom.
Na primer, kaemo da se klasa Osoba specijalizuje u klasu Ucenik,
Profesor. Sve klase koje su dobijene specijalizacijom nasleuju sve atribute i
metode osnovne ili generike klase. Na primer, metod promeni_adresu
osnovne klase Osoba moemo primenjivati na objekte klase Ucenik jer je
klasa Ucenik izvedena klasa iz klase Osoba. Isto tako atribut prezime klase
Osoba imai svaki od objekata izvedenih klasa Ucenik i Profesor. Izvedene
klase osim nasleenih osobina i funkcionalnosti mogu posedovati i neke
specifine koje ih dodatno karakteriu. Na primer, klasu Ucenik opisujemo
dodatnim atributima (razred, ocene, ...) i funkcionalnostima (odrediProsek,
uciLekciju ...).
Koncept nasleivanja je od velike pomoi programerima. Izmeu
ostalog obezbeuje redukciju i lake odravanje koda (zajednike osobine i
funkcionalnosti piu se samo jednom a njihove eventualne izmene vrimo
samo u osnovnoj klasi).
U izvedenim klasama moemo predefinisati neke od nasleenih
funkcionalnosti u skladu sa specifinostima izvedene klase. Na taj nain je
omogueno da objekti razliitih izvedenih klasa reaguju razliito izvravajui
istu funkcionalnost osnovne klase. Osobina da se isti metod osnovne klase

izvrava na razliite naine, u zavisnosti od toga kojoj izvedenoj klasi


objekat koji ga poziva pripada, naziva se polimorfizam.
Veina savremenih aplikacija za obradu dokumenata podrava
tampanje dokumenata bez obzira to u trenutku pisanja aplikacija
programer nema informaciju o vrsti tampaa instaliranog na konkretni
raunar. Programer u kodu koristi objekat klase Printer i poziva njegov
metod Print. Nain realizacije tog metoda bie odreen u trenutku
izvravanja programa prilikom izbora konkretnog tampaa koji je povezan
na raunar na kome se izvrava program. Metod Print konkretnog tampaa
realizovan je u programu koji prilagoava tampa aktuelnom operativnom
sistemu (drajver). Ovako neto je mogue zahvaljujui nasleivanju i
polimorfizmu jer su svi tampai izvedeni iz osnovne sistemske klase Printer.
Koncept OOP podravaju i novi, savremeni, programski jezici tako da
se moe pretpostaviti da e osnovni principi OOP opstati i u ovako brzom
razvoju informacionih tehnologija. Svakako donekle modifikovani i
prilagoeni novostima ali e ipak opstati.

Vous aimerez peut-être aussi