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

UVOD U JAVA

PROGRAMSKI JEZIK
Predavač: mr.sc.Dragan Mlakić, dipl.ing.el.

Predavanje 6
Sadržaj
• Klase i objekti
• Konstrukcija i inicijalizacija objekta
• Uklanjanje objekta
• Skrivanje podataka i enkapsulacija
• Ključna riječ this
Klase i objekti
• Klasa je opis svih objekata pripadnika te klase.
• Klasa je šablon za kreiranje objekata.
• Parametri klase mogu biti statički ili nestatički.
• Statički pripadaju samo i jedino klasi te su isti za svaki instancirani
objekt te klase
• Nestatički je jedinstven
za svaki instancirani
objekt te klase
Klase i objekti
• Kako za parametre ista pravila važe za metode, statičke i nestatičke.
• Ključna riječ je „static”.
• Parametri definiraju stanje klase, dok metodi definiraju ponašanje
klase.
• Kreiranjem klase uvodi se novi tip podatka u program.
• Objekti se kreiraju u posebnom dijelu memorije nazvan „heap”.
• Pokazivač na lokaciju u heapu je referenca
Klase i objekti
• Ako je potrebno osloboditi memoriju koju objekt zauzima onda mu
dodijelimo vrijednost „null”.
Konstrukcija i inicijalizacija objekta

• Konstrukcija objekta se sastoji od dva koraka: rezerviranje dovoljno


mjesta u heap memoriji za smještanje objekta, dodjeljivanje
vrijednosti njegovim parametrima.
• Podrazumijevana dodjela vrijednosti je uvijek 0.0, 0, false, \u0000,
null.
Konstrukcija i inicijalizacija objekta
• Za instanciranje parametara i dodijelu njihovih vrijednosti koristi se
„konstruktor” metoda unutar klase sa isim imenom kao klasa.
• Ime konstruktora mora biti isto kao ime klase u kojoj je definiran.
• Dozvoljeni modifikatori su: public, private i protected.
• Ne vraća nikakvu vrijednosti.
Konstrukcija i inicijalizacija objekta
Konstrukcija i inicijalizacija objekta
• Korištenjem konstruktora se :
locira dovoljno memorijskog prostora da se navedena klasa može
smjestiti.
Inicijaliziraju se objektna polja tog objekta sa dodijeljenom ili
podrazumijevanom vrijednošću.
Najprije se eventualni ulazni argumenti izračunaju na ulazu poziva
konstruktora, potom blok naredbi unutar tijela metoda
Referenca na konstruisani objekt se vraća kao rezultat.
Uklanjanje objekta
• Uklanjanje objekta iz memorije se događa automatski.
• Preduvjet za uklanjanje objekta iz memorije jeste ne postojanje
nijedne varijable koja ima vezu sa njim u memoriji.
• Uklanjanje veze prema objektu u memoriji se vrši dodjeljivanjem
vrijednosti „null” na ime objekta

• Nuspojave garbage collectora: viseći pokazivači, curenje memorije


Skrivanje podataka i enkapsulacija
• Skrivanje pristupa parametrima neke klase.
• Enkapsulacija je skrivanje svih parametara klase pod deklaracijom
„private”
• Pristup tim parametrima se omogućava jedino preko „public” metoda
te klase.
• Enkapsulacija čuva integritet načina implementacije klase, mijenjanje
stanja klase se može raditi samo na kontroliran način.
Skrivanje podataka i enkapsulacija
• Metode koje dohvaćaju vrijednosti
Skrivanje podataka i enkapsulacija
• Metode koje dohvaćaju vrijednosti parametara i počinju sa „get” se
generalno nazivaju geteri
• Metode koje postavljaju vrijednost parametra i počinju sa „set” se
generalno nazivaju seteri.
• Geteri i seteri nisu ograničeni samo na dohvaćanje i postavljanje. Korisnost
se ogleda u provjerama, brojačima, petljama i pozivima drugih metoda
drugih klasa.
Ključna riječ „this”
• Ključna riječ „this” pravi jasnu razliku između globalnih i lokalnih
varijabli neke klase.
• Jasna razlika u nekim klasama je veoma bitna zbog deklaracija
operacija nad varijablama koje imaju ista imena.
Ključna riječ „this”
Zadatak 1

• Napraviti tri klase: karta, spil i IzlistajSpil. Klasa karta definira kartu sa
njenim parametrima te je zaključava kakva jeste. Klasa spil slaze karte
u spil te ih pamti za listanje. Klasa IzlsitajSpil ispisuje karte iz spila na
ekran.
Pitanja
• ??????

You might also like