1 Osnovno o Javi Osnovno o Javi Saida Deljac Saida Deljac nastavnica ra nastavnica ra č č unalstva unalstva Ž Ž eljezni eljezni č č ka tehni ka tehni č č ka ka š š kola Zagreb kola Zagreb
1
Osnovno o JaviOsnovno o Javi
Saida DeljacSaida Deljacnastavnica ranastavnica raččunalstvaunalstva
ŽŽeljeznieljezniččka tehnika tehniččka ka šškola Zagrebkola Zagreb
2
O O ččemu emu ćće biti rijee biti riječč
1.1. ŠŠto je Java?to je Java?2.2. Kako instalirati Javu?Kako instalirati Javu?3.3. Kako napisati i pokrenuti program u Javi?Kako napisati i pokrenuti program u Javi?4.4. ŠŠto je objektno programiranje?to je objektno programiranje?5.5. Izrada i izvođenje jednostavnih primjera Izrada i izvođenje jednostavnih primjera
uporabom naredbi za upis, ispis,uporabom naredbi za upis, ispis, ispitivanje uvjeta i izvođenja petljiispitivanje uvjeta i izvođenja petlji
3
O Java tehnologijiO Java tehnologiji
1.1. PlatformaPlatforma ––sklopovsko ili programsko okrusklopovsko ili programsko okružženje u enje u kojem se program izvrkojem se program izvrššava ava tjtj. kombinacija operativnog . kombinacija operativnog sustava i sklopovljasustava i sklopovlja
nprnpr: Windows, : Windows, LinuxLinux, , SolarisSolaris i MaxOSi MaxOS
Java platformu čine:
• Java virtualni stroj (Java VM)
• Java Aplikacijsko programsko sučelje (Java API), grafička sučelja, biblioteke klasa
IzvoriIzvoriššte: te: http://java.http://java.sunsun..comcom//docsdocs//booksbooks//tutorialtutorial//
4
O Java tehnologijiO Java tehnologiji
2.2. Programski jezikProgramski jezik•• Objektno orijentiranObjektno orijentiran•• Neovisan o arhitekturi Neovisan o arhitekturi •• PrenosivPrenosiv•• ŠŠirokih moguirokih moguććnosti (funkcionalnost)nosti (funkcionalnost)•• …………
Prikaz procesa kompajliranja i interpretiranja Java programskog koda
IzvoriIzvoriššte: : te: : http://java.http://java.sunsun..comcom//docsdocs//booksbooks//tutorialtutorial//
5
Gdje se koristi Java?Gdje se koristi Java?
A.A. U izradi razliU izradi različčitih aplikacija:itih aplikacija:
-- apletaapleta-- mremrežžnih aplikacijanih aplikacija-- baze podatakabaze podataka-- RoboticiRobotici
B.B. Kao platforma za rad aplikacijamaKao platforma za rad aplikacijama
-- U izgradnji IT u razliU izgradnji IT u različčitim podruitim područčjima (knjijima (knjižžniniččarstva, arstva, bankarstavabankarstava…….) .)
6
Instalacija JaveInstalacija Jave
•• Java SE Java SE DevelopmentDevelopment Kit 6 (JDK 6) Kit 6 (JDK 6) ((downloaddownload Windows verzijaWindows verzija) )
•• TextText editoreditor ((JEDPlusJEDPlus 2.0, BlueJ ili obi2.0, BlueJ ili običčan an NotepadNotepad). ).
7
Koraci pisanja i izvođenja programaKoraci pisanja i izvođenja programa
1.1. Pisanje koda Pisanje koda programa programa –– u u NotePaduNotePadu ili ili tekst editoru)tekst editoru)
IzvoriIzvoriššte: : te: : http://java.http://java.sunsun..comcom//docsdocs//booksbooks//tutorialtutorial//
8
KompajliranjeKompajliranje programaprograma
2.2. KompajliranjeKompajliranje programa (programa (nastajanje nastajanje HelloWorldAppHelloWorldApp..classclassprograma)programa)
StartStart -->>CommandCommand PromptPrompt (Windows XP)(Windows XP)javacjavac HelloWorldAppHelloWorldApp.java .java
IzvoriIzvoriššte: : te: : http://java.http://java.sunsun..comcom//docsdocs//booksbooks//tutorialtutorial//
9
Izvođenje programaIzvođenje programa
3.3. Izvođenje programaIzvođenje programaJava Java HelloWorldAppHelloWorldApp
IzvoriIzvoriššte: : te: : http://java.http://java.sunsun..comcom//docsdocs//booksbooks//tutorialtutorial//
10
PROGRAMIRANJE U JAVI PROGRAMIRANJE U JAVI
Koncept programiranja u kojem se koriste Koncept programiranja u kojem se koriste OBJEKTI I KLASEOBJEKTI I KLASE
Objektno orijentiran programski jezikObjektno orijentiran programski jezik
11
Klase i objektiKlase i objekti
•• KlasaKlasa je programska implementacija neje programska implementacija neččega (ega (nprnpr: : automobila, robota, biciklaautomobila, robota, bicikla…….).)
Klasa je nacrt ili prototip(npr: za robota vatrogasca) koji definira varijable ili metode zajedničke svim objektima određenog tipa
•• Objekti Objekti su sastavni dijelovi klasa: su sastavni dijelovi klasa: --objekti imaju objekti imaju stanjestanje tjtj. znanje (brzinu kretanja, brzinu . znanje (brzinu kretanja, brzinu vrtnje kotavrtnje kotačča, broj brzina a, broj brzina slsl.) i .) i ponaponaššanjeanje tjtj.mogu.moguććnost nost (ko(koččenje, usporavanje, promjenu brzine, gaenje, usporavanje, promjenu brzine, gaššenje vatre i enje vatre i slsl.) .) --to skup varijabli (to skup varijabli (maxmax. brzina, broj okretaja kota. brzina, broj okretaja kotaččaa……) i ) i pridrupridružženih metoda (metode za koenih metoda (metode za koččenje, metode za enje, metode za promjenu brzine, metode za gapromjenu brzine, metode za gaššenje vatre i enje vatre i slsl.).)
12
Klase Klase –– primjer Robotaprimjer Robota
RobotBotRobotBot i i RobotBotPlusRobotBotPlus su klase koje su klase koje predstavljaju predstavljaju kontrolerkontroler robota. Svaka se klasa robota. Svaka se klasa opisuje vlastitim Java kodom koji se pohranjuje opisuje vlastitim Java kodom koji se pohranjuje u datoteke u datoteke RobotBotRobotBot.java.java i i RobotBotPlusRobotBotPlus.java.java
IzvoriIzvoriššte: te: http://www.http://www.ridgesoftridgesoft..comcom//
13
Objekti Objekti -- primjerprimjer
Primjer Primjer klaseklase RobotBotRobotBot koristi dva koristi dva objekta objekta naziva naziva MotorMotor, za svaki kota, za svaki kotačč po jednu, koji slupo jednu, koji služže za e za kontrolu robota. kontrolu robota.
ObjektObjekt Motor Motor ima ima metodemetode: : forwardforward(), (), backwardbackward(), (), stopstop(), i (), i gogo() te lokalne varijable () te lokalne varijable mLeftMotormLeftMotor i i mRightMotormRightMotor
14
Struktura programaStruktura programaclass class PozdravPozdrav {{
public static void public static void main(Stringmain(String[] [] argsargs)) {{
System.out.printlnSystem.out.println((““PozdravPozdrav!");!");
}}}}
Klasa imena Pozdrav
Ispis teksta”Pozdrav” na standardni izlaz
Poziv glavne metode main() s argumentom tipa String
Metoda main()
- public – označava da metoda main može biti pozvana od strane bilo kojeg objekta
- static – označava da je metoda main metoda klase
- void- označava da main metoda ne vraća nikakvu vrijednost
15
Osnovne naredbe u Javi Osnovne naredbe u Javi -- ispisispis
publicpublic classclass zbrajanjezbrajanje{{publicpublic staticstatic voidvoid mainmain((StringString[] [] argsargs) {) {int i = 3;int i = 3;int j = 4;int j = 4;int z;int z;z=i+j;z=i+j;SystemSystem..outout..printlnprintln("Zbrajanje...i=3 i j=4");("Zbrajanje...i=3 i j=4");SystemSystem..outout..printlnprintln(" i + j = " + z);(" i + j = " + z);}}
}}
PRIMJER: Zbrajanje dva cijela broja s zadanim vrijednostima unutar programa
16
Unos vrijednosti u programUnos vrijednosti u program
import import java.util.Scannerjava.util.Scanner;;public class public class zbroj_JEDPluszbroj_JEDPlus {{public static void public static void main(Stringmain(String[] [] argsargs) {) {
Scanner scan = new Scanner scan = new Scanner(System.inScanner(System.in););intint a = a = scan.nextIntscan.nextInt();();intint b = b = scan.nextIntscan.nextInt();();System.out.println(a+bSystem.out.println(a+b););
}}}}
PRIMJER: Zbrajanje dva cijela broja s ulaznim vrijednostima zadanim izvan programa.
17
VarijableVarijable
Promjenjive veliPromjenjive veliččine u programu koje mogu biti:ine u programu koje mogu biti:-- cijeli brojevicijeli brojevi-- realni brojevirealni brojevi-- drugi osnovni tipovidrugi osnovni tipovi
•• ZnakovniZnakovni•• LogiLogiččkiki
Varijable imaju svoje ime, vrijednost i doseg.Varijable imaju svoje ime, vrijednost i doseg.
18
Tipovi podatakaTipovi podataka
Java razlikuje dvije kategorije tipova podataka:Java razlikuje dvije kategorije tipova podataka:1.1. osnovne tipove (osnovne tipove (primitivesprimitives) (cijeli brojevi, ) (cijeli brojevi,
decimalni, znakovi i logidecimalni, znakovi i logiččki tipovi)ki tipovi)2.2. reference (reference (referencereference) (u drugim jezicima ) (u drugim jezicima
zove pokazivazove pokazivačč ((pointerpointer) ili memorijska ) ili memorijska adresa) adresa)
19
Tipovi podatakaTipovi podataka
Ključna riječ Opis Veličina/Format
cijeli brojevi
byte Cijeli broj duljine bajta 8-bita/komplement broja dva
short Kratki cijeli broj 16-bita/komplement broja dva
int Cijeli broj 32-bita/komplement broja dva
long Dugi cijeli broj 64-bita/komplement broja dva
realni brojevi
float Realni broj jednostruke preciznosti 32-bita/IEEE 754
double Realni broj dvostruke preciznosti 64-bita/IEEE 754
drugi tipovi
char Jedan znak (karakter) 16-bita/Unicode karakter
boolean Logička vrijednost true ili false
20
IzraziIzrazi
Izraz je niz varijabli, operatora i poziva Izraz je niz varijabli, operatora i poziva metoda koji rezultira jedinstvenom metoda koji rezultira jedinstvenom vrijednovrijednoššćću.u.
Primjeri:Primjeri:i+j;i+j;x + y / 100;x + y / 100;x + (y / 100) ;x + (y / 100) ;
21
Uvjetna naredba (IF i IFUvjetna naredba (IF i IF--ELSE)ELSE)
ifif (uvjet) {(uvjet) {naredba;naredba;
}}
ifif (uvjet) {(uvjet) {naredba1;}naredba1;}
elseelse{{naredba2;naredba2;}}
22
Primjer:Primjer:import import java.util.Scannerjava.util.Scanner;;public class public class if_naredbaif_naredba {{public static void public static void main(Stringmain(String[] [] argsargs) {) {
Scanner scan = new Scanner scan = new Scanner(System.inScanner(System.in););intint x = x = scan.nextIntscan.nextInt(); ();
if (x>if (x>==0){0){System.out.println("SljedbenikSystem.out.println("Sljedbenik jeje");");System.out.printlnSystem.out.println( x+1);( x+1);}}
else {else {System.out.println("PrethodnikSystem.out.println("Prethodnik jeje");");System.out.println(xSystem.out.println(x--1);1);
}}}}
}}
PRIMJER: Ispis PRIMJER: Ispis sljedbenika ako je sljedbenika ako je broj pozitivan ili broj pozitivan ili jednak nuli i jednak nuli i prethodnika ako je prethodnika ako je broj negativan.broj negativan.
23
PetljePetlje
U Javi postoje:U Javi postoje:-- forfor petljapetlja-- whilewhile petljapetlja-- dodo-- whilewhile petljapetlja
Svima je zajedniSvima je zajedniččko ponavljanje naredbi ko ponavljanje naredbi zadani broj putazadani broj puta
24
ForFor petljapetlja
public class public class forfor_petlja_petlja{{public static void public static void main(Stringmain(String[] [] argsargs) {) {
for (for (intint ii=1; =1; ii<=10; <=10; ii++)++) {{System.out.printlnSystem.out.println((i)i); ; } }
}}}}
PRIMJER: Ispis brojeva od 1 do 10.PRIMJER: Ispis brojeva od 1 do 10.
25
whilewhile i doi do--whilewhile petljapetlja
whilewhile (uvjetni izraz) (uvjetni izraz) {{naredbe;naredbe;
} }
dodo {{naredbe;naredbe;
} } whilewhile(uvjetni(uvjetni izraz);izraz);
//ponavljanje bloka iskaza sve dok je neki uvjetni //ponavljanje bloka iskaza sve dok je neki uvjetni izraz istinitizraz istinit
26
Primjer Primjer whilewhile petljepetlje
class class PrimjerwhilePrimjerwhile { { public static void public static void main(Stringmain(String[] [] argsargs){ ){
intint brojacbrojac = 1; = 1; while (while (brojacbrojac < 11) { < 11) { System.out.println("VrijednostSystem.out.println("Vrijednost brojacabrojaca jeje " + " + brojacbrojac););
brojacbrojac++; ++; } }
}}}}
Ispis vrijednosti brojaIspis vrijednosti brojačča koji a koji ““brojibroji”” prolaske kroz prolaske kroz petlju.petlju.
27
Primjer doPrimjer do--whilewhile petljepetlje
class class PrimjerdoPrimjerdo { { public static void public static void main(Stringmain(String[] [] argsargs){ ){ intint brojacbrojac = 1; = 1;
do { do { System.out.println("VrijednostSystem.out.println("Vrijednost brojacabrojaca jeje: " + : " + brojacbrojac); ); brojacbrojac++; ++;
} while (} while (brojacbrojac <= 11); <= 11); }}
}}
Ispis vrijednosti brojaIspis vrijednosti brojačča koji a koji ““brojibroji”” prolaske kroz petlju.prolaske kroz petlju.
28
IZVORIIZVORIŠŠTATAUUččenje Javeenje Jave-- TutorialiTutoriali•• http://java.http://java.sunsun..comcom//docsdocs//booksbooks//tutorialtutorial//•• http://java.http://java.sunsun..comcom//docsdocs//whitewhite//langenvlangenv//•• http://http://larislaris..fesbfesb.hr/java/.hr/java/javajava..htmhtm
Primjer Primjer apletaapleta u Javiu Javi•• http://www.http://www.tssibeniktssibenik.hr/.hr/idimasuidimasu//oprojektuoprojektu//indexiindexi//indexindex_7._7.htmhtm
RoboJDE JavaRoboJDE Java--enabledenabled RoboticsRobotics SoftwareSoftware•• http://www.http://www.ridgesoftridgesoft..comcom//•• http://www.ridgesoft.com/robojde/robojde.htmhttp://www.ridgesoft.com/robojde/robojde.htm
Editor Editor JEDPLusJEDPLus 2.02.0•• http://moola.orconhosting.net.nz/java/JEDPlus20.ziphttp://moola.orconhosting.net.nz/java/JEDPlus20.zip
Editor BlueJEditor BlueJ•• http://www.http://www.bluejbluej..orgorg//downloaddownload//downloaddownload.html.html
29
KontaktKontakt
Saida DeljacSaida Deljac
EmailEmail: : [email protected]@email.t--com.hrcom.hrWeb: Web: http://public.carnet.hr/~sdeljac/http://public.carnet.hr/~sdeljac/