Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

Implementacija OOP

principa
Programsko inženjerstvo

dr. sc. Zlatko Stapić


University of Zagreb, Faculty of organization and Informatics zlatko.stapic@foi.hr
Primjer zadatka

• Napravite konzolnu aplikaciju u kojoj korisnik unosi tekst kojeg


aplikacija pretvara u Morseov kod. Rješenje treba temeljiti na
primjeni objektno orijentiranih principe.

2 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Primjer zadatka

3 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Primjer zadatka

4 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Primjer zadatka

5 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Primjer zadatka

• Napravite konzolnu aplikaciju u kojoj korisnik unosi tekst kojeg


aplikacija pretvara u Morseov kod, te potom korištenjem
Console.Beep metode svira. Aplikacija za točku i za crtu iz
Morseove abecede koristi isti ton, a različito je samo trajanje tona
(za točku se koristi 400 a za crtu 800 ms). Rješenje treba temeljiti
na prethodnom primjeru. U rješenju je potrebno koristiti objektno
orijentirane principe.

• Primjer MorseovKod
• Primjer MorseovKod Zvuk
▪ koje su razlike u rješenju?
▪ kako je strukturiran prvi a kako drugi primjer?

6 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Uvod

„Mali program može biti napisan u bilo čemu i bilo kako. Ako ne
odustaješ suviše lako, na kraju ćeš ga sigurno učiniti da radi. Ali
veliki program, to je drugačija priča. Ako ne koristiš tehnike
„dobrog programiranja“, nove pogreške će se javljati jednako
brzo kako ćeš uklanjati već postojeće pogreške.“
(Bjarne Stroustrup)

• međuovisnost dijelova programa


• potreba za ponovnom iskoristivošću kôda
• potreba za stalnom nadogradnjom aplikacije

• objektno orijentirana paradigma

7 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Agenda

•Uvod
•Vježbe 2 – Principi OOP-a
▪Koncept objekta i razumijevanje OOP-a
▪Apstrakcija
▪Učahurivanje
▪Nasljeđivanje
▪Polimorfizam
•Implementacija principa OOP-a u .Net-u
•Implementacija principa OOP-a u Javi
•Zaključak

8 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Vježbe 2

9 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Principi OOP-a

•Uvod u objektno orijentirano programiranje

▪ SmallTalk – prvi objektno orijentirani programski jezik


▪ MS Visual C++ - prvi u potpunosti pokriva OO paradigmu

▪ MS Visual Studio .Net i Java


- prirodno objektno orijentirani programski jezici
- principe i koncepte OOP-a nužno je koristiti pri OO dizajnu
- gradiš objekte kojima potom opisuješ stvarnost (“kuća”)

10 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


12 This can be changed in masterProgramsko
view… You should put your
inženjerstvo names, date
2021/2022 – OOPand event…
i Vježbe 2
Principi OOP-a

•Entiteti i klase u OO dizajnu

▪ entitet – objekt koji pri stupnju manje apstrakcije možemo


diferencirati u različite objekte

▪ klasa (engl. class) objekata – predložak za definiranje sličnih


objekata koji se ponašaju na sličan način
- apstrakcija nakon generalizacije
- hijerarhija klasa

13 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Identifikacija klasa objekata

• Izbjegavati posebne slučajeve sve dok ih se može izbjegavati


• Najprije provoditi generalizaciju a tek onda specijalizaciju

14 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Principi OOP-a
▪ Apstrakcija (engl. apstraction) – omogućuje upravljanje
kompleksnošću kako bi se od korisnika skrili nepotrebni
detalji
▪ učahurivanje (engl. encapsulation) – odvajanje sučelja prema
drugim objektima od primijenjene implementacije

▪ nasljeđivanje (engl. inheritance) – klasa objekta niže razine


koristi podatke i metode definirane u klasi objekta više razine

▪ polimorfizam (engl. polymorphism) – mogućnost korištenja


metoda osnovne klase objekta ali i preoblikovanje i korištenje
tih metoda s drugačijom funkcionalnošću u izvedenoj klasi
objekta naziva se polimorfizam

15 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Apstrakcija

• Skrivanje detalja unutarnje implementacije pojedine


funkcionalnosti iza javno dostupnih svojstava i metoda.

• Primjer:
• Koliko je tehnički (izvedbeno) kompleksno ispisati nešto na zaslonu
ekrana ili koliko je kompleksno zapisati podatak u trajnu memoriju
(npr. tvrdi disk)?

16 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Učahurivanje

• Učahurivanje predstavlja uključivanje programskog kôda (metoda)


i podataka (atributa, svojstava) u isti objekt te kontrolirani pristup
do podataka kojima drugi objekti mogu pristupiti isključivo kroz
eksplicitno definirana javna svojstva i/ili metode.

17 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Učahurivanje

18 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Nasljeđivanje

• Mogućnost izvedene klase da koristi podatkovne i funkcionalne


mogućnosti od osnovne klase da bi učinila određene operacije.

• Višestruko nasljeđivanje u većini programskih jezika nije


dopušteno.

• Apstraktne klase se
ne mogu instancirati
već ih se mora
naslijediti.

• Nasljeđivanje je
jednosmjerno, a
modifikatori pristupa
definiraju nasljedivost
svojstva ili metode.
19 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2
Nasljeđivanje

20 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Polimorfizam

• Mogućnost korištenja metoda osnovne klase, ali i promijenjenih


metoda u izvedenoj klasi se naziva polimorfizam. Drugim riječima
možemo reći da isti objekt može biti prikazan u više oblika.

21 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Polimorfizam

22 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2


Polimorfizam

23 Programsko inženjerstvo 2021/2022 – OOP i Vježbe 2

You might also like