Professional Documents
Culture Documents
orijentirano
programiranje
1. Uvod u objektno orijentirano programiranje
Četiri pristupa programiranju
1. Proceduralno programiranje
- Jezici: Fortran, Basic, Pascal, Modula 2, C
- nazivaju se i algoritamski jezici slijedi se tok izvršenja programa u računalu: sekvenca, selekcija, iteracija
- Organizacija podataka: prosti tipovi, nizovi i strukture
3. Funkcionalno programiranje
- Jezici: Lisp, Sheme, Haskell, ML
- Matematički pogled na programiranje u kojem su funkcije entiteti prve vrste:
i. funkcije se tretira kao podatak koji se može prenositi u drugu funkciju
ii. rezultat primjene funkcije može biti neka druga funkcija (funkcija vraća funkciju)
- Prihvaćeni od matemetički usmjerenih umova, jer se pokazuje da bi se ovim jezicima mogli dobiti „sigurniji“ programi.
4. Logičko programiranje
- Jezici: Prolog
- Temelji se na matemetičkoj logici - predikatnom računu
- Primjena im je ograničena na probleme koji se mogu logički specificirati
Objektno orijentirano programiranje
• Metoda programiranja kojoj je temeljni princip da se klasa
(razred) definira kao samostalna programska cjelina
• U stvarnom svijetu okruženi smo objektima (automobil,
računalo, pas, drvo, ...)
• Svaki objekt definiran je stanjem i ponašanjem
• U programskom okruženju su to varijable i metode
• Varijabla = stanje, metoda = ponašanje
• Objekti međusobno razmjenjuju informacije i traže jedan od
drugog usluge. Pritom okolina ne mora znati ništa o unutanjem
ustrojstvu objekta.
Klasa vs objekt
• Ova dva pojma čine suštinu OOP-a.
• Razlika između klase i objekta ?
o Mogućnost uklapanja tuđeg programa u svoj vlastit program bez razumjevanja kako je
program implementiran
o Jedino treba znati što ali ne i kako program radi
enkapsulacija (engl. encapsulation)
mehanizam kontrole pristupa varijablama i metodama klasa i objekata.
odvaja se implementaciju od korisnika.
Dva su razloga zbog kojih korisnik ne bi trebao imati pristup unutarnjoj prezentaciji
objekta:
Ovijanje sprječava korisnika da mijenja podatke na ilegalan način
Ovijanje omogućava programeru da mijenja stanje objekta u bilo koje vrijeme
Primjer enkapsulacije
skrivanje podataka (engl. data hiding)
postavljanje razina zaštite na podacima i funkcijama
polimorfizam (engl. polymorphism)
svojstvo da se odluka o tipu podataka može prolongirati do runtimea, tj. da se kod može
transparentno koristiti nad instancama različitih tipova
dinamičko povezivanje (engl. dynamic binding)
povezivanje u runtimeu
način implementacije polimorfizma
nasljeđivanje (engl. inheritance)
nad postojećom komponentom moguće je proširivanje
Pravila „čistog” OOP
• sve je objekt
• Info: hrvoje.radovan@aspira.hr