oop klase i objekti
TRANSCRIPT
![Page 1: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/1.jpg)
OOP Klase i objekti
3e - ssploce
ssploce
![Page 2: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/2.jpg)
OOP
Proceduralno programiranje – koristi varijable za spremanje podataka, fokusira se na procese/funkcije koje se javljaju u programu. Podaci i funkcije su odvojeni i različiti. Objektno orijentirano programiranje – OOP je bazirano na objektima koji kapsuliraju podatke i funkcije koje manipuliraju podacima
ssploce
![Page 3: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/3.jpg)
OOP terminologija
• Objekt – softwerska cjelina koja objedinjuje podatke i funkcije koje manipuliraju podacima u pojedinačnoj jedinici
• Atributi – vrst podataka nekog objekta, uskladištene u varijablama članicama
• Funkcije članice ili metode: procedure, funkcije koje manipuliraju atributima neke klase
ssploce
![Page 4: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/4.jpg)
Što je klasa?
• Klasa je korisnički definiran tip podataka kojim se modeliraju objekti sličnih svojstava
• Karakteristika - uočavanje zajedničkih osobina objekta i njihovo grupiranje u klasu (apstrakcija)
ssploce
![Page 5: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/5.jpg)
Kreiranje i definiranje klase (format)
ssploce
![Page 6: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/6.jpg)
ssploce
![Page 7: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/7.jpg)
Primjer definicije klase
ssploce
![Page 8: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/8.jpg)
ssploce
![Page 9: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/9.jpg)
Kontrola pristupa članovima klase
ssploce
![Page 10: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/10.jpg)
Funkcije članice metode klase
ssploce
![Page 11: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/11.jpg)
Specifikatori pristupa – public i private
ssploce
![Page 12: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/12.jpg)
Specifikatori pristupa: Primjer
ssploce
![Page 13: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/13.jpg)
Primjer klase 1
ssploce
![Page 14: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/14.jpg)
Primjer Klase 2
ssploce
![Page 15: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/15.jpg)
Što je objekt? • Objekt je primjer (instanca) klase
• Pošto je klasa tip, objekti se smatraju promijenjivima tog tipa u programu
• Objekti se deklariraju navođenjem imena klase iza kojeg slijede nazivi objekata razdvojeni zarezima
• Članovima klase pristupa se pomoću znaka točke (.)
ssploce
![Page 16: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/16.jpg)
Skup vrijednosti članova klase nekog objekta
ssploce
![Page 17: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/17.jpg)
ssploce
![Page 18: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/18.jpg)
Primjer inline (unutrašnje funkcije klase)
ssploce
![Page 19: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/19.jpg)
Primjer 2 – inline funkcija
ssploce
![Page 20: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/20.jpg)
Konstruktor klasa
• Konstruktor klasa služi za inicijalizaciju objekata
• Konstruktor je funkcija članica koja ima isto ima kao i klasa, a nema povratni tip
• Može ali ne mora imati argumente
• Može se preklopiti, tj za istu klasu može se definirati više konstruktora koji se razlikuju po broju ili tipu argumenta
ssploce
![Page 21: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/21.jpg)
Implementacija konstruktora unutar klase
ssploce
![Page 22: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/22.jpg)
Impementacija konstruktora i funkcija članice van klase
:: - Operator dosega, povezuje ime klase s njenim članom
ssploce
![Page 23: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/23.jpg)
Konstruktori - primjer
ssploce
![Page 24: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/24.jpg)
Pojam Destruktora – svaka klasa može imati samo jedan destruktor
ssploce
![Page 25: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/25.jpg)
Pokazni primjeri – slike sintakse Deklaracija klase
ssploce
![Page 26: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/26.jpg)
Pokazni primjeri – slike sintakse Kreiranje objekta
ssploce
![Page 27: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/27.jpg)
Pokazni primjeri – slike sintakse Podatkovni članovi
ssploce
![Page 28: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/28.jpg)
Pokazni primjeri – slike sintakse Primjer klase
ssploce
![Page 29: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/29.jpg)
Pokazni primjeri – slike sintakse Funkcijski članovi
ssploce
![Page 30: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/30.jpg)
Pokazni primjeri – slike sintakse Prava pristupa
ssploce
![Page 31: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/31.jpg)
ssploce
![Page 32: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/32.jpg)
Rezultat izvođenja programa
ssploce
![Page 33: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/33.jpg)
Vježbe
• Napisati kodove i izvršiti na računalu
ssploce
![Page 34: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/34.jpg)
Vježbe
ssploce
![Page 35: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/35.jpg)
ssploce
![Page 36: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/36.jpg)
ssploce
![Page 37: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/37.jpg)
ssploce
![Page 38: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/38.jpg)
ssploce
![Page 39: OOP Klase i objekti](https://reader033.vdocuments.site/reader033/viewer/2022051412/627deab025f9cd3ad54c0213/html5/thumbnails/39.jpg)
ssploce