View
42
Download
0
Category
Preview:
DESCRIPTION
Programski jezici. proleće/leto 2008. Šta je objekat?. Promenljive (podaci). Metodi (ponašanje). Šta je objekat?. Auto. bela boja. ugasi. 4 vrata. upali. koči. brzina 90 km/s. promeni brzinu. Šta je objekat?. Enkapsulacija (učaurivanje ) - PowerPoint PPT Presentation
Citation preview
proleće/leto 2008
Dejan Živković Programski jezici 2
Šta je objekat?Šta je objekat?
Promenljive(podaci)
Metodi(ponašanje)
Dejan Živković Programski jezici 3
Šta je objekat?Šta je objekat?
bela boja
upali
ugasi
promenibrzinu
koči
4 vrata
brzina 90 km/s
Auto
Dejan Živković Programski jezici 4
Šta je objekat?Šta je objekat?
Enkapsulacija (učaurivanje) ○ Podaci objekta su učaureni u centru
objekta, a okružuju ih metodi koji ih skrivaju od drugih objekata
○ Pristup učaurenim podacima se vrši preko specijalnih metoda
○ Učaureni podaci su zaštićeni od neželjenih izmena spolja (izvan čaure)
Dejan Živković Programski jezici 5
Šta je objekat?Šta je objekat?
Prednosti enkapsulacije ○ Modularnost
• Izvorni kod za jedan objekat se može pisati nezavisno od drugih objekata
○ Skrivanje informacija• Objekat ima javni interfejs koji drugi objekti mogu
koristiti za komunikaciju sa njim. Privatne promenljive i metodi objekta se mogu promeniti bez uticaja na druge objekte
Dejan Živković Programski jezici 6
Šta je poruka?Šta je poruka?
Objekti komuniciraju slanjem poruka
Pera bmw
promeniBrzinu(3)
Dejan Živković Programski jezici 7
Šta je poruka?Šta je poruka?
Tri dela poruke ○ Objekat primalac poruke (bmw)○ Ime metoda koji objekat primalac treba
da izvrši (promeniBrzinu)○ Dodatni parametri metoda koji su
potrebni (3)Poziv funkcije (procedure) kod
proceduralnih jezika
Dejan Živković Programski jezici 8
Šta je klasa?Šta je klasa?
Klasa je opis objekata sa zajedničkim svojstvima
Klasa definiše šablon za stvaranje objekata za zajedničkim svojstvima
Klasa definiše atribute i ponašanja koje poseduju svi objekti napravljeni na osnovu klase
Dejan Živković Programski jezici 9
Šta je klasa?Šta je klasa?
Analogija ○ nacrt kuće na papiru = klasa○ izgrađena kuća = objekat○ na osnovu jednog nacrta kuće se može
izgraditi više kuća = na osnovu jedne klase se može napraviti više objekata
Dejan Živković Programski jezici 10
Šta je klasa?Šta je klasa?
U OOP se pišu klase, a objekti se ne opisuju nego se stvaraju na osnovu klasa
Instanca (primerak) klase = objekatStvaranje objekta = instanciranje
odgovarajuće klaseJava programi se sastoje isključivo od
klasa, pa se sve mora nalaziti unutar klasa (primer: Kuća.java)
Dejan Živković Programski jezici 11
Šta je klasa?Šta je klasa?public class Kuća { private int brojSpratova; private String boja; private String adresa; ... public void dozidajSprat();}...Kuća vila = new Kuća(...);Kuća mojaKuća = new Kuća(...);Kuća koliba = new Kuća(...);Vila.dozidajSprat();
Dejan Živković Programski jezici 12
Šta je klasa?Šta je klasa?
vila mojaKuća koliba
brojSpratova=3
boja= "bela"
adresa= " ... "
dozidajSprat()
brojSpratova=2
boja= "plava"
adresa= " ... "
dozidajSprat()
brojSpratova=1
boja= "siva"
adresa= " ... "
dozidajSprat()
Dejan Živković Programski jezici 13
Šta je klasa?Šta je klasa?
Objektne (instancne) promenljive (polja): brojSpratova, boja, adresa
Objektni (instancni) metodi: dozidajSprat()
Svaki napravljeni objekat ima svoje kopije objektnih promenljivih
Objektni metodi se moraju pozivati uz objekat na koji se odnose
Klasne promenljive i metodi
Dejan Živković Programski jezici 14
Šta je nasleđivanje?Šta je nasleđivanje?
Način za formiranje novih klasa od postojećih
Nasleđivanjem se uspostavlja hijerarhijska relacija između srodnih klasa
Nova klasa proširuje postojeći klasu i nasleđuje sve atribute i ponašanja postojeće klase
Dejan Živković Programski jezici 15
Šta je nasleđivanje?Šta je nasleđivanje?
Kuća
StambenaKuća PoslovnaKuća
Zgrada Soliter Dvorac
Dejan Živković Programski jezici 16
Šta je nasleđivanje?Šta je nasleđivanje?public class StambenaKuća extends Kuća { private int brojStanova; ... public void okreči();}...StambenaKuća k1 = new StambenaKuća(...);StambenaKuća k2 = new StambenaKuća(...);
Dejan Živković Programski jezici 17
Šta je nasleđivanje?Šta je nasleđivanje?k1
brojSpratova=5boja=
"žuta"adresa= " ... "dozidajSprat()
brojStanova=20
okreči()
k2
brojSpratova=10boja=
"zelena"adresa= " ... "dozidajSprat()
brojStanova=50
okreči()
Dejan Živković Programski jezici 18
Šta je nasleđivanje?Šta je nasleđivanje?
Terminologija○ Bazna klasa — klasa koja se proširuje○ Izvedena (proširena) klasa — nova klasa
Bazna klasa = natklasa, klasa-roditelj
Izvedena (proširena) klasa = potklasa, klasa-dete
Dejan Živković Programski jezici 19
PaketiPaketiKlase su organizovane po paketima,
analogno odnosu datoteka i direktorijuma u okviru fajl-sistema
Paket je kolekcija klasa koje čine srodnu celinu (namenjenih jednoj vrsti posla)
Paketi čine biblioteke klasaOsnovni paketi:
java.lang java.util java.io java.net java.awt java.applet
Dejan Živković Programski jezici 20
PaketiPaketiJava platforma sadrži veliki broj klasa
koje su grupisane u pakete
Dejan Živković Programski jezici 21
PaketiPaketi
Paketi olakšavaju nalaženje i korišćenje klasa
Paketi sprečavaju konflikte imena klasa, jer različiti paketi mogu da sadrže klase sa istim imenom
Paketi omogućavaju kontrolu pristupa klasama
Dejan Živković Programski jezici 22
Korišćenje paketaKorišćenje paketa
Pri pisanju neke klase, mogu se jednostavno koristi samo klase iz istog paketa
Klase iz drugog paketa se mogu koristiti uz navođenje punog imena:
java.util.Date v = new java.util.Date();
Dejan Živković Programski jezici 23
Korišćenje paketaKorišćenje paketa
Deklaracija import “uvozi” pojedine klase iz nekog paketa
Navodi se pre početka teksta klase
import java.util.Date; class MojaKlasa { ... Date v = new Date(); ... }
Dejan Živković Programski jezici 24
Korišćenje paketaKorišćenje paketa
Deklaracija import “uvozi” sve klase iz nekog paketa pomoću džoker-znaka *
Navodi se pre početka teksta klase
import java.util.*; class MojaKlasa { ... Date v = new Date(); ... }
Paket java.lang se automatski uvozi u sve programe
Dejan Živković Programski jezici 25
Pravljenje paketaPravljenje paketa
Svaka klasa mora da pripada nekom paketu
Ako se ništa ne navede, klasa pripada podrazumevanom (anonimnom) paketu
Deklaracija package definiše paket kome pripada neka klasa
Navodi se na samom početku teksta klase (pre deklaracije import)
Dejan Živković Programski jezici 26
Pravljenje paketaPravljenje paketa
package mojpaket; import java.util.*; class MojaKlasa { ... }
Datoteka MojaKlasa.java se mora nalaziti u direktorijumu mojpaket koji se pravi u korenskom direktorijumu programa
Prevođenje klase MojaKlasa se mora obaviti iz korenskog direktorijuma programa :
“korenski direktorijum”> javac mojpaket\MojaKlasa.java
Dejan Živković Programski jezici 27
Struktura Java programaStruktura Java programa
Java program se sastoji od jedne ili više klasa
Izvorni kod svake klase se piše u posebnoj datoteci čije je ime isto kao ime klase
Ekstenzija datoteke Java izvornog koda mora biti .java
Dejan Živković Programski jezici 28
Struktura Java programaStruktura Java programa
javac MyProgram.java
javac Hat.java
...
java MyProgram
Recommended