18
1 Uvod u programiranje i softverski paketi Univerzitet u Nišu Građevinsko-arhitektonski fakultet II čas Milan Gocić oktobar, 2014. - Azbuka programskog jezika Java - Skup znakova Skup znakova (engl. character set) koji se koristi u jeziku Java čine velika i mala slova engleskog alfabeta, deset decimalnih cifara i veći broj znakova interpunkcije. U Javi pravi se razlika između malih i velikih slova kako u službenim delovima programa tako i unutar običnih tekstova. 2

Azbuka programskog jezika Java

Embed Size (px)

Citation preview

Page 1: Azbuka programskog jezika Java

1

Uvod u programiranje i

softverski paketi

Univerzitet u Nišu

Građevinsko-arhitektonski fakultet

II čas

Milan Gocić

oktobar, 2014.

- Azbuka programskog jezika Java -

Skup znakova

Skup znakova (engl. character set) koji se

koristi u jeziku Java čine velika i mala slova

engleskog alfabeta, deset decimalnih cifara i

veći broj znakova interpunkcije.

U Javi pravi se razlika između malih i velikih

slova kako u službenim delovima programa

tako i unutar običnih tekstova.

2

Page 2: Azbuka programskog jezika Java

2

Leksički elementi Jave

3

Leksički

elementi

Beli simboli

Tokeni

Leksički elementi jezika (leksemi) su leksičke celine

koje imaju neki smisao u jeziku.

Beli simboli

Beli simboli su znaci koji se ne vide na

ekranu, a služe za uređivanje teksta:

blanko znaci,

vertikalni/horizontalni tabulatori,

znak za prelaz u novi red, itd.

4

Page 3: Azbuka programskog jezika Java

3

Tokeni su elementi programskog jezika koji imaju

sintaksno i semantičko značenje u kôdu.

Sintaksno značenje: značenje u smislu pravilnog

formiranja "rečenica" u kôdu: zna se kako se

ispravno piše određena "naredba", zna se gde se

otvara a gde se zatvara obična zagrada, a gde

vitičasta itd. Izvorni kôd programa mora da

zadovoljava stroga pravila u smislu forme, pa

sintaksno značenje ima upravo taj smisao.

Semantičko značenje se odnosi na smisao koji ima

određeni token ili niz tokena: da li želimo da

uporedimo vrednost dve promenljive, ili pak da

dodelimo jednoj vrednost druge, itd. Može se reći da

se ovde, za razliku od forme, radi o suštini onoga

što želimo od programa.

Tokeni

5

Podela tokena (znakova)

6

Page 4: Azbuka programskog jezika Java

4

Identifikator

Identifikator je oznaka ("reč") koja nešto, šta god,

označava (identifikuje).

Formalno, identifikator u Javi počinje slovom,

znakom "_" ili znakom "$", a nadalje sledi niz

simbola iz skupa {<slovo>, <cifra>,_,$}.

Java identifikator imena je osetljiv na veličinu slova (engl. case sensitive)

Ne sme biti ključna reč

Primeri za identifikator: i, j, pro, y10, _x, $cifra...

7

Literali

Literal je vrednost koja se eksplicitno prikazuje u programu.

Koristi se za prikaz konstanti.

LITERAL

Numerički

Logički

Znakovni

null

8

Page 5: Azbuka programskog jezika Java

5

Numerički literali

Mogu biti:

CELOBROJNI

int (25, -89)

long (685845L, -265487l)

REALNI

float (1.23F, -5.6f)

double (151.2, 2.3E-6, 1.2e-5)

Celobrojni numerički literali se mogu zadavati u:

dekadnom brojnom sistemu

oktalnom BS (dodajemo nulu ispred: 0235, 0457)

heksadekadnom BS (dodajemo ispred "0x“:

0X45A, 0x5BB). 9

Slajd br. 10

Napomena Za zapis

u dekadnom brojnom sistemu: 25

u oktalnom brojnom sistemu: 025

u heksadekadnom brojnom sistemu: 0x25

važi:

25 ≠ 025 ≠ 0x25

Page 6: Azbuka programskog jezika Java

6

Numerički literali

Celobrojni literali su, by default, tipa int, osim ako:

njihova vrednost prevaziđe opseg tipa int,

opseg tipa int u Javi je: od -231 do +231-1

ili ako se posebno naglasi da su oni tipa long, a

to se postiže dodavanjem slova "l" ili "L" iza

broja.

Numeričke konstante (literali) realnog tipa Java

automatski shvata kao double.

Naglašavanje da je u pitanju tip float se radi tako što

se iza broja doda slovo "f" ili "F".

11

Logički literali

Logički literali su vrednosti "da" i "ne", odnosno

"istinito" i "neistinito".

Oni mogu biti dodeljivani samo promenljivama

logičkog tipa.

Njihov zapis u Javi je: "istinito" se zapisuje kao true, a

"neistinito" se zapisuje kao false.

12

Page 7: Azbuka programskog jezika Java

7

Znakovni literali

Literal znakovnog tipa je bilo koji znak (slovo,

broj...), ili niz znakova.

Ako se znakovna konstanta sastoji samo od

jednog znaka on se omeđuje apostrofima: 'a'.

Ako se sastoji od niza znakova, omeđuje se

klasičnim navodnicima: "abc".

13

Upravljački znakovi

Simbol Opis

\b oznaka za povratak unazad – backspace (BS)

\f oznaka za stranicu unapred – form feed (FF)

\n oznaka nove linije – new line (NL)

\r oznaka za povratak na početak reda (CR)

\t oznaka za horizontalni tabulator – (HT)

\v oznaka za vertikalni tabulator – (VT)

\” oznaka za dvostruki navodnik

\‘ oznaka za jednostruki navodnik

\\ oznaka za znak \ - backslash

‘\ooo‘ znak kojim je ASCII kôd zapisan oktalnim ciframa

‘\xhh‘ znak kojim je ASCII kôd zapisan heksadekadnim

ciframa

14

Page 8: Azbuka programskog jezika Java

8

Referentni literal: null

Dodeljuje se automatski svakoj promenljivoj bilo kog referentnog tipa (klase, interfejsi i nizovi).

Kada se u Javi definiše promenljiva tipa neke klase, kao na primer:

String s;

za nju se u startu ne rezerviše nikakav memorijski prostor.

Smatra se da ta promenljiva ima vrednost null – što je upravo ova konstanta.

15

Primer

Napisati program za štampanje

R.br. X Y Z

1 2.5 3.6 4.9

package informatika;

public class Zaglavlje {

public static void main(String[] args) {

System.out.print("\tR.br.\tX\tY\tZ\n");

System.out.println("\t1\t2.5\t3.6\t4.9");

}

}

16

Page 9: Azbuka programskog jezika Java

9

Ključne reči jezika Java

Ključne reči (rezervisane ili službene reči) programskog jezika su reči (nizovi znakova, ali ne

pod navodnicima ili apostrofima) koji imaju unapred

definisano sintaksno i semantičko značenje u

programu.

Koncept zaštite ključnih reči (prisutan kod svih viših

programskih jezika) znači da se ključne reči ne mogu

koristiti kao identifikatori.

Gotovo svi editori vrše naglašavanje ključnih reči, čime

programeru stavljaju do znanja da su reči

prepoznate kao ključne, odnosno da nema grešaka u

kucanju. Nagalašavanje obično podrazumeva

bojenje tih reči (nakon što su prepoznate) u plavo ili

ljubičasto. 17

Ključne reči jezika Java

To su zapravo naredbe (instrukcije) programskog

jezika, uključujući i nazive primitivnih tipova

podataka i nekih operatora i pišu se malim slovima.

Java poznaje sledeće ključne reči:

abstract default if private throws

boolean do implements protected transient

break double import public try

byte else instanceof returnshort void

case extends int static volatile

catch final interface super while

char finally long switch

class float native synchronized

const for new this

continue goto package throw

18

Page 10: Azbuka programskog jezika Java

10

Separatori

Separatori su specijalni znaci koji ne označavaju

operaciju, a imaju funkciju da odvoje određene

logičke celine u kôdu.

U separatore spadaju: ()

omeđuju logički uslov u if, while petlji

omeđuju postavljanje brojača for petlje

{}

omeđuju jedan blok kôda

;

označavaju kraj jedne naredbe u kôdu. Naziva se i

terminator naredbi.

19

Komentari

Komentari su delovi koda koje kompajler pri

prevođenju kôda jednostavno ignoriše, a od

značaja su za programera.

Komentari se u Javi obeležavaju na sledeći

način: // komentar koji važi do kraja reda, ili

/* komentar koji može da se proteže kroz više

redova, a važi sve do znaka */

Po konvenciji, editori u gotovo svim razvojnim

okruženjima komentare boje u svetlo zeleno.

20

Page 11: Azbuka programskog jezika Java

11

Komentari

Specijalna vrsta komentara: dokumentacioni

komentari.

Oni stoje između znakova /** i */ (razlika: prvi

ima 2 zvezdice a ne jednu).

Oni služe da ih Javin generator tehničke

dokumentacije (Javadoc) automatski uključi u

dokumentaciju o projektu koju generiše.

Tehnička dokumentacija ima poseban značaj

pri izradi projekta. 21

Primer

Napisati program za ilustraciju komentara i štampanje

stringa „Java programski jezik”.

package informatika;

public class Komentar {

/* Program napisan u programskom jeziku Java

za ilustraciju komentara */

public static void main(String[] args) {

// Prikazuje se string "Java programski jezik"

System.out.println("Java programski jezik");

}

}

22

Page 12: Azbuka programskog jezika Java

12

Tipovi podataka

Tip podatka je pripadnost skupu koji ima zajedničke

karakteristike. Tip promenljive određuje način njenog

kodiranja, način kako ona zauzima memoriju

računara i operacije koje su nad tom promenljivom

dozvoljene. Tipovi promenljivih ili konstanti koji se

koriste u izrazima određuju tip rezultata tog izraza.

Tipovi podataka su posebno važni u Javi jer ima jako

definisanje tipa podatka (engl. strongly typed

language). To znači da svi podaci u programu

moraju imati definisan tip. Podaci bez tipa se ne

kompajliraju. 23

Tipovi podataka

24

Tip

podatka

Primitivni

(osnovni)

Referentni

Page 13: Azbuka programskog jezika Java

13

Primitivni tip podatka

25

Primitivni tip podatka

26

Tip Vrednosti Default Veličina Opseg

byte označeni

celi brojevi

0 8 bita od -128 do 127

short označeni

celi brojevi

0 16 bita od -32768 do 32767

int označeni

celi brojevi

0 32 bita od -2147483648 do 2147483647

long označeni

celi brojevi

0 64 bita od -9223372036854775808 do

9223372036854775807

float IEEE 754 0.0 32 bita od +/-1.4E-45 do +/-3.4028235E+38,

+/-beskonačno, +/-0, NAN

double IEEE 754 0.0 64 bita od +/-4.9E-324 do

+/-1.7976931348623157E+308,

+/- beskonačno, +/-0, NaN

char Unicode

karakteri

\u0000 16 bita od \u0000 do \uFFFF

boolean true, false false 1 bit nije dostupan (NA)

Page 14: Azbuka programskog jezika Java

14

Wrapper klase

27

Osnovni tip

podatka

Wrapper klasa

byte java.lang.Byte

short java.lang.Short

int java.lang.Integer

long java.lang.Long

float java.lang.Float

double java.lang.Double

char java.lang.Character

boolean java.lang.Boolean

void java.lang.Void

Maksimalne i minimalne vrednosti i statičke

metode za procesiranje osnovnih tipova podataka

nalaze se u wrapper klasama

Referentni tipovi podataka

Referentni tipovi podataka u Javi su:

klase,

interfejsi i

nizovi.

28

Page 15: Azbuka programskog jezika Java

15

Vrednosni i referentni tipovi

podataka

Razlika između vrednosnih i referentnih tipova podataka:

Kada se deklariše promenljiva vrednosnog tipa, u

memoriji se odmah odvoji prostor za skladištenje

njene vrednosti.

Kada se deklariše promenljiva referentnog tipa, u

memoriji se ne rezerviše nikakav prostor. Prostor se

rezerviše kada se sâm objekat kreira operatorom

new. Kada se deklariše podatak tipa neke klase, ne

zna se unapred koliko će biti potrebno memorijskog

prostora za konkretan objekat, jer on ne mora biti

tipa te klase – već može biti i tipa bilo koje njene

podklase (izvedene klase).

29

Promenljive

Promenljiva je mesto u operativnoj memoriji gde može biti smeštena neka vrednost, koja se može menjati u svim fazama izvršenja programa.

Promenljiva se u kôdu predstavlja identifikatorom.

Dodela oznake tipa nekoj promenljivoj naziva se deklaracija promenljive, a ako se pod tom deklaracijom podrazumeva i rezervisanje memorijskog prostora u kojem će biti smeštena kodirana vrednost promenljive, onda se kaže da je deklaracijom izvršena i definicija promenljive.

Page 16: Azbuka programskog jezika Java

16

Deklarisanje promenljive

Deklarisanje promenljive znači njeno

"uvođenje" u program, tako da kompajler

može da je prepozna u nastavku kôda. Promenljiva se u Javi može deklarisati na bilo

kom mestu u programu, onda kada se za njom

pojavi potreba; ali ne može se koristiti pre nego

što se deklariše.

Promenljiva se deklariše (uvodi u program) navođenjem tipa kome pripada, i u nastavku navođenjem imena promenljive:

tip_promenljive ime_promenljive;

Inicijalizacija promenljive

Inicijalizacija promenljive je deklaracija u kojoj se

određuje početna vrednost promenljive.

Opšti oblik inicijalizacije izgleda

tip_promenljive ime_promenljive = vrednost;

gde je tip_promenljive tip podatka promenljive,

ime_promenljive ime promenljive, a vrednost je

vrednost koja se dodeljuje promenljivoj i mora

odgovarati tipu podatka.

Page 17: Azbuka programskog jezika Java

17

Primer

Primer za deklarisanje promenljivih primitivnih

tipova: byte a, b = 1; // a se ne inicijalizuje, a b se inic. na 1

int a,b; // ovde se ništa ne inicijalizuje

boolean leto = false;

Ukoliko se pri deklaraciji promenljiva ne

inicijalizuje nikakvom konkretnom vrednošću,

promenljive numeričkih tipova se automatski inicijalizuju na vrednost 0, znakovne na

'\0', a logičke na false.

Primer /*

Korišćenje Pitagorine teoreme za izračunavanje dužine hipotenuze na

osnovu dužina kateta trougla.

*/

class Pitagora {

public static void main(String args[]) {

double x, y, z;

x = 3;

y = 4;

z = Math.sqrt(x*x + y*y);

System.out.println(“Dužina hipotenuze je " +z);

}

}

Izlazni rezultat programa

Dužina hipotenuze je 5.0 34

Page 18: Azbuka programskog jezika Java

18

Konstante

Konstante su izrazi fiksne vrednosti.

Moraju se inicijalizovati pri definisanju.

Za deklarisanje konstanti koristi se ključna reč final

final tip_promenljive naziv_promenljive = vrednost;

Na primer, final double PI = 3.14;

Konstanta je bilo koja vrednost u kôdu. To ne mora biti samo

numerička vrednost. Java razlikuje još dva tipa vrednosti:

logičke (tačno ili netačno) i znakovne (znakovni nizovi).

35

Primer Napisati program za izračunavanje obima kruga korišćenjem deklarisane konstante

PI. Zadatak ne rešavati korišćenjem konstante PI deklarisane u klasi Math.

package informatika;

public class ObimKruga {

public static void main(String[] args) {

final float PI = 3.14159f;

float r = 5, obim;

obim = 2 * r * PI;

System.out.println("Obim kruga je " + obim + " za poluprečnik " + r);

}

}

Izlazni rezultat programa

Obim kruga je 31.415901 za poluprečnik 5.0

36