You are on page 1of 21

Visoka tehnika kola Ni

Studijski program: Savremene raunarske tehnologije

Internet programiranje (3)

Java Osnove
dr Zoran Velikovi, dipl. in. el.
Oktobar, 2012. http://www.youtube.com/watch?v=QMV45tHCYNI&feature=relmfu

Java: Osnove

Java je programski jezik razvijen od strane James-a Gosling-a u kompaniji Sun Microsystems. Prva verzija Jave je objavljena 1995. Java se smatra najbre rastuom programskom tehnologijom svih vremena. Java Development Kit (JDK) je skup razvojnih softvera besplatno raspoloivih zahvaljujui firmi Sun Microsystems. Deo laboratorijskih vebi se izvodi JDK-om. Download JDK-a je mogu sa sajta: java.sun.com. Ecllipse je besplatno, generiko integrisano razvojno okruenje, koje se moe koristiti i za razvoj Java aplikacija. Da bi Ecllipse prilagodili za rad u Javi, treba u njega integristai JDK, ime se formira integrisanom razvojno okruenje (drugi ciklus lab. vebi se izvodi u ovom okruenju).

Java: Karakteristike

Javu karakterie jednostavanost i slinost sa C-om, C++-om a naroito sa C#. Bezbednost: Jave je izuzetno bezbedan programski jezik jer se izvrava u Javinoj viruelnoj maini (JVM okruenju). Prenosivost: Radi na svim OS, ostvaren veni san svih programera. Objektno orijentisan (OO): zasnovan na klasama. Vienitno programiranje: Preuzima deo posla op. sistemu! Nezavisnost od platforme: Napii jednom-izvravaj bilo gde i bilo kada, jo jedan san programera! Distribuirane aplikacije: Lako upravlja TCP/IP protkolima, i pristupa udaljenim metodama. Dinamine aplikacije: Razreavanje pristupa objektima u trenutku izvravanja (o tome neto kasnije).

Java i OOP

OO programiranje razlikuje dva koncepcijska modela:


Realizacija programa oko naredbi: process-oriented Realizacija programa oko podataka: object-oriented

Apstrakcija je proces zanemarivanje detalja da bi se uoila funkcija. Primer automobila: niko ga ne zamilja kao skup od 10000 delova! Automobil se prihvata kao dobro definisan objekat koji se ponaa na jedinstven nain. Apstrakcija omoguava da se prevezete na odredite ne optereijui se sloenou mehanizma samog automobila. SVAKI java program je OO! Sloene programske strukture i podaci su zapakovani u klase kojima se pristupa na strogo definisan nain.

Java: Kapsuliranje (1)


Kapsuliranje je mehanizam koji povezuje podatke i naredbe sa kojima one rade. Kapsulirani kod pravi zatitnu auru oko podataka i naredbi nedozvoljavajui proizvoljan pristup. Pristup kapsuliranim podacima i naredbama je strogo definisano. Primer iz automobila: Menja brzina se moe altati samo preko ruice menjaa, i to nema uticaja na migavce automobila! Osnova kapsuliranja u JAVI je klasa (engl. class). Zapamtite: Klase definiu nove tipove podataka! Programski kod i podaci u klasi se nazivaju lanovima klase (engl. class member). Procedure (funkcije u proceduralnom programiranju) u OO programiranju koje rade sa podacima nazivaju se metode.

Java: Kapsuliranje (2)


Podaci se nazivaju lanovi promenljive. Klasa definie strukturu i zajedniko ponaanje objekta (nastalog iniciranog od klase). Objekti su inicirani primerci klase (kae se jo i instance klase). Klase uobiajeno imaju javni i privatni deo. Javni deo klase je dostupan spoljnim korisnicima (engl. public) Privatni deo klase je dostupan samo lanovima klase. Na ovaj nain se kapsulira sloenost programske strukture i podataka. Istovremeno se na ovaj nainm obezbeuje zatita od zlonamernog pristupa podacima ili metodama.

Java: nasleivanje (1)


Nasleivanje (engl. inheritance) je proces kojim jedan objekat nasleuje sve osobine drugog. Ovaj koncept nasleivanja podrazumeva hijerahijsku klasifikaciju objekata. Bez postojanja hijerarhije svakom objektu bi morali iznova zadavati sve njegove karakteristike. Sa konceptom nasleivanja dovoljno je samo definisati specifine karakteristike tog objekta koje e ga initi jedistvenim u klasi, ali sa svim prethodno definisanim (prihvatljivim) karakteristikama. Opta svojstva objekti nasleuju od svojih roditelja. Pogledajmo na sledeem slajdu ilustrovan koncept nasleivanja primenjen u OO programiranju.

Java: Nasleivanje (2)


PAS Boja Boja oiju Visina Duina Teina Lei Protresi se Doi Sedi
Metode (komande) Osobine (svojstva)

PAS Siva, Bela, ... Braon, Plava,... 30 cm 100 cm 15kg Lei Protresi se Doi Sedi

Klasa

Instanca

Java: Instance

Java: Polimorfizam

Polimorfizam predstavlja isti nain pristupa za optu klasu akcija. Prevodilac odreuje koju metodu e zaista pozvati u zavisnosi od konteksta! Ovo ima za posledicu smanjenje sloenosti programskog koda. Primer: Korienja ula mirisa kod psa.

Jednim isti ulom on razlikuje maku ili hranu!

Tokom vremena moe se menjati unutranja konstrukcija klase ne remetei kod koji se oslanja na javni interfejs klasa. Koncept Jave je slino kao i C# zasnovan na specijalizovanom izvrnom okruenju JVM. Pogledajmo na sledeem slajdu koncept na kome Java zasnovana.

Java: Izvrno okruzenje

Java: Virtualna maina


jvm

Java: Bytecode

Java programi se pre izvravanja prevode u meukod koji se naziva bajt-kod (engl. bytecode). Bytecode je isti bez obzira na kompjutersku platformu na kojoj se izvrava (i hardversku i softversku). Bytecode se prevodi u izvrni kod procesora i tek tada se moe izvriti u okruenju programa domaina: Java Virtual Machine (JVM). Bytecode se moe izvriti na svakom raunaru koji poseduje JVM. Dakle na svakoj raunarskoj platformi treba imati instaliranu JVM za:

Odreni procesor i Odreeni operativni sistem.

JVM je posebno napisan za svaku raunarsku platformu!

Java
R A Z V O J N E F A Z E

Java: Setovanje J2SE 5

Javac: Konzolni kompajler


DOS prozor

Java: .java i .class datoteke


Izvorni kod, .java

Bajt kod, .class

Java: izvrenje programa


Izvravanje sa komandne linije: java HelloApp DOS prozor

Komandna linija Rezultat izvravanja

Java-prvi program

Sve je u klasama, pa i sama aplikacija (HelloApp)!


Startna metoda

class HelloApp { public static void main ( String[] args ) { System.out.println("Hello World!"); } }
Specifikator pristupa Tip podataka koje vraa metoda main() Parametri komandne linije

Klasa HelloApp

Java: Analiza programa


Class Helloapp Program poinje pozivom metode main() Specifikator pristupa: public Metoda main() ne vraa vrednost void Parametri komandne linije String[] args Na ekranu ispisuje tekst: Hello world System.out.println("Hello World!");
println naredba iz prostora imena System.out

Java: Prostor imena


U Javi se definiu prostori imena u kojima se smetaju metode i podaci koji se koriste u odgovarajuoj klasi. Ovo znai da metode mogu imati ista imena ako pripadaju razliitim imenskim prostorima. Da bi se definisalo koja se metoda tano poziva mora se navesti hijerarhijski pristup preko prostora imena (paketa).

Umesto: println("Hello World!"),

pie se: System.out.println("Hello World!").

You might also like