Click here to load reader

Objekti i klase

  • View
    44

  • Download
    6

Embed Size (px)

DESCRIPTION

Java, Objekti i klase

Text of Objekti i klase

Univerzitet u Novom Sadu

Tehniki fakultet Mihajlo Pupin Zrenjanin

SEMINARSKI RADObjekti i klase

33Ime i prezime studenata: Duan Pani, Angela CiniBroj dosijea: MBI 20/16, MBI 23/13Smer: Informacione tehnologije u e-upravi i poslovnim sistemimaPredmet: E upravaPredmetni nastavnik: prof. dr Miodrag IvkoviPredmetni asistent: mr Dejan Lacmanovi

Zrenjanin, 2014

Sadraj

1.Uvod32.Objekti52.1. Deklarisanje objekata62.2. Brisanje objekata82.3. Reference na objekat103.Klase173.1. Definisanje klasa173.2. Pristupanje lanovima klasa183.3. Polja klasa193.4. Metode klasa203.4.1. Sastav metode213.4.2. Parametrizirane metode213.4.3. Konstruktori213.4.4. Rezervisana re this233.4.5. Sakrivanja atributa klasa preko parametara metoda243.4.6. Sakupljanje smea253.4.7. Metoda finalize253.4.8. Preklapanje metoda263.4.9. Preklapanje konstruktora273.4.10. Prenos argumenata metoda273.4.11. Kljuna re static294.Zakljuak325.Literatura33

1. Uvod

Java je objektno orijentisani programski jezik, iji je tvorac James Gosling iz Sun Microsistems-a. Objektno orijentisano programiranje (OOP) je pristup realizaciji softvera kao modela realnog sveta. U OOP-u se u problemu identifikuju objekti koji neto rade i apstrakcije koje predstavljaju skupove objekata istih svojstava. Objekat ima svoje unutranje stanje ija je realizacija nedostupna drugim objektima i operacije (akcije) koje se nad njim mogu vriti spolja. Objekti meusobno sarauju izvravanjem operacija. Java je zamiljena kao jednostavan, platformski nezavistan jezik namenjen pokretanju elektroskih ureaja kao to su interaktivna TV, inteligentne rerne, telefoni i sline naprave. Eksplozijom web-a 1994. godine ininjeri Sun-a ugrauju Javu u web browser WebRunner, a poetkom 1995. objavljuju izvorni kod i dokumentaciju na internetu. Java postaje sve popularniji programski jezik zbog sledeih svojstava: Objektna orijentacija - Java je objektno orijentisani jezik koji podrava sve koncepte OO programiranja. Njena sintaksa nalikuje sintaksi C++ jezika, ali su iz nje izbaeni sloeni koncepti C++ za koje se smatralo da zbunjuju programere ili prave probleme. Prenosivost - Java izvorni programi se prevode u takozvani bajt kod koji nije mainski jezik nijednog konkretnog raunara, ve se izvrava na Java Virtuelnoj Maini (VM). Java Virtuelna Maina je virtelni raunar koji moe biti simuliran na bilo kojem raunaru. Time je postignuto da Java programi mogu da se izvravaju na raznim platformama bez potrebe za prepravljanjem. Java stranice se mogu prenositi sa jedne platforme na drugu, ili promeniti Web server, ponaanje aplikacije e biti potpuno isto. Prirodna prilagoenost internetu - Java programi mogu da se izvravaju u Web browserima, poseduje sigurnosne mehanizme, njeni delovi koda mogu u realnom vremenu da se distribuiraju i izvravaju na razliitim mainama, podrava konkurentno programiranje i njene predefinisane klase za korisniki interfejs (API) omoguuju jedinstven izgled i korienje aplikacija. Odvojen statiki od dinamikog sadraja: Kada se klijentski sadraj generie u okviru servleta, logika stvaranja dinamikog sadraja je sastavni deo koda servleta. Takoe statiki deo klijentske strane je sakrivena u okviru servleta. Pored oteanog praenja samog koda, nakon svake, pa i najmanje promene, servlet se mora ponovo kompajlirati. Sve ovo prouzrokuje stvaranje aplikacije ija se logika veom ateko razume, a svaka promena zahteva odreeno vreme. Dinamiki sadraj se moe predstaviti u razliitim formatima: Ne postoji pravilo u kom formatu staitiki (template) deo java stranice mora da bude. Tako, da java stranica moe koristiti standardni HTML/DHTML kod koji se moe izvravati pomou browser-a, ili WML kod koji se izvrava na hanheld beinim ureajima, dok novije aplikacije koriste XML kod. Dobijanje Web pristupnog nivoa kod aplikacija n-slojnr arhitekture: Standardna Sunova dokumentacija J2EE TM Blueprints, koja predstavlja glavni vodi za implementaciju sloenih Java aplikacija pomou enterprise Java klasa i JavaBeans, kategorino preporuuje korienje JSP stranica u odnosu na servlete za generisanje klijentske strane aplikacije. Potpuna usklaenost sa servlet tehnologijom: Za svakog servlet programera, potrebno je veoma malo truda i vremena za razumevanje JSP tehnolgije. U stvari, servlet programeri su u velikoj prednosti, jer je su JSP stranice u stvari servelti pisani na velikom nivou apstrakcije. Sve to se moe uraditi sa servletima, moe i pomou JSP stranica, ali mnogo jednostavnije!Java kod prevodi se u u tzv. bytecode kojeg pokree operativni sistem, drugi program ili ureaji pomou Java prevodioca. Bytecode nije izvrni kod, ve visokooptimizirani skup instrukcija dizajniran za izvravanje unutar Java izvrnog sistema koji se naziva Java Virtual Machine JVM koji je prevodilac za bytecode.

2. Objekti

U objektno-orijentisanom programiranju osnovnu ulogu imaju objekti koji sadre i podatke i funkcije (metode). Program se konstruie kao skup objekata koji meusobno komuniciraju. Podaci koje objekat sadri predstavljaju njegovo stanje, dok pomou metoda on to stanje moe da menja i komunicira sa drugim objektima.Klasa je osnovna jedinica programiranja u Javi. Klase obezbeuju strukturu objekata, kao i mehanizme za proizvodnju objekata, na osnovu datih definicija u klasi. Klase definiu metode, skupove izvrivog koda, koje izraunavaju podatke i njima upravljaju unutar objekta. One obezbeuju ponaanje objekata klase.Grady Booch, jedan od pionira objektno orijentisanog programiranja koristi sledeu definiciju objekta: Objekat ima stanje, ponaanje i identitet. Struktura i ponaanje slinih objekata su definisani njihovom zajednikom klasom. Stanje nekog objekta obuhvata sve statike (nepromenljive) osobine objekta, zajedno sa trenutnim vrednostima dinamikih osobina. injenica da svaki objekat ima stanje implicira da svaki objekat zauzima neki prostor, bilo da je re o stvamom svetu, ili o memoriji raunara. Nijedan objekat ne postoji samostalno. Objekti komuniciraju sa drugim objektima. U skladu sa tim moemo rei, da ponaanje pokazuje kako se objekti ponaaju i reaguju, u smislu promene njihovog stanja i razmene poruka. Drugim reima ponaanje objekta predstavlja njegove vidljive aktivnosti. Operacija predstavlja neku akciju koju jedan objekat obavlja da bi od drugog izmamio reakciju. Klijent na primer, moe pozvati operaciju length, koja vraa vrednost koja oznaava duinu nekog objekta. Identitet je osobina objekta koja ga razlikuje od svih drugih objekata. U programiranju posebnu panju treba obratiti na razliku izmeu imena objekta i samog objekta. Mogu postojati (esto i postoje) vie imena za isti objekat, ali to ne znai da su u pitanju razliiti objekti. Objekat: ima podatke ima metode ima jedinstvenu adresu u memoriji predstavlja instancu neke konkretne klaseObjekti predstavljaju osnovni koncept objektno-orijentisane paradigme u modelovanju sistema. Svaki objekat realnog sistema koga posmatramo predstavljamo odgovarajuim objektom koji je sastavni deo modela sistema. Objekte koji imaju zajednike osobine moemo da opiemo klasom. U tom smislu, objekat je jedna konkretna instanca (primerak) svoje klase. Dakle, klasa predstavlja model objekta koji obuhvata atribute i metode. Klasa definie nov tip podataka. Kada se jednom definie, ovaj novi tip moe da se koristi za pravljenje objekata tog tipa. Prema tome, klasa moe da se definie kao skup objekata koji imaju iste osobine. Odnos klase i objekta je prikazan u sledeem primeru: Automobil predstavlja klasu jer je to opti nacrt nekih karakteristika i ponaanja koje svaki automobil ima. Meutim, Aston Martin DB9 sa godinom proizvodnje 2008 i registracijom BG123-456 predstavlja jedan konkretan primerak automobila tj. objekat klase automobil.

1. Slika: Odnos klase i objekata

2.1. Deklarisanje objekata

Novi objekti se deklariu korienjem kljune rei new. U Javi, objekti se deklariu na slian nain kao i atributi klase. Prvo se navede naziv klase pa onda naziv konkretnog objekta. Na ovaj nain se stvara promenljiva koja e da referencira konkretan objekat: NazivKlase nazivobjekta; Meutim, da bi objekat mogao da se koristi (da se pozivaju njegove metode, menjaju vrednosti atributa itd.), potrebno ga je inicijalizovati. Ako se objektu pokua pristupiti bez inicijalizacije, Java javlja greku. Inicijalizacija se vri korienjem naredbe new na sledei nain: nazivobjekta = new NazivKlase(); ta se zapravo deava kada se incijalizuje objekat? Naime, kada se deklarie objekat (promenljiva), samo se stvori pokaziva koji e da referencira objekat. Ali, kada se izvri incijalizacija, tek se onda alocira deo memorije raunara (deo RAM memorije) u kome e da bude objekat i povee se sa pokazivaem - pokaziva tada sadri adresu objekta u memoriji (Slika 2). Tek sada objekat moe da se koristi.

3. Slika: Inicijalizacija objekta Da bi se pozvao mehanizam deklarisanja objekata, potrebno je zadovoljiti neke uslove koji se tiu deklaracije promenljivih koje e referncirati nove objekte. Postavlja se pitanje koji su to uslovi i koji je mehanizam zaduen za pravljenje objekata. Da bismo odgovorili na ova pitanja, analiziraemo sledei kod, koji odgovara pravljenju novih objekata tipa Student: Student student1 = newStudent(); student1.index= 251; student1.ime= "Ivan"; Student.brojStudenata++;

Student student2 = newStudent(); student2.index= 66; student2.ime= "Bojana"; Student.brojStudenata++;

student1.mentor= student2; student2.mentor= null;U ovom kodu napravljena su dva nova objekta tj, analogno realnoj situaciji, na manifestaciju su prijavljena dva nova studenta. Zatim su im inicijalizovani podaci. Broj studenata se poveava analogono prijavljivanju novih studenata na manifestaciju.Primetiemo da ovo poveanje sada programer unosi runo, a logino bi bilo da postoji automatizovani mehanizam koji bi ovu proceduru izvravao svaki put kada se napravi novi objekat. Uskoro e i ovaj problem biti reen, ali, za sada, hajde da objasnimo detaljnije navedeni kod. Prvo je dekla

Search related