zima 2009/10

36
zima 2009/10

Upload: alden-greene

Post on 30-Dec-2015

38 views

Category:

Documents


1 download

DESCRIPTION

Programiranje I. zima 2009/10. Programski jezik Java. Istorijat Jave Proizvod firme “Sun Microsystems” 1990-1991: jezik Oak 1994: Promenjen naziv u Java 1995: Java se objavljuje na SunWorld-u 1996: IBM i Microsoft kupuju licencu. Programski jezik Java. Istorijat Jave (nast.) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: zima 2009/10

zima 2009/10

Page 2: zima 2009/10

Programski jezik Java

• Istorijat Jave

– Proizvod firme “Sun Microsystems”– 1990-1991: jezik Oak– 1994: Promenjen naziv u Java– 1995: Java se objavljuje na SunWorld-u– 1996: IBM i Microsoft kupuju licencu

Dejan Živković Programiranje I 2

Page 3: zima 2009/10

Programski jezik Java

• Istorijat Jave (nast.)

– 1996: JDK 1.0 (8 paketa sa 212 klasa) – 1997: JDK 1.1 (23 paketa , 504 klase)– 1999: JDK 1.2 (59 paketa, 1520 klasa)– 2000: JDK 1.3 (76 paketa 1842 klase)– 2002. JDK 1.4 (135 paketa, 2991 klasa)– 2004. JDK 1.5 (Java 5)– 2006. JDK 1.6 (Java 6)

Dejan Živković Programiranje I 3

Page 4: zima 2009/10

Programski jezik Java

• Glavne karakteristike Jave

– Objektno orijentisan programski jezik opšte namene

– Nezavisan od konkretnog računarskog sistema na kome se koristi (jednom napisan i preveden Java program se može izvršiti na bilo kojoj platformi koja podržava Javu)

Dejan Živković Programiranje I 4

Page 5: zima 2009/10

Programski jezik Java

• Programi u Javi se izvršavaju na Java platformi– Java Virtual Machine (JVM): interpretator

(bajtkoda) hipotetičkog računara– Java Application Programming Interface (Java

API): kolekcija gotovih softverskih komponenti koje olakšavaju proces programiranja u Javi

Dejan Živković Programiranje I 5

Page 6: zima 2009/10

Programski jezik Java

• JRE: Java Runtime Enviroment– za izvršavanje programa na određenoj

platformi (PC, Apple, Sun ...)

• JDK: Java Development Kit– za razvoj

• java.sun.com

Dejan Živković Programiranje I 6

Page 7: zima 2009/10

Programski jezik Java

• Kompajlersko-interpretatorski jezik

Dejan Živković Programiranje I 7

Java program Java bajtkodJava kompajler javac

JVM

Interpretator

Java interpretator java

Operativni sistem

Page 8: zima 2009/10

Programski jezik Java• Vrste Java programa

– Aplikacija• uobičajeni program

– Aplet• izvršava se u Web pretraživaču (brauzeru) u okviru

neke Web strane• automatska distribucija i instalacija• ograničene mogućnosti zbog bezbednosti

– Servlet, JSP (Java Server Pages)• izvršava se na Web serveru (dinamičke strane)

Dejan Živković Programiranje I 8

Page 9: zima 2009/10

Programski jezik Java

• Razvoj Java programa

– Tekstualno okruženje• Notepad, TextPad, ...

– Grafičko okruženje (IDE)• NetBeans, DrJava, Eclipse, Java Studio, JCreator,

JBuilder, ...

Dejan Živković Programiranje I 9

Page 10: zima 2009/10

Programski jezik Java

• Struktura Java programa

– Java program se sastoji od jedne ili više klasa– Izvorni kod svake klase se piše u posebnoj

datoteci čije ime mora biti isto kao ime klase– Ekstenzija datoteke Java izvornog koda mora

biti java

Dejan Živković Programiranje I 10

Page 11: zima 2009/10

Programski jezik Java

• Struktura Java programa

public class SabiranjeNiza {

public static void main(String[] args) { . . . } }

Dejan Živković Programiranje I 11

Page 12: zima 2009/10

Programski jezik Java

• Prevođenje i izvršavanje u tekstualnom okruženju (DOS prozor)

javac SabiranjeNiza.javajava SabiranjeNiza

Dejan Živković Programiranje I 12

Page 13: zima 2009/10

Programski jezik Java

• Struktura Java programa

import java.util.*;

public class SabiranjeNiza {

public static void main(String[] args) { . . . } }

Dejan Živković Programiranje I 13

Page 14: zima 2009/10

Paketi• Klase su organizovane po paketima

• Analogija sa fajlovima i folderima u okviru fajl-sistema na disku

• Paket je kolekcija klasa koje čine srodnu celinu (namenjenih jednoj vrsti posla)

• Paketi su biblioteke klasa

• Osnovni paketi:

Dejan Živković Programiranje I 14

java.lang java.util java.io java.net java.awt java.applet

Page 15: zima 2009/10

Paketi• Java API sadrži veliki broj klasa koje su

grupisane u pakete

Dejan Živković Programiranje I 15

Page 16: zima 2009/10

Paketi

• Paketi olakšavaju nalaženje i korišćenje klasa

• Paketi sprečavaju konflikte imena klasa, jer različiti paketi mogu da sadrže klase sa istim imenom

• Paketi omogućavaju kontrolu upotrebe klasa

Dejan Živković Programiranje I 16

Page 17: zima 2009/10

Korišćenje paketa

• Deklaracijom import se “uvoze” sve klase iz nekog paketa pomoću džoker-znaka *

• Deklaracija import se mora pisati pre početka teksta klase

• Paket java.lang se automatski uvozi u sve programe

Dejan Živković Programiranje I 17

Page 18: zima 2009/10

Korišćenje paketa

• Primer:

import java.util.*;

public class SabiranjeNiza { public static void main(String[] args) { ... Scanner tastatura = new Scanner(System.in); ... } }

Dejan Živković Programiranje I 18

Page 19: zima 2009/10

Osnovni elementi

• Imena (identifikatori)

• Tipovi podataka i literali

• Promenljive

• Izrazi

Dejan Živković Programiranje I 19

Page 20: zima 2009/10

Imena (identifikatori)

• Imena za razne elemente Java programa

– Ime mora da počinje slovom, $ ili _– Ostali znaci: slova, cifre, $ ili _– Razlikuju se mala i velika slova– Dužina nije ograničena– Ne mogu se koristiti rezervisane (službene,

ključne) reči

Dejan Živković Programiranje I 20

Page 21: zima 2009/10

Imena (identifikatori)

• Službene (ključne) reči imaju unapred definisano značenje

Dejan Živković Programiranje I 21

Page 22: zima 2009/10

Imena (identifikatori)

• Primer:

tastatura n x15 9x jedno_VRLO_dugačko_ime brojStudenata znak+ili-

Dejan Živković Programiranje I 22

nivo Nivo NIVO 3praseta druga godina bzvz this

Page 23: zima 2009/10

Imena (identifikatori)

• Konvencije za imenovanje– Paketi: sva slova su mala

• mojpaket

– Klase: početna slova svake reči su velika slova• MojaKlasa

– Metod/promenljiva: početno slovo je malo, a naredne reči počinju sa velikim slovima

• mojMetod, mojaPromenljiva

– Konstante: sva slova su velika• MOJA_KONSTANTA

Dejan Živković Programiranje I 23

Page 24: zima 2009/10

Tipovi podataka

• Primitivni (prosti) tipovi podataka– “ugrađeni”

• Klasni (referencni) tipovi podataka– “programerski definisani”

Dejan Živković Programiranje I 24

Page 25: zima 2009/10

Primitivni (prosti) tipovi

• Celobrojni tip– byte– short– int– long

• Realni tip– float– double

Dejan Živković Programiranje I 25

• Znakovni tip– char

• Logički tip– boolean

Page 26: zima 2009/10

Primitivni (prosti) tipovi

• Svi tipovi podataka imaju striktno definisan opseg vrednosti

Dejan Živković Programiranje I 26

Page 27: zima 2009/10

Primitivni (prosti) tipovi

Dejan Živković Programiranje I 27

Page 28: zima 2009/10

Primitivni (prosti) tipovi

Dejan Živković Programiranje I 28

Page 29: zima 2009/10

Primitivni (prosti) tipovi

Dejan Živković Programiranje I 29

Page 30: zima 2009/10

Primitivni (prosti) tipovi

• Tip char zauzima dva bajta umesto uobičajenog jednog bajta – predstavlja Unicode znakove (Unicode

standard definiše kodni raspored koji obuhvata praktično sve današnje jezike, uključujući indoevropske, dalekoistočne itd.)

• Tip void označava “prazan” tip

Dejan Živković Programiranje I 30

Page 31: zima 2009/10

Klasni (referencni) tipovi

• Korisnički definisani tipovi podataka su predstavljeni klasama

• Vrednosti klasnih tipova su reference (adrese) objekata odgovarajuće klase

• Slično pokazivačima

Dejan Živković Programiranje I 31

Page 32: zima 2009/10

Literali

• Vrednosti koje predstavljaju sami sebe

– Celobrojni literali– Realni literali– Logički literali– Znakovni literali– String literali

Dejan Živković Programiranje I 32

Page 33: zima 2009/10

Literali

• Celobrojni literali– Celi brojevi tipa int i long u dekadnom,

oktalnom i heksadekadnom zapisu– Dekadni ne počinju cifrom 0: 123– Oktalni počinje cifrom 0: 032– Heksadekadni počinje znacima 0x ili 0X:

0x1A, 0X1A– Celobrojni literal koji se završava slovom L ili l

je tipa long: 26L, 0L, 11100l

Dejan Živković Programiranje I 33

Page 34: zima 2009/10

Literali

• Realni literali– Realni brojevi tipa float ili double– Moraju sadržati decimalnu tačku ili eksponent– e (ili E) se koristi za eksponent– Realni brojevi koji se ne završavaju slovom ili

se završavaju slovom D ili d su tipa double: 2.75, 24.5344, 25e4, .8373e-9D

– Realni brojevi koji se završavaju slovom F ili f su tipa float: 2.75f, 24.5344f, 25e4f, .8373e-9f

Dejan Živković Programiranje I 34

Page 35: zima 2009/10

Literali

• Logički literali– Logičke vrednosti: true i false

• Znakovni literali– Znakovi ili specijalne sekvence (escape

sequences) između jednostrukih navodnika: 'A', 't', '?', '\n', '\u0142'

• String literali– Nizovi znakova između dvostrukih navodnika:

"Zdravo narode", "Unesite broj: ", "A"Dejan Živković Programiranje I 35

Page 36: zima 2009/10

Komentari

• Tri stila komentara u Javi

– C-stil: /* . . . */• primer: /* Ovo je objašnjenje */

– Jednolinijski komentar: //• primer: int i = 1; // brojač

– Dokumentacioni komentar: /** . . . */• za automatsko generisanje dokumentacije

Dejan Živković Programiranje I 36