Curs 9 STR

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 76

Sisteme in Timp Real

Semestrul I 2013 2014 Curs 9

Cuprinsul cursului 9

Sintaxa Java Partea 1:

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%

Sintaxa Java Part a 2-a:

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

.ezi Java /ut"rial la: )ttp:001ava%sun%c"m0d"cs0b""2s0tut"rial01ava0nutsandb"lts0variable3ames%)tml

29.11.2013

Curs 9 STR

im!a"ul Java este case-sensitive

Java este case*sensitive

yourname# yourName# Yourname# YourName sunt 4 identi!icat"ri di!eriti


Pac#a$e: all l"4er case

c"nventii:

theexample TheExample theExample THE_EXAMPLE

Class: initial upper case# c"mp"site 4"rds 4it) upper case

%et&od'field: initial l"4er# c"mp"site 4"rds 4it) upper case

Constants: all upper case

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

8ezervat pentru viit"are utilizari

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

Java are 4 cate&"rii de primitive

29.11.2013

Curs 9 STR

Primitive: intre$i )inte$ers*

3umere intre&i cu semn Initializate cu zer"

29.11.2013

Curs 9 STR

Primitive: valori reale )floatin$ points*

3umere ;&enerale< p"t avea parte !racti"nara$ Initializate cu zer"

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

Primitive: valori de tip !oolean

.al"rile !oolean sunt distincte in Java


= 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

= primitiva literala reprezinta " val"are ? tipuri:


inte&er !l"atin& p"int b""lean c)aracter strin&

29.11.2013

Curs 9 STR

11

iterale primitive: intre$i )inte$ers*

=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

iterale primitive: floatin$ point

!l"at literals end 4it) an ! "r 9$

B%1!

d"uble literals end 4it) a d "r :$

B%1:

e "r C$ is used !"r scienti!ic n"tati"n

B%1e2

A !l"atin& p"int number 4it) n" !inal letter is a d"uble

B%1 is t)e same as B%1d

+pper and lo,er case are e-uivalent

29.11.2013

Curs 9 STR

13

iterale primitive: secvente .scape

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

Tipuri primitive: conversii de tip cast

Java !ace " veri!icare exacta a tipuril"r

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

Conversii de tip cast: implicite vs/ explicite

Castin& is aut"maticall7 d"ne 4)en n" l"ss "! in!"rmati"n is p"ssible

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

:eclaratiile si initializarile p"t !i c"mbinate >tilizati K pentru atasare inclusiv initializare$

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

1peratori si precedenta operatorilor


=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

0eclararea si initiali(area o!iectelor


=biectele trebuie declarate inainte de a !i utilizate :eclaratia necesita tipul "biectului /ipul este clasa "biectului >tilizati K pentru atasare inclusiv initializare$ Initializarea unui "biect utilizeaza de "bicei "perat"rul ne# =perat"rul ne# este utilizat pentru a crea un n"u "biect >n "biect p"ate !i initializat cu null /abl"urile de "biecte sunt declarate ca si tabl"urile de primitive /abl"urile de "biecte sunt initializate cu null implicit Cxemple: Employee emp+ ( ne# Employee)+,-./1*2 Employee emp,2 emp, ( emp+2 ;epartment ept>? ( ne# ;epartment>+&&?2 Test>? t ( Ane# Test)+*8 ne# Test),*E2

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

+tili(area claselor ,rapper

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:

=biectele <trin! p"t !i initializate in diverse m"duri:

29.11.2013

Curs 9 STR

27

Concatenarea sirurilor

=perat"rul M c"ncateneaza siruri <trin!s$:


<trin! a ( HThisH : H is a H : H<trin!H2 Cxista si alte m"dalitati mai e!iciente de c"ncatenare

/ipurile primitive utilizate in apelul lui println sunt c"nvertite in m"d aut"mat la Strin&s

<ystem0out0println)Hans#er ( H : + : , : -*2 <ystem0out0println)Hans#er ( H : )+:,:-**2

Se "btine acelasi rezultatN

29.11.2013

Curs 9 STR

28

%esa"e de tip Strin$

sirurile Strin&s sunt "biecteL "biectele raspund la mesa1e


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

Instructiuni conditionale: if-else

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

S&ortcut pentru if-else: operatorul ternar

s)"rtcut pentru instructiunea i!*else: )LbooleanMexprN 7 LtrueMchoiceN O LfalseMchoiceN*

"btinem c"d mai scurt sa !iti si&uri ca c"dul p"ate !i inteles

29.11.2013

Curs 9 STR

33

Instructiuni conditionale: s,itc&


testeaza " sin&ura variabila pentru mai multe val"ri ale alternativel"r si executa case*ul c"respunzat"r se trece peste "rice case !ara break se executa urmat"rul case clauza efault trateaza val"rile care nu au !"st tratate explicit de un case

29.11.2013

Curs 9 STR

34

Instructiuni de !uclare: ,&ile si do /// ,&ile

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

Instructiuni de !uclare: for

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<

sc"pul sau este restrans d"ar la l""p

29.11.2013

Curs 9 STR

36

for vs/ ,&ile

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

.xemplu !ranc&in$ statements

29.11.2013

Curs 9 STR

39

Scopul unei varia!ile

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

incapsuleaza atribute campuri$ si c"mp"rtamente met"de$

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$

membrii p"t apartine:


clasele p"t !i:


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

clasele sunt &rupate in pac)ete

un pac)et c"ntine " c"lectie de clase relati"nate in m"d l"&ic

!isierele cu c"d sursa au extensia 06a"a

pentru !iecare !isier 06a"a exista " sin&ura clasa publica

" 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

declaratia unei clase speci!ica un tip


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

alt!el p"ate !i accesata d"ar din 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$

nu p"t !i instantiate# d"ar subclassed !urnizeaza in!"rmatie c"muna pentru subclase

" 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

met"da are acelasi nume ca si clasa

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

%ana$ementul memoriei in Java

: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

Jr"&ramat"rul nu trebuie sa se pre"cupe de al"carea si deal"carea mem"riei din )eap

29.11.2013

Curs 9 STR

46

%ai mult despre constructori

c"nstruct"rii sunt utilizati pentru a crea si initializa "biecte

int"tdeauna c"nstruc"rul are acelasi nume ca si clasa pe care " c"nstruieste case*sensitive$

c"nstruct"ri nu au return t7pe

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

Supraincarcarea constructorilor )overloadin$*

intr*" clasa p"t exista mai multi c"nstruct"ri cu parametri di!eriti

acest lucru p"arta denumirea de "verl"adin& K supraincarcare

supraincarcarea c"nstruct"ril"r !ace p"sibila initializarea di!erita a instantel"r

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

"biectele supeclasei sunt c"nstruite inainte de subclasa

super)ar!ument list* initializeaza membrii superclasei super)ar!ument list*2 this)ar!ument list*2

prima linie a c"nstruct"rului p"ate !i una dintre acestea:


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

Colectorul de spatiu disponi!il

/)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)

/)e J.( decides 4)en t)e &arba&e c"llect"r is run


/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

Cum functionea(a colectorul de spatiu disponi!il

3u putem impiedica c"lect"rul de spatiu disp"nibil sa se execute# insa ii putem cere sa se execute mai repede

<ystem0!c)*2 Cste d"ar " cerere# nu si " &arantare a executiei

(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

"biectele retin starea in campuri !ields$


campurile sunt de!inite ca parte a de!initie clasei !iecare instanta primeste pr"pria c"pie a variabilel"r instantei

campurile p"t !i initializate daca se d"reste$ atunci cand sunt declarate

se !"l"sesc val"rile de!ault atunci cand campurile nu sunt initializate

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

t"ate met"dele apartin unei clase

29.11.2013

Curs 9 STR

57

Semnatura unei metode

intr*" clasa p"t exista mai multe met"de cu acelasi nume

!iecare met"da trebuie sa aiba " alta semnatura

semnatura met"dei c"nsta in:


numele met"dei numarul si tipul ar&umentel"r

29.11.2013

Curs 9 STR

58

Parametrii unei metode

ar&umentele parametrii$ sunt transmise:


prin val"are pentru tipurile primitive prin re!erinta la "biecte pentru tipurile re!erinta

val"rile primitivel"r nu p"t !i m"di!icate atunci cand sunt transmise ca si ar&ument

29.11.2013

Curs 9 STR

59

Ce returnea(a metodele

met"dele returneaza cel mult " val"are sau un un "biect

daca tipul return este "oi # este "pti"ala instructiunea return

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

Invocarea unei metode

pentru a apela " met"da se !"l"seste "perat"rul d"t ;%<


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

Supraincarcarea metodelor )overloadin$*

se p"ate !"l"si acelasi nume pentru di!erite met"de# atata timp cat au semneturi di!erite

se numeste "verl"adin& K supraincarcare

met"da println)* a <ystem0out0println)* are 10 declaratii di!erite de parametri:

boolean8 char>?8 char8 <trin!# si una !ara parametri

ouble8 float8 int8 lon!8 Qb6ect8

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

Supradefinirea metodelor )overridin$*

" 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

campurile si met"dele statice apartin clasei

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

un camp declarat final este un camp care nu p"ate !i m"di!icat

aceasta este varianta Java a unei c"nstante

in m"d tipic# c"nstantele as"ciate unei clase sunt declarate campuri static final# pentru a putea !i us"r accesate

c"nventie uzuala: pentru numele l"r se !"l"sesc d"ar ma1uscule

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

e%&% clasele Tester si KankAccount sunt de!inite in pac)ete di!erite

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

Pac&ete Java 1/5 )de completat 1/6*

29.11.2013

Curs 9 STR

72

Cele mai importante pac&ete Java


"ava/lan$ Jr"vides classes t)at are !undamental t" t)e desi&n "! t)e Java pr"&rammin& lan&ua&e R Includes 4rapper classes# Strin& and Strin&'u!!er# =b1ect# and s" "n Imp"rted implicitl7 int" all classes "ava/util C"ntains t)e c"llecti"ns !rame4"r2# event m"del# date and time !acilities# internati"nalizati"n# and miscellane"us utilit7 classes "ava/io Jr"vides !"r s7stem input and "utput t)r"u&) data streams# serializati"n and t)e !ile s7stem
29.11.2013 Curs 9 STR

"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

.xemplu pac&et: "ava/lan$

29.11.2013

Curs 9 STR

74

.xemplu clasa: Strin$

29.11.2013

Curs 9 STR

75

.xemplu clasa: Strin$2uffer

29.11.2013

Curs 9 STR

76

You might also like