Professional Documents
Culture Documents
Curs 9 STR
Curs 9 STR
Curs 9 STR
Cuprinsul cursului 9
Aceasta sectiune prezinta sintaxa de baza Java identi!icat"ri# primitive# "perat"ri# tabl"uri# instructiuni si c"mentarii$% Cuvinte rezervate# precedenta "perat"ril"r%
Aceasta sectiune prezinta sintaxa Java pentru clase# "biecte# Strin&s# Strin&'u!!ers# si instructiuni c"nditi"nale# de ciclare# de rami!icatie% Sc"pul variabilel"r%
Constructia claselor
Aceasta sectiune prezinta sintaxa Java pentru clase# cum declaram clasele# c"nstruim si utilizam% ("di!icat"ri de clasa% (ana&ementul mem"riei% C"lectarea de spatiu disp"nibil%
29.11.2013
Curs 9 STR
Identificatori
identi!icat"rii sunt: siruri text care reprezinta variabile# met"de# clase sau etic)ete case*sensitive caracterele p"t !i ci!re# litere# +,+ sau +-+ identi!icat"rii nu: incep cu " ci!ra p"t !i la !el cu un cuvant rezervat
29.11.2013
Curs 9 STR
c"nventii:
29.11.2013
Curs 9 STR
Cuvinte re(ervate
5iterale
null true false abstract assert boolean break byte case catch char class continue efault o ouble else exten s final finally float for if implements import instanceof int interface lon! nati"e ne# packa!e pri"ate protecte public return short static strictfp super s#itch synchroni$e this thro# thro#s transient try "oi "olatile #hile by"alue cast const future !eneric !oto inner operator outer rest "ar "olatile
6e74"rds
29.11.2013
Curs 9 STR
Primitive Java
9iecare variabila trebuie sa aiba un tip de data
/ipurile de date primitive c"ntin " sin&ura val"are :imensiunea si !"rmatul unui tip de date primitiv c"respund tipului respectiv de date
29.11.2013
Curs 9 STR
29.11.2013
Curs 9 STR
29.11.2013
Curs 9 STR
Primitive: caractere
=rice caractere unsi&ned >nic"de este un tip primitiv de date c)ar >n caracter este reprezentat ca un sin&le >nic"de c)aracter intre &)ilimele simple Initializat cu zer" %u&&&&$
29.11.2013
Curs 9 STR
= val"are int 3> p"ate !i utilizata in l"cul unui !oolean >n !oolean p"ate lua val"rile true sau false
Initializat la false
29.11.2013
Curs 9 STR
10
Primitive literale
29.11.2013
Curs 9 STR
11
=ctals are pre!ixed 4it) a zer" 032 @exadecimals are pre!ixed 4it) a zer" and an x 0x1A 9"ll"4 a literal 4it) ;5< t" indicate a l"n& 2A5 +pper and lo,er case are e-uivalent
29.11.2013
Curs 9 STR
12
B%1!
B%1:
B%1e2
29.11.2013
Curs 9 STR
13
S"me 2e7str"2es can be simulated 4it) an escape seDuence Eb bac2space E! !"rm !eed En ne4line Er return Et tab S"me c)aracters ma7 need t" be escaped 4)en used in strin& literals
EF Du"tati"n mar2 EG ap"str"p)e EE bac2slas) @exadecimal >nic"de values can als" be 4ritten HEuIIIIG
29.11.2013
Curs 9 STR
14
As"cierea unei val"ri &resite ca tip p"ate &enera " er"are de c"mpilare sau " exceptie J.(
C"nversia de tip cast a val"rii permite sa !ie tratata ca alt tip J.( !ace c"nversie implicita de la un tip mai scurt la unul mai lun& Jentru a m"di!ica un tip mai scurt# trebuie c"nversie explicita de tip cast$
29.11.2013
Curs 9 STR
15
byte ' short ' int ' lon! ' float '
ouble
An explicit cast is reDuired 4)en t)ere is a Fp"tentialF l"ss "! accurac7 lon! p ( )lon!* +,-./0/12 33 p (( +,-./ int ! ( p2 33 ille!al e"en thou!h an int 33 can hol +,-./ char c ( 4t52 int 6 ( c2 33 automatic promotion short k ( c2 33 #hy is this an error7 short k ( )short* c2 33 explicit cast float f ( +,0-/2 33 #hat5s #ron! #ith this7
29.11.2013
Curs 9 STR
16
0eclaratii si initiali(are
.ariabilele trebuie declarate inainte de a !i utilizate .ariabilele cu val"are sin&ulara variabile care nu sunt tabl"uri$ trebuie sa !ie intializate inainte de prima utilizare intr*" expresie
Cxemple: int i8 62 33 9ariable eclarations i ( &2 int k(i:+2 33 ;eclare an initiali$e at once float x(+0&8 y(,0&2 <ystem0out0println)i*2 33 Prints & <ystem0out0println)k*2 33 Prints + <ystem0out0println)6*2 33 =ompile error
29.11.2013
Curs 9 STR
17
Ta!louri
/abl"urile trebuie declarate inainte de utilizare Au dimensiune !ixa J"t !i speci!icate de un literal# " expresie sau implicit In m"d "pti"nal# p"t !i initializate Au val"ri de!ault# in !unctie de tip Sunt numer"tate int"tdeauna de la zer" array>&? este primul element$ Cxemple: int MAX ( /2 boolean bit>? ( ne# boolean>MAX?2 float>? "alue ( ne# float>,@-?2 int>? number ( A+&8 B8 C8 D8 1E2 <ystem0out0println)bit>&?*2 33 prints FfalseG <ystem0out0println)"alue>-?*2 33 prints F&0&G <ystem0out0println)number>+?*2 33 prints FBG
29.11.2013
Curs 9 STR
18
=perat"rii sunt !"l"siti la !"rmarea expresiil"r Jrecedenta care "perat"r este evaluat mai intai este determinata in m"d explicit de paranteze sau implicit ast!el:
29.11.2013
Curs 9 STR
19
Comentarii
Java sup"rta 3 stiluri de c"mentarii: 33 The rest of the line is a comment 33 No line breaks 3@ E"erythin! bet#een is a comment @3 3@@ E"erythin! bet#een @ is a 6a"a oc comment @3
29.11.2013
Curs 9 STR
20
Instructiuni )statements*
Instructiunile se termina cu L Je " linie putem scrie mai multe instructiuni = instructiune p"ate !i impartita pe mai multe linii
29.11.2013
Curs 9 STR
21
1!iecte si mesa"e
=biectele au un c"mp"rtament mai c"mplex decat tipurile de date primitive =biectele raspund mesa1el"r
=perat"rul d"t F%F este utilizat pentru a trimite un mesa1 unui "biect
29.11.2013
Curs 9 STR
22
29.11.2013
Curs 9 STR
23
Identitate
1peratorul relational KK Cand acest "perat"r este utilizat pentru "biecte# el testeaza exact identitatea "biectului .eri!ica daca d"ua variabile re!erentiaza acelasi "biect Cand este utilizat pentru tipuri primitive% acest "perat"r veri!ica daca val"rile sunt e&ale
29.11.2013
Curs 9 STR
24
Clase ,rapper
/ipurile de date primitive nu au as"ciate met"de si nici c"mp"rtament 9iecare tip de date primitiv are " clasa c"resp"ndenta# denumita 4rapper
9iecare "biect 4rapper mem"reaza " val"are primitiva si "!era met"dele pentru a " pr"cesa Clasele 4rapper sunt incluse in Java AJI de baza
29.11.2013
Curs 9 STR
25
29.11.2013
Curs 9 STR
26
Siruri de caractere
/ipul <trin! este " clasa# nu un tip de data primitiv >n literal <trin! este !"rmat dintr*un numar de caractere "arecare intre &)ilimele d"uble:
29.11.2013
Curs 9 STR
27
Concatenarea sirurilor
/ipurile primitive utilizate in apelul lui println sunt c"nvertite in m"d aut"mat la Strin&s
29.11.2013
Curs 9 STR
28
utilizati "perat"rul d"t %$ pentru a trimite un mesa1 Strin& este " clasa# are met"de
29.11.2013
Curs 9 STR
29
Compararea sirurilor
unui "biect Strin& ii p"t !i trimise mai multe mesa1e pentru testa ec)ivalenta cu alt Strin& one<trin!0eIuals)another<trin!* testeaza ec)ivalenta returneaza true sau false one<trin!0eIualsJ!nore=ase)another<trin!* /est case insensitive pentru ec)ivalenta returneaza true sau false one<trin! (( another<trin! este pr"blematic
29.11.2013
Curs 9 STR
30
Clasa Strin$2uffer
Clasa <trin!Kuffer !urnizeaza un mecanism mult mai e!icient pentru c"nstructia siruril"r C"ncatenarea siruril"r p"ate deveni prea c"stisit"are C"ncatenarea siruril"r este c"nvertita de cele mai multe c"mpilat"are intr*" implementare de <trin!Kuffer :aca c"nstruiti un simplu Strin&# d"ar c"ncatenatiL daca c"nstruiti un Strin& intr*" bucla# utilizati un <trin!Kuffer
29.11.2013
Curs 9 STR
31
Cxpresiile c"nditi"nale se evalueaza la un b""lean Clauza else este "pti"nala Jarantezele nu sunt necesare pentru " sin&ura instructiune# dar sunt rec"mandate pentru claritate
29.11.2013
Curs 9 STR
32
29.11.2013
Curs 9 STR
33
29.11.2013
Curs 9 STR
34
executa " instructiune sau un bl"c de instructiuni atat timp cat c"nditia ramine adevarata #hile)* se executa de zer" sau mai multe "ri o000#hile)* se executa cel putin " data
29.11.2013
Curs 9 STR
35
bucla !"r executa " instructiune sau bl"c de instructiuni O P care " urmeaza evalueaza expresia de Fstart< " sin&ura data c"ntinua atata timp cat expresia de FtestF este adevarata evalueaza expresia FincrementF la !iecare iteratie p"ate !i declarata " variabila pentru !"r in m"d tipic va reprezenta " variabila Fc"nt"rF in m"d tipic se declara in expresia ;start<
29.11.2013
Curs 9 STR
36
aceste instructiuni au " !uncti"nalitate ec)ivalenta !iecare dintre ele p"ate !i implementata pe baza celeilalte aceste structuri de ciclare sunt utilizate in m"d tipic in situatii di!erite #hile se utilizeaza cu precadere pentru "pen*ended l""pin& for se utilizeaza cu precadere pentru repetare intr*un numar !init de iteratii
29.11.2013
Curs 9 STR
37
Instructiuni de ramificatie
Kreak p"ate !i utilizat in a!ara instructiunii s4itc) termina " bucla for# #hile sau o000#hile d"ua !"rmate: 5abeled: executia c"ntinua cu urmat"area instructiune dupa labeled l""p >nlabeled: executia c"ntinua cu urmat"area instructiune in a!ara buclei =ontinue ca si break# but merel7 s2ips t)e remainder "! t)is iterati"n "! t)e l""p# t)en c"ntinues b7 evaluatin& t)e b""lean expressi"n "! t)e innerm"st l""p labeled and unlabeled !"rms Peturn !ace exit din met"da curenta p"ate include " expresie ce va !i returnata tipul trebuie sa se p"triveasca cu tipul return al met"dei un tip return de tip "oi inseamna ca nu va !i returnata nici " val"are
29.11.2013
Curs 9 STR
38
29.11.2013
Curs 9 STR
39
sc"pul unei variabile reprezinta acea re&iune a pr"&ramului in care p"ate !i re!erentiata variabila
variabilele declarate intr*" met"da p"t !i accesate d"ar in acea met"da variabilele declarate intr*" bucla sau bl"c p"t !i accesate d"ar in acea bucla sau in acel bl"c
29.11.2013
Curs 9 STR
40
Clase
atributele si c"mp"rtamentele sunt membrii clasei intre&ii clase variabilele si met"dele clasei# indicate prin cuvantul c)eie static$ "biectel"r individuale variabilele si met"dele instantel"r$
independente unele !ata de altele relati"nate prin m"stenire superclasa 0subclasa$ relati"nate prin tip inter!ata$
29.11.2013
Curs 9 STR
41
Implementarea claselor
" clasa este un etal"n blueprint$ in m"d tipic este utilizata pentru a crea un "biect sau " instanta a clasei
29.11.2013
Curs 9 STR
42
0eclararea claselor
identi!icat"rul din declaratia clasei speci!ica numele clasei clauza "pti"nala exten s indica superclasa clauza "pti"nala implements listeaza numele tutur"r inter!etel"r pe care le implementeaza clasa
29.11.2013
Curs 9 STR
43
%odificatori de clasa
declaratia p"ate include m"di!icat"ri de clasa public8 abstract8 final$ care in!luenteaza m"dul in care va !i utilizata clasa daca clasa este declarata public# ea p"ate !i accesata de "rice c"d Java care p"ate accesa pac)etul care " c"ntine
clasele declarate Abstract p"t c"ntine "rice p"ate !i c"ntinut intr*" clasa n"rmala variabile# met"de# c"nstruct"ri$
" clasa este declarata final daca nu este p"sibil sa aiba subclase
29.11.2013
Curs 9 STR
44
Constructori
c"rpul clasei c"ntine cel putin un c"nstruct"r# c"nstruct"r adica " met"da care seteaza " n"ua instanta a clasei
se utilizeaza cuvantul c)eie ne# impreuna cu un c"nstruct"r pentru a crea " instanta a clasei
29.11.2013
Curs 9 STR
45
:e"arece Java nu utilizeaza p"interi# adresele de mem"rie nu p"t !i suprascrise in m"d accidental J.( se "cupa de intre&ul mana&ement al mem"riei# in acest !el !iind evitate pr"blemele cu al"carea si deal"carea mem"riei
29.11.2013
Curs 9 STR
46
int"tdeauna c"nstruc"rul are acelasi nume ca si clasa pe care " c"nstruieste case*sensitive$
c"nstruct"rii nu returneaza nici " val"are# d"ar atunci cand sunt utilizati impreuna cu ne# returneaza " re!erinta la un n"u "biect
29.11.2013
Curs 9 STR
47
Constructori default
c"nstruct"rul !ara ar&umente este un c"nstruct"r de!ault plat!"rma Java !urnizeaza un c"nstruct"r de!ault c"nstruct"r d"ar daca nu de!inesti in m"d explicit "rice alt c"nstruct"r cand se de!ineste un c"nstruct"r# trebuie de!init si un c"nstruct"r de!ault
29.11.2013
Curs 9 STR
48
29.11.2013
Curs 9 STR
49
.xemplu constructor
intr*un c"nstruct"r# cuvantul c)eie this p"ate !i utilizat pentru a !ace re!erinta la alti c"nstruct"ri ai aceleiasi clase
29.11.2013
Curs 9 STR
50
Inlantuirea constructorilor
nu se p"t utiliza si super)* si this)* in acelasi c"nstruct"r c"mpilat"rul !urnizeaza un c"nstruct"r implicit super)* pentru t"ti c"nstruct"rii
29.11.2013
Curs 9 STR
51
0estructori Java3
in Java nu exista c"nceptul de Qdestruct"r< pentru "biectele care nu se mai utilizeaza deal"carea mem"riei este realizata in m"d aut"mat de catre J.(
un pr"ces din bac2&r"und denumit c"lect"r de spatiu disp"nibil &arba&e c"llect"r$ preia mem"ria "biectel"r nere!erentiate as"cierea dintre un "biect si " re!erinta la un "biect este taiata prin atasarea altei val"ri re!erintei "biectului# de exemplu: ob6ectPeference ( null2 un "biect !ara re!erinte este un candidat pentru deal"care in timpul c"lectarii de spatiu disp"nibil
29.11.2013
Curs 9 STR
52
/)e &arba&e c"llect"r s4eeps t)r"u&) t)e J.(Gs list "! "b1ects peri"dicall7 and reclaims t)e res"urces )eld b7 unre!erenced "b1ects All "b1ects t)at )ave n" "b1ect re!erences are eli&ible !"r &arba&e c"llecti"n
8e!erences "ut "! sc"pe# "b1ects t" 4)ic) 7"u )ave assi&ned null# and s" !"rt)
/7picall7# t)e &arba&e c"llect"r is run 4)en mem"r7 is l"4 (a7 n"t be run at all >npredictable timin&
29.11.2013
Curs 9 STR
53
3u putem impiedica c"lect"rul de spatiu disp"nibil sa se execute# insa ii putem cere sa se execute mai repede
(et"da finali$e)* a unui "biect se va executa imediat dupa c"lectarea de spatiu disp"nibil
Aceasta met"da p"ate !i utilizata d"ar pentru cazuri speciale suc) as cleanin& up mem"r7 all"cati"n !r"m native calls$ dat"rita impredictibilitatii c"lect"rului de spatiu disp"nibil /)in&s li2e "pen s"c2ets# !iles# and s" !"rt) s)"uld be cleaned up durin& n"rmal pr"&ram !l"4 be!"re t)e "b1ect is dere!erenced
29.11.2013
Curs 9 STR
54
Campuri
campurile sunt de!inite ca parte a de!initie clasei !iecare instanta primeste pr"pria c"pie a variabilel"r instantei
29.11.2013
Curs 9 STR
55
%esa"e
utilizati mesa1e pentru a inv"ca un c"mp"rtament al unui "biect
29.11.2013
Curs 9 STR
56
%etode
met"dele de!inesc m"dul in care un "biect raspunde la mesa1e met"dele de!inesc c"mp"rtamentul unei clase
29.11.2013
Curs 9 STR
57
29.11.2013
Curs 9 STR
58
prin val"are pentru tipurile primitive prin re!erinta la "biecte pentru tipurile re!erinta
29.11.2013
Curs 9 STR
59
Ce returnea(a metodele
cavantul c)eie return este utilizat pentru a returna c"ntr"lu care met"da apelanta
p"t exista mai multe instructiuni return intr*" met"daL se va exeuta prima intilnita
29.11.2013
Curs 9 STR
60
acelasi "perat"r este utilizat atat pentru met"dele clasei cat si cele ale instantei daca se apeleaza " met"da a aceleiasi clase# "perat"rul d"t nu este necesar
29.11.2013
Curs 9 STR
61
se p"ate !"l"si acelasi nume pentru di!erite met"de# atata timp cat au semneturi di!erite
nu mai este nev"ie sa !"l"sim nume di!erite pentru met"de e%&% Fprint<trin!; sau Fprint;ouble;$ pentru !iecare tip de date ce trebuie tiparit
29.11.2013
Curs 9 STR
62
" met"da cu aceeasi semnatura si return t7pe ca si met"da din superclasa suprade!ineste met"da din superclasa public class KankAccount A pri"ate float balance2 public int !etKalance)* A return balance2 E E public class Jn"estmentAccount exten s KankAccount A pri"ate float cashAmount pri"ate float in"estmentAmount2 public int !etKalance)* A return cashAmount : in"estmentAmount2 E P
29.11.2013
Curs 9 STR
63
%etoda main
pentru ca " aplicatie sa se p"ata executa avem nev"ie de " met"da main)*a clasei J.( incarca " clasa si incepe executia prin apelul met"dei main)<trin!>? ar!s* public: met"da p"ate !i apelata de catre "rice "biect static: nu este nev"ie sa se creeze initial un "biect "oi : nu returneaza nimic
29.11.2013
Curs 9 STR
64
Incapsulare
ceea ce este declarat pri"ate in clasa starea$ nu p"ate !i apelat decat de met"dele clasei pentru a pr"te1a starea campurile se marc)eaza pri"ate
alte "biecte trebuie sa acceseze starea campurile private * prin intermediul met"del"r publice
29.11.2013
Curs 9 STR
65
%em!ri static
m"di!icarea val"rii intr*un "biect al clasei va m"di!ica val"area pentru t"ate "biectele
met"dele si campurile statice p"t !i accesate !ara sa se instantieze clasa met"dele si campurile statice se declara utilizand cuvantul c)eie static
29.11.2013
Curs 9 STR
66
%em!ri final
in m"d tipic# c"nstantele as"ciate unei clase sunt declarate campuri static final# pentru a putea !i us"r accesate
29.11.2013
Curs 9 STR
67
Clase a!stracte
clasele abstracte nu p"t !i instantiateL se presupune ca sunt " superclasa pentru alte clase abstract class Learner A public abstract <trin! !etName)*2 public abstract int !etA!e)*2 public int !etMaxRra e)* A return !etA!e)* M /2 E E met"dele abstract nu au implementare daca " clasa c"ntine una sau mai multe met"de de tip abstract# ea este " clasa abstract# si trebuie declarata in c"nsecinta clasele c"ncrete au implementare c"mpleta si p"t !i instantiate
29.11.2013
Curs 9 STR
68
Pac&ete
clasele p"t !i &rupate: l"&ic# in !unctie de m"delul ce va !i c"nstruit ca seturi pr"iectate pentru a !i utilizate impreuna pentru c"nvenienta prin c"nventie# numele pac)etel"r se scriu cu litera mica di!erite pac)ete p"t c"ntine clase cu acelasi nume
29.11.2013
Curs 9 STR
69
4isi!ilitatea claselor
clasele p"t re!erentia alte clase din acelasi pac)et utilizand d"ar numele clasei pentru a putea accesa clase din alt pac)et# clasele trebuie sa utilizeze un nume c"mplet inclusiv pac)etul$ al clasel"r respective
29.11.2013
Curs 9 STR
70
Instructiunea import
se utilizeaza instructiunea import pentru a imp"rta pac)ete sau clase# pentru a !ace alte clase direct vizibile clasei tale
29.11.2013
Curs 9 STR
71
29.11.2013
Curs 9 STR
72
"ava/mat& Jr"vides classes !"r per!"rmin& arbitrar7*precisi"n inte&er arit)metic 'i&Inte&er$ and arbitrar7*precisi"n decimal arit)metic 'i&:ecimal$ "ava/s-l
Jr"vides t)e AJI !"r accessin& and pr"cessin& data st"red in a data s"urce usuall7 a relati"nal database$
"ava/text
Jr"vides classes and inter!aces !"r )andlin& text# dates# numbers# and messa&es in a manner independent "! natural lan&ua&es
73
29.11.2013
Curs 9 STR
74
29.11.2013
Curs 9 STR
75
29.11.2013
Curs 9 STR
76