You are on page 1of 31

KLASE

Klase i objekti

▪ Kod objektno orijentiranog programiranja (OOP) težište je projektiranju


aplikacije kao skupa objekata koji izmjenjuju poruke.
▪ OOP se temelji na klasama.
▪ Svrha OOP-a je da se smanji količina redundantnog (ponavljajućeg) koda.
Klase i objekti

▪ Klasa korisnički kreiran tip podataka, koji sadrži članske varijable i metode.
▪ Njima je moguće pristupiti i koristiti ih kreiranjem instance te klase
(objekta).
▪ Klasu možemo promatrati kao predložak (nacrt) objekta.
Klase i objekti

▪ Objekt (engl. object) je naziv za skup svojstava koja možemo objediniti u

smislenu cjelinu.

▪ Pravila koja propisuju od čega je pojedini objekt sagrađen, te kakva su

njegova svojstva nazivaju se klasama.


Klase i objekti
Klase i objekti

▪ U klasi je objekt opisan:


▪ varijablama koje mu određuju stanje i
▪ metodama koje mu određuju ponašanje.
• Metode mogu mijenjati stanje objekta, a po potrebi mogu i stvarati
nove objekte.
Deklaracija klase

Deklaracija:

1. počinje ključnom riječi class

2. ime klase – u pravilu započinje velikim slovom

3. blok klase koji završava s ; ({ };)


Deklaracija klase
Unutar bloka klase imamo listu:

▪ članskih varijabli (podatkovnih članova)

▪ metoda klase (funkcije unutar klase) - omogućuju manipulaciju tim

varijablama u klasi

Varijable i metode klase definiraju svojstva i ponašanje objekata u klasi


Deklaracija klase

▪ Objekt je instanca klase.


▪ Kad definiramo klasu, ne dolazi do alokacije memorije. Tke kad
kreiramo objekt alocira se memorija.
Klase i objekti

ključna riječ ime klase

članske varijable klase


Deklaracija klase

▪ Članske varijable mogu biti deklarirane bilo gdje u klasi, samo ne u

metodi jer tada više nisu članske varijable klase, nego lokalne

varijable metode!
Deklaracija klase

▪ Metode klase mogu biti definirane unutar i izvan klase.

▪ Za definiranje izvan klase koristimo operator određivanja dosega ::

▪ Navodimo:

povratni tip ime klase :: imeMetode(listu parametara){ }


Deklaracija klase

▪ Metode unutar klase (kao i inače) moraju imati povratni tip ili biti

označene sa void (ako ne vraćaju vrijednost).

▪ Ako vraćaju vrijednost moraju sadržavati ključnu riječ return.

▪ Ukoliko metoda prima parametre mora sadržavati popis svih

parametara i njihovih tipova koji joj se prilikom poziva prosljeđuju.


Vidljivost podataka u klasi

▪ Metode klasa u programskom jeziku C++ imaju tri modifikatora


vidljivosti:
1. public – članske varijable i metode su vidljive svim korisnicima
(klijentima) koji imaju pristup klasi
2. private – članske varijable i metode su vidljive samo metodama
klase u kojoj su definirane
3. protected
Vidljivost podataka u klasi

▪ Ključne riječi za dodjelu prava pristupa (public, private) koriste se


tako da se navedu unutar deklaracije te se završavaju dvotočkom (:)

▪ Sve varijable i metode koje slijede iza navedene ključne riječi


imaju navedeno pravo pristupa do kraja deklaracije ili do početka
nove ključne riječi za pravo pristupa
KONSTRUKTORI I DESTRUKTORI
Konstruktori i destruktori

▪ Konstruktore vežemo uz klase, a to su u biti metode koje


se same pokrenu (ne treba ih pozivati) svaki puta kada mi kreiramo
objekt.

▪ Konstruktor mora biti public.

▪ Istog je imena kao i klasa.


Konstruktori i destruktori

▪ Konstruktori se koriste za inicijalizaciju vrijednosti varijabli.

▪ Destruktori „čiste” memoriju kada varijable – objekti više nisu


potrebni .
KLASE I NIZOVI
Ponovimo - Nizovi

▪ Skup podataka istog tipa možemo pohraniti pod zajedničkim imenom,


a redni broj podatka u tom skupu označiti brojem (indeksom).
▪ Takav način pohrane omogućavaju nizovi (polja) podataka.
▪ Polje je konačni niz podataka istog tipa koji predstavljaju cjelinu.
Ponovimo - Nizovi

▪ Sastoji se od elemenata (članova) polja.


▪ Položaj svakog od elemenata unutar polja određen je cjelobrojnim brojčanim
indeksom koji se zapisuje unutar uglatih zagrada [ ].
▪ Prvi član niza ima indeks 0, a posljednji član indeks za jedan manji od duljine
polja (u gornjem primjeru duljina polja je N), dakle N-1.
Ponovimo - Nizovi

Nizovi

Višedimenzionalni
Jednodimenzionalni
(dvodimenzionalni)
Ponovimo - Nizovi

▪ Niz treba deklarirati kako bi se u memoriji osigurao potreban prostor za


podatke u polju.
▪ Opći oblik deklaracije jednodimenzionalnog polja:

tip_elemenata_niza ime_niza [duljina_niza]


Ponovimo - Nizovi
▪ Ukoliko niz samo deklariramo, bez inicijalizacije vrijednosti svim
elementima automatski se pridružuje vrijednost 0.
▪ Duljina deklariranog niza ne može se mijenjati tijekom izvođenja
programa.
▪ Ako je deklarirana duljina niza veća od broja članova kojima je pridružena
vrijednost, preostalim se članovima pridružuje vrijednost 0.
Ponovimo - Nizovi

C++ ne provjerava granice polja prilikom pristupa elementima polja!!!

▪ Ako se navede prevelik ili negativan indeks, prevoditelj neće javiti pogrešku
i pri izvršavanju programa pristupit će se memorijskoj adresi koja nije u
području rezerviranom za polje.
Ponovimo - Nizovi

▪ Ako se dohvaća element s nepostojećim indeksom, rezultat


je slučajni broj.
▪ Ako se vrijednost pridružuje elementu s nepostojećim indeksom,
vrijednost će se pohraniti u memoriju na mjesto predviđeno za druge
sadržaje što može prouzročiti pogrešan rad programa.
Klase i polja

▪ Polje objekata je polje čiji su elementi tipa klase

▪ Deklaracija:

Ime_Klase ime_Objekza(ime_Polja [broj_Elemenata])


Primjer
Primjer
Primjer
Primjer s
vanjskom
klasom

You might also like