Professional Documents
Culture Documents
Daniel Bele
Filip Tomi
Danijel Kuak, dipl.ing.
Urednik:
Domagoj Ruak, mag.ing.aedif.
Naslov:
OSNOVE JAVA PROGRAMIRANJA ZA ANDROID
Izdanje:
2. izdanje
Struni recenzent:
Ivan Mesic
Lektorica:
Iva Lednicki
Grafiki urednik:
Kreimir Pletikosa, ACE
Nakladnik:
Algebra d.o.o., 2015.
Za nakladnika:
mr.sc. Mislav Balkovi, dipl.ing.
Sva prava pridrana. Niti jedan dio ove knjige ne smije se reproducirati ili prenositi u bilo
kojem obliku, niti na koji nain. Zabranjeno je svako kopiranje, citiranje te upotreba knjige u
javnim i privatnim edukacijskim organizacijama u svrhu organiziranih kolovanja, a bez
pisanog odobrenja nositelja autorskih prava.
CIP zapis dostupan u raunalnom katalogu Nacionalne i Sveuiline knjinice u Zagrebu pod
brojem
ISBN 978-953-322-198-4
Sadraj:
1. Poglavlje: UVOD........................................................................................................................................................ 3
1.1 Povijesni razvoj i osnovna svojstva Jave ........................................................................................................... 4
1.2 Java platforma ................................................................................................................................................... 4
1.2.1 Kako radi Java ............................................................................................................................................... 4
1.3 Razvoj Java programa ....................................................................................................................................... 6
1.3.1 Prevoenje Java aplikacija ............................................................................................................................ 6
1.3.2 Izvravanje Java aplikacija ............................................................................................................................ 7
1.3.3 Appleti ........................................................................................................................................................... 7
1.4 Klase i objekti u Javi kratki uvod ..................................................................................................................... 8
; to je Java
; to je Applet
Str. 4 OSNOVE JAVA PROGRAMIRANJA ZA ANDROID
Osnovna je ideja razvojne skupine bila razviti novi jezik koji bi sintaksom sliio tadanjim
najpopularnijim jezicima (C/C++), ali koji bi s druge strane donio i neka nova svojstva, deficitarna u
tada postojeim jezicima.
Postojalo je 5 osnovnih ciljeva koje je Java kao novi programski jezik trebala dosei. Trebala je,
dakle, biti:
1. jednostavan i objektno orijentiran jezik,
2. neovisna o arhitekturi (portabilna),
3. robusna i sigurna,
4. programski jezik s visokim performansama te
5. interpretirana, vienitna i dinamina.
Moda je jedno od najvanijih svojstava Jave, i svakako svojstvo po kojem je Java poznatija,
portabilnost. Ideja je da se Java aplikacije razvijene na jednom operativnom sustavu mogu
nepromijenjene izvravati i na ostalim operativnim sustavima koji podravaju Javu, tj. koji imaju
instaliranu Java virtualnu mainu (JVM). Na taj je nain uteda vremena i resursa kod razvoja i
odravanja velikih aplikacija na razliitim platformama velika.
Izvorni kd Java programa pie se u datotekama s ekstenzijom .java. Java prevoditelj (javac)
pretvara izvorni kd u objektni kd. Objektni kd esto zovemo i bajt kd, a sastoji se od jedne ili
vie datoteka s ekstenzijom .class. Objektni kd interpretira, odnosno izvrava Java interpreter,
sastavni dio JVM.
1. Poglavlje: UVOD Str. 5
Java izvorni
kod
Java objektni
kd
Objektni kd se
provjerava i
puni u JVM
Java interpreter
izvrava
naredbe i
komunicira s
operativnim
sustavom stroja
Operativni sustav na kojem se
program izvodi
Str. 6 OSNOVE JAVA PROGRAMIRANJA ZA ANDROID
Na poetku pisanja Java programa potreban nam je tekstualni editor. Tu nema nikakvih dodatnih
zahtjeva, prikladan je bilo koji tekstualni editor. Izvorna Java datoteka uvijek ima ekstenziju .java.
Jednom kad je izvorna datoteka kreirana i spremljena, treba ju prevesti. To radimo koristei
naredbu javac koja predstavlja poziv prevoditelju.
javac MojProgram.java
Ovdje je javac poziv prevoditelja koji se nalazi unutar JDK-a, a MojProgram.java je naziv
datoteke s Java izvornim kdom koju elite prevesti.
MojProgram.java - primjer
//MojProgram.java
Napomenimo da pri ovakvom pozivu prevoditelja, gdje ne navodimo putanju do .java datoteke,
pretpostavljamo da se ona nalazi u trenutano aktivnoj mapi.
Za izvravanje objektnog kda koristimo naredbu java koja je takoer dio JDK-a.
java MojProgram
Vrlo je bitno primijetiti jedno vano obiljeje koje nam na prvu ruku moda izgleda i kao
nedosljednost. Kad prevodimo datoteku naredbom javac, obavezno piemo i ekstenziju datoteke
koju prevodimo. Kod pokretanja ne piemo extenziju .class.
1.3.3 Appleti
Osim programa koji se pokreu na prethodno opisani nain, postoje programi pisani u Javi koji se
izvravaju u malo drugaijem okruenju. Primjeri takvih programa su apleti. Apleti se izvravaju
unutar web-preglednika (internetskog preglednika). Tonije, aplet se izvrava unutar JVM-e koja je
instalirana u internetski preglednik (tzv. Java 2 plugin). Ideja apleta je dati internetskim
stranicama dinamiku, omoguiti im da mogu imati vie funkcionalnosti od istog prikazivanja teksta
i grafike. Aplet se ne pokree kao standardne java aplikacije koristei naredbu java, nego se
ucjepljuje unutar HTML stranice koristei odgovarajuu oznaku (engl. tag). Kad korisnik u
internetski preglednik utipka adresu neke internetske stranice koja sadrava i aplet, skupa se s
ostalim resursima (slike, javascript datoteke itd.) s web-posluitelja skida i objektni kd (.class
datoteka) apleta te se, ako preglednik ima instaliran Java plugin, aplet poinje izvravati unutar
preglednika.
MojAplet.java primjer:
//MojAplet.java
import javax.swing.JApplet;
import java.awt.Graphics;
Ovdje neemo ulaziti u detalje, dovoljno je zasad znati da je ovo primjer apleta za koji imamo
mogunost prikazivanja unutar internetskog preglednika. Da bismo to mogli, treba nam i HTML
stranica koja ukljuuje aplet. To se radi pomou predefiniranog HTML taga <applet>. Potpuno je
nebitno o kojem je pregledniku rije, bitno je samo da je on Java enabled, tj. da ima ucijepljenu
Java virtualnu mainu.
Str. 8 OSNOVE JAVA PROGRAMIRANJA ZA ANDROID
<html>
<head>
<title>Stranica sa ucijepljenim apletom</title>
</head>
<body>
<h1>Stranica sa ucijepljenim apletom</h1>
<applet code="MojAplet.class" width="800" height="600" />
</body>
</html>
Java je objektno orijentiran programski jezik. To je izjava koju ete uti ili proitati gdje god se
susreli s Javom. U ovom poglavlju neemo ii u detalje, ali emo pokuati u kratkim crtama poblie
pojasniti osnovne ideje objektno orijentirane paradigme primijenjene u Javi. Ako ste ve upoznali to
podruje, ovo e biti dobar podsjetnik i uvod u sljedea poglavlja, a ako niste, ovo je dobro mjesto
za uenje osnovnih ideja. U nekim emo od sljedeih poglavlja pojedine aspekte ove teme
detaljnije obraditi.
Jedno od osnovnih pitanja koja se postavljaju vezano za ovu temu jest pitanje zato uope postoji
objektno orijentirano programiranje, tj. zato uope primijeniti objektno orijentirani pristup ako su se
problemi rjeavali i prije pojave tih jezika?
Kad programirate u nekom od jezika koji ne koristi objektno orijentirani pristup, rjeenje je svakog
problema vie-manje izraeno u terminima brojki i slova, osnovnih vrsta podataka kojima
manipulirate u programu. U objektno orijentiranim jezicima pristup je drugaiji. Vi moete definirati
tipove podataka koji su relevantni upravo za problem koji rjeavate. Problem rjeavate koristei
pojmove i objekte iz stvarnog svijeta. Na primjer, ako se problem koji rjeavate tie studenata na
fakultetu, onda su potencijalni tipovi, odnosno objekti s kojima ete raditi u vaem Java programu
1. Poglavlje: UVOD Str. 9
Student, Kolegij, Ispit, Prijavnica itd. S druge strane, ako rjeavate problem u odjelu
raunovodstva, onda su oigledni kandidati za objekte u vaem programu Raun, Ponuda, itd.
Objekti su svuda oko nas. Studenti, kolegiji, automobili, biljke, ivotinje, mobiteli, rauni sve su to
primjeri nekih objekata. Kad kaemo student, mislimo openito, mislimo na skup svojstava koja
opisuju sve studente. Primjeri tih svojstava su broj indeksa, datum roenja, adresa stanovanja,
zavrena srednja kola. Nain na koji se u objektno orijentiranim okruenjima opisuje taj skup
zajednikih svojstava realnih entiteta je klasa.
Klasa je specifikacija, odnosno predloak koji definira svojstva koja opisuju odgovarajuu vrstu
objekata. Tako emo u klasi Student pokuati opisati zajednika svojstva svih studenata koji su
nam bitni u kontekstuproblema koji rjeavamo. Klasa se kroz sam programski jezik implementira
kao dio programskog kda. Ne postoji pravilo koje kae to se stavlja u klasu, a to ne. Kljuni
pojam koji se vee za definiranje klasa je apstrakcija. Apstrakcija znai odvajanje bitnog od
nebitnog u smislu konteksta problema koji rjeavamo. Konkretno, ako razvijamo poslovnu
aplikaciju koju e koristiti fakultet, tada je broj indeksa studenta nama bitna stvar, dok nas broj
otkucaja srca studenta ne zanima. Zato? Zato jer je to za na konkretan kontekst nebitna
informacija, dok bi ta (ista) informacija bila bitna u medicinskoj aplikaciji. Mi smo ti koji definiramo
klase tako da to najbolje odgovara problemu koji rjeavamo.
//Student.java
class Student {
//definicije svojstava studenta visoke kole
//koja svojstva ima student na visokoj koli ovisi
//o aplikaciji koja se razvija
int brojIndeksa;
String ime;
String prezime;
}
Klasama emo se detaljnije baviti u 6. poglavlju, iako e svi primjeri i prije toga koristiti klase jer
druge mogunosti i nemamo; svaki Java program mora kreirati barem jednu klasu. Osnovni
pojmovi o klasama navedeni u ovom poglavlju biti e sasvim dovoljni za razumijevanje materije do
poglavlja 6.