You are on page 1of 15

Objektno

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

2. Objektno orijentirano programiranje


- Jezici: Smalltalk, Eiffel, Modula3, Objective C, C++, Java, C#
- Proširuje se koncept apstraktnog tipa podataka
- Tip se specificira u programskoj strukturi – klasi, koja određuje ponašanje sličnih objekata
- Objekt je pojavnost neke klase
- Ponašanje i stanje objekta određuje članovi klase:
i. podaci – bilježe stanje objekta
ii. funkcije – određuju ponašanje objekta – nazivaju se metode klase

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 ?

• Klasa je nacrt objekta, odnosno predložak po kojem je


određeni objekt stvoren.
• Klasa je definicija i opis onoga što predstavlja i sama po sebi
nema posebnu funkciju.
• Svaka klasa ima dvije ključne stvari, a to su: atributi (polja,
članovi) i njeno ponašanje (metode).

Objekt je instanca klase i kreiran je na osnovu njene
definicije, isto kao što i gradimo kuću na osnovu nacrta i sada
ako želimo možemo kreirati više kuća po istom nacrtu.
Svojstva OOP
• apstrakcija podataka (engl. data abstraction)

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

• program je hrpa objekata koji komuniciraju porukama (metode


+ parametri)

• svaki objekt ima svoje podatke sastavljene od drugih objekata

• svaki objekt ima tip

• svi objekti istog tipa mogu primati iste poruke


Zašto OOP?
• smanjenje kompleksnosti razvoja i održavanja programskog
koda

• složenost današnjih računalnih sustava


o banke, osiguranja, trgovački lanci
o državna uprava
o poslovni sustavi zračnih luka, sustavi u avionSmanjenje kompleksnosti razvoja i
održavanja programskog koda

• ograničenost ljudskog mozga

• podiže se kvaliteta programskog koda kojeg programeri pišu


Zašto JAVA?
• moderan programski jezik koji se
koristi u praksi i jedan je od
najpopularnijih jezika na svijetu
• možete isprogramirati gotovo
sve
• „cross-platform“ - na svim
računalima se isto koristi
• Pokreće se na preko milijardu
uređaja po cijelom svijetu
• Sljedeće predavanje :
2. Uvod u programski jezik JAVA

• Info: hrvoje.radovan@aspira.hr

You might also like