360 likes | 593 Views
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.)
E N D
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 Programiranje I
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) Programiranje I
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) Programiranje I
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 Programiranje I
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 Programiranje I
Java program Java bajtkod Programski jezik Java • Kompajlersko-interpretatorski jezik Java kompajler javac Java interpretator java JVM Interpretator Operativni sistem Programiranje I
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) Programiranje I
Programski jezik Java • Razvoj Java programa • Tekstualno okruženje • Notepad, TextPad, ... • Grafičko okruženje (IDE) • NetBeans, DrJava, Eclipse, Java Studio, JCreator, JBuilder, ... Programiranje I
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 Programiranje I
Programski jezik Java • Struktura Java programa public class SabiranjeNiza{ public static void main(String[] args) { . . . } } Programiranje I
Programski jezik Java • Prevođenje i izvršavanje u tekstualnom okruženju (DOS prozor) javac SabiranjeNiza.java java SabiranjeNiza Programiranje I
Programski jezik Java • Struktura Java programa import java.util.*; public class SabiranjeNiza{ public static void main(String[] args) { . . . } } Programiranje I
java.lang java.util java.io java.net java.awt java.applet 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: Programiranje I
Paketi • Java API sadrži veliki broj klasa koje su grupisane u pakete Programiranje I
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 Programiranje I
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 Programiranje I
Korišćenje paketa • Primer: import java.util.*; public class SabiranjeNiza { public static void main(String[] args) { ... Scanner tastatura = new Scanner(System.in); ... } } Programiranje I
Osnovni elementi • Imena (identifikatori) • Tipovi podataka i literali • Promenljive • Izrazi Programiranje I
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 Programiranje I
Imena (identifikatori) • Službene (ključne) reči imaju unapred definisano značenje Programiranje I
Imena (identifikatori) nivo Nivo NIVO 3praseta druga godina bzvz this • Primer: tastatura n x15 9x jedno_VRLO_dugačko_ime brojStudenata znak+ili- Programiranje I
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 Programiranje I
Tipovi podataka • Primitivni (prosti) tipovi podataka • “ugrađeni” • Klasni (referencni) tipovi podataka • “programerski definisani” Programiranje I
Primitivni (prosti) tipovi • Znakovni tip • char • Logički tip • boolean • Celobrojni tip • byte • short • int • long • Realni tip • float • double Programiranje I
Primitivni (prosti) tipovi • Svi tipovi podataka imaju striktno definisan opseg vrednosti Programiranje I
Primitivni (prosti) tipovi Programiranje I
Primitivni (prosti) tipovi Programiranje I
Primitivni (prosti) tipovi Programiranje I
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 voidoznačava “prazan” tip Programiranje I
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 Programiranje I
Literali • Vrednosti koje predstavljaju sami sebe • Celobrojni literali • Realni literali • Logički literali • Znakovni literali • String literali Programiranje I
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 Programiranje I
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 Programiranje I
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" Programiranje I
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 Programiranje I