1 / 28

proleće/leto 2008

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 )

bin
Download Presentation

proleće/leto 2008

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programski jezici proleće/leto 2008

  2. Šta je objekat? Promenljive (podaci) Metodi (ponašanje) Programski jezici

  3. Šta je objekat? Auto bela boja ugasi 4 vrata upali koči brzina 90 km/s promeni brzinu Programski jezici

  4. Š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) Programski jezici

  5. Š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 Programski jezici

  6. Šta je poruka? • Objekti komuniciraju slanjem poruka promeniBrzinu(3) bmw Pera Programski jezici

  7. Š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 Programski jezici

  8. Š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 Programski jezici

  9. Š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 Programski jezici

  10. Šta je klasa? • U OOP se pišu klase, a objekti se ne opisuju nego se stvaraju na osnovu klasa • Instanca (primerak) klase = objekat • Stvaranje objekta = instanciranje odgovarajuće klase • Java programi se sastoje isključivo od klasa, pa se sve mora nalaziti unutar klasa (primer: Kuća.java) Programski jezici

  11. Šta je klasa? public class Kuća { private intbrojSpratova; 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(); Programski jezici

  12. brojSpratova=3 brojSpratova=1 brojSpratova=2 boja= "bela" boja= "siva" boja= "plava" adresa= " ... " adresa= " ... " adresa= " ... " dozidajSprat() dozidajSprat() dozidajSprat() Šta je klasa? vila mojaKuća koliba Programski jezici

  13. Š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 Programski jezici

  14. Š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 Programski jezici

  15. Šta je nasleđivanje? Kuća PoslovnaKuća StambenaKuća Zgrada Soliter Dvorac Programski jezici

  16. Šta je nasleđivanje? public class StambenaKuća extends Kuća { private intbrojStanova; ... public void okreči(); } ... StambenaKuća k1 = new StambenaKuća(...); StambenaKuća k2 = new StambenaKuća(...); Programski jezici

  17. k1 brojSpratova=5 boja= "žuta" adresa= " ... " dozidajSprat() brojStanova=20 okreči() Šta je nasleđivanje? k2 brojSpratova=10 boja= "zelena" adresa= " ... " dozidajSprat() brojStanova=50 okreči() Programski jezici

  18. Š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 Programski jezici

  19. java.lang java.util java.io java.net java.awt java.applet Paketi • Klase 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 klasa • Osnovni paketi: Programski jezici

  20. Paketi • Java platforma sadrži veliki broj klasa koje su grupisane u pakete Programski jezici

  21. Paketi • 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 Programski jezici

  22. Korišć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(); Programski jezici

  23. Korišć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(); ... } Programski jezici

  24. Korišć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 Programski jezici

  25. Pravljenje 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) Programski jezici

  26. Pravljenje paketa package mojpaket; import java.util.*; class MojaKlasa { ... } • Datoteka MojaKlasa.javase mora nalaziti u direktorijumumojpaket koji se pravi u korenskom direktorijumu programa • Prevođenje klase MojaKlasa se mora obaviti iz korenskog direktorijumaprograma : “korenski direktorijum”>javac mojpaket\MojaKlasa.java Programski jezici

  27. Struktura 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 Programski jezici

  28. Struktura Java programa javac MyProgram.java ... javac Hat.java java MyProgram Programski jezici

More Related