240 likes | 410 Views
Programski jezici. proleće/leto 2009. Šta je objekat?. Stvar koja ima jedinstveni identitet Sve je objekat ... Identitet objekta: Obeležja (atributi) objekta Mogućnosti (ponašanje) objekta. Dejan Živković. Programski jezici. 2. Šta je klasa?.
E N D
Programski jezici proleće/leto 2009
Šta je objekat? Stvar koja ima jedinstveni identitet Sve je objekat ... Identitet objekta: Obeležja (atributi) objekta Mogućnosti (ponašanje) objekta Dejan Živković Programski jezici 2
Š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 obeležja i mogućnosti koje poseduju svi objekti klase Dejan Živković Programski jezici 3
Šta je klasa? Analogija građevinski 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 4
Šta je klasa? U OOP se pišu klase, a objekti se ne opisuju nego se konstruišu na osnovu klasa Instanca (primerak) klase = objekat Konstruisanje objekta = instanciranje odgovarajuće klase Java programi se sastoje isključivo od klasa, pa se sve mora nalaziti unutar klasa (primer: Zdravo.java) Dejan Živković Programski jezici 5
Š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(); Dejan Živković Programski jezici 6
Šta je klasa? brojSpratova=3 brojSpratova=1 brojSpratova=2 boja= "bela" boja= "siva" boja= "plava" adresa= " ... " adresa= " ... " adresa= " ... " dozidajSprat() dozidajSprat() dozidajSprat() vila mojaKuća koliba Dejan Živković Programski jezici 7
Š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 (statičke) promenljive i metodi Dejan Živković Programski jezici 8
Š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 sva obeležja i mogućnosti postojeće klase Programski jezici
Šta je nasleđivanje? Kuća PoslovnaKuća StambenaKuća Zgrada Soliter Dvorac Programski jezici
Š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
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
Š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
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
Paketi • Java platforma sadrži veliki broj klasa koje su grupisane u pakete Programski jezici
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
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
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
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
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
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
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
Struktura Java programa javac Restoran.java ... javac Račun.java java Restoran Programski jezici