You are on page 1of 4

Proqromore l4v4

L|mba[u| IAVA s| concepte|e programar|| pe ob|ecte


rogramarea orlenLaLa pe oblecLe prlnclpala lnovaLle adusa de C++ esLe concepLul de clasa
Clasa esLe un nou Llp de daLe care exLlnde Llpul sLrucLurll dln C sl care permlLe gruparea dupa
anumlLe crlLerll a unul numar de varlablle sl de funcLll LsLe creaL asLfe un sablon de daLe care poaLe
fl mulLlpllcaL lnLrun program ln orlcaLe exemplare ln funcLle de resursele dlsponlblle
llecare cople a clasel se numesLe ob|ect de t|pu| c|ase| respect|ve sau |nstanta c|ase|
Var|ba|||e|e declaraLe lnLro clasa se numesc varlablle membru sau aLrlbuLe
Iunct|||e declaraLe lnLro clasa se numesc funLll membru sau meLode
rocesul de grupare al aLrlbuLelor sl meLodelor lnLro clasa se numesLe lncapsulare
SemnlflcaLla aLrlbuLelor clasel sl acLlunlle execuLaLe prln meLodele clasel esLe ceea ce Lrebule
sa sLlm
SLllnd acesLe lucrurl o clasa poaLe fl uLlllzaLa ln orlce program asLfel reallzanduse refoloslrea
codurllor enLru a apela un aLrlbuL sau o meLoda dlnLrun oblecL Lrebule sa LrlmlLem un mesa[
oblecL Mesa[ul Lrebule sa conLlna numele oblecLulul sl numele aLrlbuLulul sau a meLodel separaLe
prln " ln cazul meLodel mesa[ul va conLlne sl o llsLa de parameLrl
oblecLaLrlbuL oblecLmeLode (parameLrl)
LlemenLul de baza al llmba[ulul !AvA esLe clasa Clasele poL fl grupaLe la randul lor dupa
anumlLe crlLerll ln blblloLecl de clase ln llmba[ul !AvA blblloLeclle se numesc pacheLe C clasa poaLe
fl comparaLa cu un program scrls ln C
varlabllele programulul sunL aLrlbuLe funcLllle sunL meLode lar funcLla maln de la lansarea ln
execuLle a programulul esLe lnloculLa cu o meLoda speclala numlLa consLrucLor
ConsLrucLorll nu au Llp reLurnaL declaraL expllclL lar numele lor Lrebule sa colnclda cu cel al
clasel prln urmare un consLrucLor lnlLlallzeaza oblecLul clasel
enLru a folosl un oblecL dlnLro clasa lnLrun program acesLa Lrebule declaraL sl lnlLlallzaL
prlnLrun consLrucLor
C clasa poaLe conLlne mal mulLl consLrucLorl cu condlLla ca acesLla sa alba llsLe dlferlLe de parameLrl
AcesL lucru se numesLe supralncarcarea consLrucLorllor llecare consLrucLor va da un alL Llp de
lnlLlallzare penLru oblecLele clasel
un program !AvA poaLe fl comparaL cu un slsLem formaL dln mal mulLe programe care ruleaza
slmulLan oblecLele foloslLe ln program sl care comunlca lnLre ele La fel ca sl consLrucLorll meLodele
unel clase poaLe fl supralncarcaLe C clasa poaLe conLlne mal mulLe meLode cu acelasl nume cu
condlLla sa alba llsLe dlferlLe de parameLrl
rogramarea orlenLaLa pe oblecLe permlLe exLlnderea funcLlonallLaLll unel clase daLe prln
creearea de nol clase care sa mosLeneasca LoaLe caracLerlsLlclle clasel lnlLlale Clasa lnlLlala se
numesLe superclasa dlrecLa sau clasa parlnLe penLru noua clasa Clasa nou creaLa se numesLe
subclasa dlrecLa sau clasa derlvaLa sau clasa copll a clasel parlnLe
Clasa nou creaLa va mosLenl LoaLe aLrlbuLele sl meLodele dln clasa parlnLe ln sensul ca
acesLea poL fl lnvocaLe fara nlclo resLrlcLle ln plus clasa nou creaLa poaLe avea aLrlbuLe sl meLode
nol ue asemenea aLrlbuLele sl meLodele mosLenlLe poL fl suprascrlse (redlflnLe) ln noua clasa
Llmba[ul C++ folosesLe mosLenlrea mulLlpla AceasLa lnseamna ca o clasa poaLe avea mal
mulLe superclase dlrecLe acesLea poL avea la randul lor superclase dlrecLe 1oaLe acesLe clase se
numesc superclase penLru clasa nou creaLa Clasa nou creaLa va mosLenl LoaLe superclasele el
MosLenlrea mulLlpla consLlLule o alLa problema a llmba[ulul C++ lnLrucaL aceasLa poaLe creea
confuzle sl poaLe duce la erorl de compllare
ue exemplu Sa presupunem ca avem o clasa A are are doua subclase dlrecLe 8 sl C AcesLea
sunL la randul lor superclase dlrecLe penLru clasa u Crearea unul oblecL de Llpul d va duce lmpllclL la
creearea oblecLelor de Llpul b aparLlne lul 8 sl c aparLlne lul C


d oblecL de Llpul clasel u de unde rezulLa ca b aparLlne lul 8 sl c aparLlne lul C rezulLa ca a1 aparLlne
lul A sl a2 aparLlne lul A
Sa presupunem ca ln d esLe apelaLa o meLoda mosLenlLa dln clasa A Medlul de execuLle o va
cauLa mal lnLal ln clasa u apol ln clasa 8 sl clasa C sl lar nu o gasesLe sl gasesLe medoLa ln a1 sl a2 de
unde rezulLa eroare (nu sLle pe care sa o execuLe)
Llmba[ul !AvA folosesLe mosLenlrea slmpla flecare clasa !AvA are o slngura superclasa dlrecLa
Slngura excepLle o face c|asa [ava|ongCb[ect care nu are superclasa dlrecLa Clasa [avalongCb[ecL
esLe varful lerarhlel de clasa ln llmba[ul !ava sl esLe superclasa penLru orlce clasa !AvA
uaca o clasa nu are declaraLa ln mod expllclL superclasa dlecLa superclasa dlrecLa vl fl clasa
Cb[ecL ln programarea orlenLaLa pe oblecLe accesul la aLrlbuLe sl meLode esLe conLrolaL prln
modlflcaLorll de acces ln !AvA avem Lrel Llpurl de aces
prlvaL poslbll numal ln clasa respecLlva
proLe[aL ln clasa respecLlva sl subclasele el
publlc ln orlce clasa
S1LvL !C8S
,ed|u| de programare IAVA
Medlul de programare !AvA se numesLe !uk adlca !AvA developmenL klL Se gasesLe
compllaLorul penLru ma[orlLaLea plaLformelor sl poaLe fl descarcaL graLulL de pe slLeul
www[avasuncom/verslunea 16
Llmba[ul !AvA a fosL lansaL oflclal ln mal 1993 sub denumlrea de !AvA Alfa lar pana la
sfarslLul lul 1993 au mal fosL lansaLe 2 verslunl !ava 8eLa sl !uk 10
ue aLuncl llmba[ul sa dezvolLaL conLlnuu a[ungand la verslunea 16 AceasLa dezvolaLere sa
manlfesLaL mal ales prln dezvolLarea lnLerfeLel !AvA Al (ALlCA1lCn 8CC8AMlnC ln1L8lACL) cu
pasLrarea compaLlblllLaLll programelor de[a scrlse ln !AvA sl care rulau pe alLe verslunl ale
lnLerfeLelor asLfel lnLerfaLa Al sa dezvolLaL prln adaugarea de nol clase sl pacheLe sau prln
modlflcarea claselor exlsLenLe
resupunand ca o anumlLa meLoda dlnLro clasa a suferlLL lmbunaLaLlrl sa deflnlL o alLa
meLoda cu acelasl nume sau alL nume penLru noa varlnaLa a meLodel vechea varlablla a fosL sl ea
pasLraLa
C modlflcare semnlflcaLlva a aduso verslunea !AvA 8L1A prln poslblllLaLea lncarcarll claselor
dln arhlve zlp ulLerlor arhlvele foloslLe sunL !A8 (!AvA A8CPlvL) AlgorlLmul de compresle penLru o
arhlva !A8 esLe LoL Zl dlfera doar exLensla oL fl foloslLe ambele exLensll
lncepand cu verslunea !AvA 8eLa lnLreaga lnLerfaLa Al a fosL comprlmaLa lnLrun flsler
CLASSLSZl
llslerul CLASSLSZl avea la !uk 10 dlmenslunea de 1 M8 la verslunea 13 lnLerfaLa Al e conLlnuLa
ln flslerul 81!A8 sl are aproxlmaLlv 14 M8 (conLlne aproxlmaLlv 3000 de clase sl lnLerfeLe) lar !uk 13
are 24 M8
ln urma lnsLalarll !uk se obLlne urmaLoarea sLrucLura
!uk/ 8ln
uLMC
lnCLuuL
lnCLuuL_CLu
!8L /8ln
/Ll8
Ll8
S8C!A8
!uk/8ln conLlne programe execuLablle dezansamblor depanaLor generaLor de documenLe
compllaoLrul lnLerpereLorul program de vlzuallzare a appleLurllor
uLMC esLe opLlonal sl conLlne o serle de exemple apllcaLll sl mlnlapllcaLll !AvA
lnCLuuL sl lnCLuuL_CLu conLln o serle de flslere anLeL penLru lnLeracLlunea dlnLre !AvA sl
C++
!8L!AvA 8un1lML Lnvl8CnMLn1
!8L/8ln sl /Ll8 conLln suporLul penLru medlul de execuLle !AvA
ulrecLorul 8ln conLlne lnLerpreLorul !AvA ln 2 varlanLe [avaexe cu consola sl [avaexe fara
consola Mal conLlne o serle de blblloLecl cu legaLura dldacLlca necesara lnLeracLlunll dlnLre maslna
vlrLuala !AvA sl maslna reala
uLMC esLe opLlonal sl conLlne o serle de exemple de apllcaLll sl mlnlapllcaLll !AvA
ue exemplu
awLdll ofera suporLul penLru elemenLele graflce de lnLerfaLa
8lblloLeca neLdll furnlzeaza suporLul penLru operarea ln reLea
!pegdll eLc
ulrecLorul Ll8 conLlne flslere rL[ar ce sLocheaza lnLerfaLa !AvA Al
ulreLorul lonLs conLlne fondurl foloslLe de maslna vlrLuala
ulrecLorul Audlo conLlne o serle de fondurl muzlcale uLlllzaLe ln !AvA
Arhlva src[ar conLlne flslerul sursa ale claselor dln lnLerfaLa !AvA Al LsLe opLlonala AcesL
flsler esLe uLlllzaL ln procesul de depanare a programelor !AvA de oblcel dar sl ca documenLaLle
1oaLe meLodele dln acesLe surse sunL comenLaLe sl sunL ln formaL P1ML
9rograme|e executab||e a|e med|u|u| de programare IAVA
Comp||atoru|
Codul sursa al unul program !AvA esLe conLlnuL ln flslerul sursa AcesLea sunL flslere de Llp
LexL care au exLensla [ava un flsler sursa poaLe conLlne o slngura declaraLle de clasa sau mal mulLe
declaraLll de clasa cu blocurl de cod dlferlLe
ln prlmul caz flslerul sursa va avea numele ldenLlc cu cel al clasel declaraLe
Llmba[ul !AvA face dlsLlncLle lnLre llLerele mlcl sl cele marl
uaca un flsler sursa conLlne mal mulLe declaraLll de clasa obllgaLorlu doar una slngura
Lrebule sa fle publlca aLuncl flslerul sursa va avea numele ldenLlc cu cel al clasel publlce
ln !AvA poL fl scrlse 2 Llpurl de programe apllcaLllle sl mlnlapllcaLllle !AvA (sau appleLurlle)
ApllcaLllle !AvA sunL lansaLe ln execuLle prln lnLemedlul lnLerpreLorulul furnlzaL de pacheLul !uk lar
appleLurlle sunL sunL execuLaLe prln lnLermedlul unel maslnl vlrLuale daLa de un browser(AppleLurl
programe !AvA ce ruleaza pe paglnlle WL8)
un program !AvA esLe lansaL ln execuLle prln lnLermedlul unel clase speclale numlLa clasa
prlmara La apllcaLll clasa prlmara esLe clasa ce conLlnme meLoda publlc sLaLlc vold
maln(SLrlngargs)" lar clasa prlmara la appleLurl esLe clasa ce exLlnde clasa [avaappleLAppleL
Compllarea unul program !AvA se lanseaza de oblcel lncepand cu clasa prlmara AcesL lucru
va deLermlna compllarea LuLuror claselor dln program 1oLusl poL fl compllaLe sl clasele lndlvlduale
CompllaLorul !AvA se numesLe [avacexe Se lanseaza dln llnla de comanda prlmlnd ca
parameLrl numele clasel prlmare cu LoL cu exLensla !AvA
SlnLaxa llnlel de comanda esLe !AvACopLlunlnumeClasarlmara!AvAparameLrl
ln urma execuLlel acesLel comenzl compllaLorul parcurge codul sursa al flecarel clase lnLerpreLeaza
lnsLrucLlunlle sl le Lransforma ln cod de oLeLl Se obLlne caLe un flsler compllaL penLru flecare clasa
declaraLa ln codul sursa AcesL flsler se numesLe flsler class un flsler class are numele ldenLlc cu
nemele clasel sl exLensla class
ln mod presLablllL flslerele class vor fl scrlse alaLurl de flslerele sursa enLru a schlmba acesL
lucru foloslm opLlunea u"
Lxemplu [avac u_CCLASL_numeClasarlmara[ava va scrle un flsler class ln dlrecLorul respecLlv
uaca programaLorul folosesLe alLe clase sl pacheLe decaL cele dln lnLerfaLa !AvA Al acesL
lucru Lrebule speclflcaL compllaLorul penLru ca acesLa sa le poaLa gasl se face foloslnd comanda
classpaLh"
Lxemplu [avac classpaLhCClaseCalLeclasezlpualLeclase[ar numeleClasel[ava
Spune compllaLorulul ca ln program poL fl foloslLe clase dlrecLorulul resplecLlv
CpLlunea C" produce o opLlmlzare a codull de ocLeLl obLlnuL AceasLa opLlune esLe penLru
clasele marl sl foarLe marl CpLlmlzarea consLa lnLro rearan[are a lnLrarllor dln Labela consLanLelor
clasel respecLlve de unde rezulLa o lncarcare raplda a claselor ln memorle
CpLlunea vL88CSL" deLermlna compllaLorul sa furnlzeze lnformaLll despre acLlvlLaLea sa
AcesLe lnformaLll conLln cand sl de unde esLe lncarcaLa o clasa anume caL a duraL compllarea el sl a
lnLregulul program lnformaLllle sunL aflsaLe ln consola compllaLorull lar daca vrem sa le pasLram
lnLrun flsler puLem sa le redlrecLlonam asLfel
!avacverbosenumeClasa[avalnfoLxL
CpLlunea nCWA8n" deLermlna compllaLorul sa nu mal aflseze mesa[e de averLlsemnL
Mesa[ele nu reprezlnLa erorl de compllare un mesa[ foarLe frecvenL esLe cel de depreclere al
meLodelor (nu e eroare) CompllaLorul ne spune ca am foloslL meLode depreclaLe care au varlanLe
mal nol
ln mod presLablllL ln urma compllarll compllaLorul lnclude ln codul de ocLeLl al meLodelor
aLrlbuLul LlnLnuM8L81A8LL"
AcesLa reallzeaza o corespondenLa bl[ecLlva lnLre lnsLrucLlunea codulul de ocLeLl al meLodelor
sl lnsLrucLlune codulul sursa al meLodelor
AcesL aLrlbuL nu are nlcl un rol ln Llmpul execuLlel cl folosesLe doar penLru depanarea clasel sl aLaL
loloslnd opLlunea g" compllaLorul mal lnsereaza sl aLrlbuLul Localvarlable1able" Ll
furnlzeaza lnformaLll despre flecare varlablla locala a meLodelor ln parLe (cum ar fl locul de
declalare denumlre semnaLura sl domenlul de vlzlblllLaLe) AcesLe lnformaLll nu au rol ln Llmpul
execuLleLl ln plus cele 2 aLrlbuLe furnlzeaza lnformaLll decompllaLoarelor !AvA care poL obLlne cu
a[uLorul lor un cod sursa caL mal aproplaL de cel orlglnal uln acesL moLlv esLe lndlcaL sa ellmln cele 2
aLrlbuLe la compllare
Se face cu gnone Se obLln clase de dlmenslunl mal mlcl

You might also like