You are on page 1of 10

Internacionalni univerzitet Brko

Fakultet za menadment
Bosna i
Hercegovina
BRKO
DISTRIKT
BOSNE I
HERCEGOVIN
E
Internacionalni
univerzitet
Brko

Osnovne akademske studije

Programski jezik Java


(Seminarski rad)

Predmet: Programski Jezici

Uvod
Moemo tvrditi da svaku od danih podstavaka
prezentira drugaija implementacija Jave. Svaka
od njih ima svojih prednosti kao i ogranienja.
Vano je u ovom trenu razumeti iako Java
programski jezik podrava neke vrste
manifestacija, to ne znai da e pojedina
manifestacija biti doputena ili ak mogua u
svim implementacijama. Gledano s praktine
strane, performansa i sigurnost nam
ograniavaju to danas moemo napraviti unutar
Java programskog okruenja.
Sta je Java?
injenica koja nam oteava jednostavno
definiranje ovog pojma je ta da je Java u biti
puno razliitih stvari. Osim toga, pravi
potencijal Jave u mnogome ovisi o kojoj Javi u
biti govorimo.
Za Javu danas moemo rei da je:
1. specifikacija programskog jezika i standardni
zbir klasa
2. implementacija navedenog programskog
jezika i njegovih prateih datoteka (libraries) u
okolici prevoenja i izvoenja (compile and run
time enviroment) za izradu i izvravanje
aplikacija
3. implementacija navedenog programskog

jezika kao podskup ugraenog koda u HTML


stranicama (applet)
4. implementacija navedenog programskog
jezika kao dodatak animaciji i interakciji kod 3D
objekata i scena (VRML 2.0)

The Java Virtual Machine JVM


Projektanti Jave su se odluili na koritenje
kombinacije kompilacije i interpretiranja.
Programi pisani u Javi se prevode jezik, ali u
jeziku raunara koje zapravo ne postoji. Ovo
takozvano prividno (virtual) raunar se zove
"Java Virtual Machine".
Jezik za Java Virtual Machine se zove Java
bytecode. Nema razloga zbog kojega Java bajt
kod ne bi mogao biti koriten jezik i nekog
stvarnog raunara, osim ovog prividnog.
Zapravo, Sun Mycrosystems, zaetnik Jave,
razvio je CPU-ove koji izvravaju Java bajt kod
kao svoj jezik.
Ipak, jedna od glavnih prednosti Jave je da
zapravo moe biti koritena na bilo kojem
raunaru. Sve to je na tom raunaru potrebno je
interpreter za Java bajt kod. Takav interpreter
oponaa Java virtual machine na isti nain kao
to prividno raunar oponaa osobno raunara.
mnogi Java programi su namenjeni dohvaanju
preko mree. Ovo vodi do oitih sigurnosnih
pitanja: korisnik ne eli spustiti i pokrenuti
program koji bi mogao naneti tetu njegovom

raunaru ili podacima. Java interpreter slui kao


meuspremnik izmeu korisnika i sputenog
programa. Korisnik zapravo pokree interpreter
koji neizravno izvrava dohvaeni program.
Interpreter moe zatititi korisnika i raunar od
mogue opasnih radnji tog programa.
Java-kao jezik za pisanje aplikacija
Mnogo ljudi misli da Javu koristimo samo kao
dodatak vlastitim Web HTML stranicama tako
da rade interesantne efekte sa slikama ili
raunaju koliko ste dana ili minuta stari.
Meutim, Javu moemo koristiti isto kao C++
za pisanje stand-alone aplikacija. Postupak je
sljedei:
1. prevodimo Java izvorni kod u tzv. bajtni kod
2. izvravamo bajtni kod interpretiranjem unutar
JVM (Javine Virtualne Maine)
Vidimo da je po strukturi implementacije
programskog jezika Java negdje na prilazu
izmeu dosad kristalno jasnih definicija
pojmova kompajler i interpreter. Ona spada u
obje klasifikacije dok uistinu nije potpuno niti
jedna od njih.
Sm bajtni kod je dosta manji od ekvivalentnog
izvrnog koda, recimo, C-a, ali brzina njegovog
interpretiranja daleko zaostaje naspram brzine
izvravanja ekvivalentnih programa pisanih u Cu. Alternativno rjeenje je u koritenju tzv. justin-time interpretiranja, gdje Javina Virtuelna

Maina prebacuje bajtni kod u native kod pre


samog izvravanja. To za manje aplikacije prua
razumnu performansu uz zadranu prenosivost
izvrnog koda.
Meutim, ak i toliko naglaavana prenosivost
moda ne poiva na vrstim temeljima. Iole vee
aplikacije e verojatno usled ogranienja
nametnutih standardnim Java okruenjem biti
prisiljene koristiti vlastita korisnika suelja u
vidu native library datoteka (JNI) ijim se
funkcijama proiruju mogunosti Jave. U tom
sluaju mada je osnovna aplikacija prenosiva,
morat e se prilagoavati od operativnog sistema
do razliitih arhitektura raunala library datoteke
pisane u C/C++-u bez kojih osnovna aplikacija
nee moi raditi.
Osnovna graa programa
Dva su osnovna deela programiranja: podaci i
naredbe. Za rad s podacima potrebno je
razumijevanje varijabli i tipova, a za rad s
naredbama potrebno je razumjeti upravljake
strukture (control structures) i podprograme
(subroutines). Velik deo ovih predavanja
posveen je usvajanju ovih modela.
Osnovni Java program
Program je niz naredbi koje raunar izvrava da
bi obavilo neku zadatak.
Da bi raunar mogao da izvravati naredbe, one
moraju biti pisane na raunaru razumljiv nain,
tj. u programskom jeziku. Programski jezici se

razlikuju od ljudskog po svojoj jasnoi i


strogosti to je u programu dozvoljeno, a to
nije. Pravila koja odreuju to je dozvoljeno
zovu se sintaksa jezika. Sintaksna pravila
odreuju osnovni renik jezika i nain na koji se
programi mogu stvarati koristei petlje, grananja
i podprograme. Sintaksno ispravan program je
onaj koji je mogue kompilirati ili izvriti.
Programi koji sadravaju sintaksne greke e biti
odbaeni uz poruku o greci. Dakle, za postati
uspean programer potrebno je detaljno
poznavati sintaksu koritenog programskog
jezika. Objanjavanje Jave emo poeti na
uobiajen nain: pisanjem programa koji
ispisuje poruku "Hello World!". Naizgled
jednostavan problem, ali ipak vrlo vaan korak u
svladavanju novog programskog jezika
(pogotovo ako vam je to prvi jezik). Potrebno je
da razumete osnovne postupke:
1. unos programskog teksta u raunalo
2. kompiliranje programa i
3. izvravanje kompiliranog programa.
Ovi koraci su razliiti za razna raunala i Java
programerska okruja. U osnovi se taj postupak
svodi na pisanje programa u nekom tekstualnom
editoru i snimanje programa u neku datoteku.
Nakon toga odreenom naredbom se program
kompilira, nakon ega dobivate poruku o
sintaksnim grekama ili kompilirani program. U
sluaju Jave program se kompilira u bajt kod,
Vae programsko okruenje moe obaviti neke

od ovih koraka za vas, ali se u pozadini


zasigurno odvijaju ista tri koraka.
Slijedi program "Hello World!". Ne oekujte da
ete sve razumeti - neke delove ete razumijeti
tek nakon nekoliko lekcija.
/**
* HelloWorldApp klasa implementira aplikaciju koja
* ispisuje "Hello World!" na standardni izlaz.
*/
public class HelloWorldApp {
public static void main(String[] args) {
// Ispii "Hello World!"
System.out.println("Hello World!");
}
}
Kada pokrenete ovaj program poruka "Hello
world!" (bez navodnika) e biti ispisana na
ekranu.
Naredba koja zapravo ispisuje poruku je:
System.out.println("Hello World!"); Ova naredba je
primjer poziva podprograma. Koristi "ugraeni"
podprogram imena System.out.println da bi
obavio zadatak.
Postupak razvoja programa
Tano odrediti problem koji se eli reiti.
Programi se obino piu da bi izvrili odreeni

zadatak, ali zadatak ne mora biti uvek jasan sam


po sebi. Potrebno je prikupiti dodatne podatke
da bi se zadatak mogao tano odrediti. Jasno
odreivanje problema otklanja mogunosti
nesporazuma i olakava postupak razvoja
programa.
Odrediti ulaze koje e program traiti i izlaze
koje e program stvarati.
Ulazi i izlazi programa moraju biti odreeni da
bi se program dobro uklopio s drugim delovima
razvojnog postupka u jedinstvenu celinu.
Rastaviti program na klase i pripadajue
metode.
Odrediti jednu ili vie klasa i njihovo delovanje,
meusobno i sa vanjskim svetom. Za svako
meudjelovanje odrediti zasebnu metodu.
Razviti algoritme koji e biti primjenjeni u
pojedinim metodama.
Algoritam je opis postupka korak po korak do
konanog reenja problema. Potrebno je pronai
logian nain za podelu veih problema na
manje sve dok se itav zadatak ne podeli na niz
malih, jednostavnih i lako razumljivih zadataka.
Nakon toga, ti mali zadaci se ponovo rastavljaju
dok se ne doe dijelova koji se mogu iskazati
Java naredbama. Ovaj postupak se najee
izvodi koritenjem pseudokoda.
Prevoenje algoritma u Java naredbe.
Ako je rastavljanje problema dobro obavljeno,
ovaj korak se svodi na jednostavno zamenjivanje

pseudokoda odgovarajuim Java naredbama.


Testiranje konanog Java programa.
Najdui i najvaniji dio razvojnog postupka.
Delove programa je potrebno, ako je mogue,
prvo testirati pojedinano, a zatim i program u
celini. Potrebno je proveriti da program ispravno
radi sa svim dozvoljenim vrstama ulaznih
podataka. esto se dogaa da se program pisan i
testiran samo na uobiajenom ulaznom skupu
rui ili daje netane rezultate samo zbog
koritenja razliitog ulaznog skupa. Ako
program sadri grananja potrebno je proveriti
sva mogua grananja da bi se proverilo
ispravnost rada programa u svim moguim
uvetima.

Zakljuak
Java je vrlo dobar novi programski jezik i velika
vest meu programerima. Informatiki asopisi
jo uvijek ne prestaju pisati i oko Jave te kako e
upravo Java promeniti dosadanje poimanje
kratice WWW (World Wide Web),
korisnik/posluitelj modela razvoja aplikacija te
ekonomskog modela prezentacije i koritenja
programa poevi od tablinih kalkulatora pa
sve do video-igrica. injenice da se danas ve
udomaio pojam NC (Network Computer), te da
SUN kompanija ve naveliko prodaje svoje Java
radne stanice bazirane na Java procesoru samo
govore u prilog prednjoj tvrdnji. Postoji ve
uvano miljenje da e Java naslijediti C++ kao

jezik izbora gde programiranje generalno je Java


u stvari ono to je trebao biti C++.
Literatura
1. Herbert Schildt, JAVA J2SE 5, MIKRO
KNJIGA, ZAGREB, 2006
2.Joshua Bloch, EFIKASNO
PROGRAMIRANJE NA JAVI, MIKRO
KNJIGA, ZAGREB,2004
3 .Stephen J. Chapman: Java for Engineers and
Scientist, Prentice Hall, NJ, 2000.
4. on-line tutorial na web adresi
http://java.sun.com/docs/books/tutorial/

Mentor:

Student:

Prof. dr Zoran Lovrekovi

Zivko Najdanovic
03-R-68/12

Brko, 2013.

You might also like