zima 2009/10
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 PresentationTRANSCRIPT
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
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
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
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
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
Programski jezik Java
• Kompajlersko-interpretatorski jezik
Dejan Živković Programiranje I 7
Java program Java bajtkodJava kompajler javac
JVM
Interpretator
Java interpretator java
Operativni sistem
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
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
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
Programski jezik Java
• Struktura Java programa
public class SabiranjeNiza {
public static void main(String[] args) { . . . } }
Dejan Živković Programiranje I 11
Programski jezik Java
• Prevođenje i izvršavanje u tekstualnom okruženju (DOS prozor)
javac SabiranjeNiza.javajava SabiranjeNiza
Dejan Živković Programiranje I 12
Programski jezik Java
• Struktura Java programa
import java.util.*;
public class SabiranjeNiza {
public static void main(String[] args) { . . . } }
Dejan Živković Programiranje I 13
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
Paketi• Java API sadrži veliki broj klasa koje su
grupisane u pakete
Dejan Živković Programiranje I 15
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
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
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
Osnovni elementi
• Imena (identifikatori)
• Tipovi podataka i literali
• Promenljive
• Izrazi
Dejan Živković Programiranje I 19
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
Imena (identifikatori)
• Službene (ključne) reči imaju unapred definisano značenje
Dejan Živković Programiranje I 21
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
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
Tipovi podataka
• Primitivni (prosti) tipovi podataka– “ugrađeni”
• Klasni (referencni) tipovi podataka– “programerski definisani”
Dejan Živković Programiranje I 24
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
Primitivni (prosti) tipovi
• Svi tipovi podataka imaju striktno definisan opseg vrednosti
Dejan Živković Programiranje I 26
Primitivni (prosti) tipovi
Dejan Živković Programiranje I 27
Primitivni (prosti) tipovi
Dejan Živković Programiranje I 28
Primitivni (prosti) tipovi
Dejan Živković Programiranje I 29
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
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
Literali
• Vrednosti koje predstavljaju sami sebe
– Celobrojni literali– Realni literali– Logički literali– Znakovni literali– String literali
Dejan Živković Programiranje I 32
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
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
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
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