Curs 1 Java
Curs 1 Java
INSTRUCTIUNI SI EXPRESII Toate activitatile ce se realizeaza intr-un program Java pot fi rezumate la o serie e instructiuni ! " instructiune # statement $ este o coman a simpla % scrisa intr-un lim&a' e programare si care etermina o actiune ! Instructiunile sunt actiuni elementare ale unui program Java ! (ai 'os putem ve em mai multe e)emple e instructiuni Java simple * int varsta+,-. import 'ava!a/t! n . S0stem!out!println#1Te)t 1$. Jucator!scor+23---. Unele instructiuni pro uc o valoare % ca in cazul in care se a una oua numere ! 4ceste instructiuni se numesc e)presii ! " expresie este o instructiune care are ca rezultat pro ucerea unei valori ! 5aloarea poate fi pastrata pentru o folosire ulterioara in program % poate fi folosita ime iat intro alta instructiune sau poate fi ignorata ! 5aloarea pro usa e o instructiune este numita valoare de retur ! Unele e)presii pro uc o valoare e retur numerica % cum ar fi cazul can se a una oua numere . altele pro uc valori &ooleene 6 a evarat sau fals 6 sau pot pro uce c7iar un o&iect Java ! C7iar aca ma'oritatea programelor Java contin o singura instructiune pe fiecare linie aceasta este oar o optiune e formatare % care nu sta&ileste un e incepe si un e se termina o instructiune ci are scopul principal e a mari lizi&ilitatea programului ! 8e fapt % fiecare instructiune Java se termina cu 1 . 9 ! Intr-o singura linie se pot intro uce astfel mai multe instructiuni fara a etermina pro&leme * '!culoare+9gal&en9. '!alegere+false. Instructiunile sunt grupate in Java folosin acola ele : si ; ! Un grup e instructiuni organizate intre acola e se numeste bloc ! 54RI4<I=E SI TIPURI 8E 84TE
-1-
Curs Java nr 1 Variabilele reprezinta un loc un e poate fi pastrata informatia intr-un program aflat in e)ecutie ! 5aloarea poate fi mo ificata orican in ca rul programului ! Pentru a crea o varia&ila tre&uie sa ii ati un nume si sa sta&iliti ce tip e informatie va stoca ! 8e asemenea % in momentul crearii puteti sa atri&uiti varia&ilei o valoare initiala ! E)ista trei tipuri e varia&ile in Java * varia&ile e instanta % varia&ile e clasa si varia&ile locale ! Variabilele de instanta sunt folosite pentru a efini atri&utele unui o&iect ! Variabilele de clasa efinesc atri&utele unei intregi clase e o&iecte si se aplica tuturor instantelor acesteia ! Variabilele locale sunt folosite in interiorul efinitiilor meto elor sau al &locurilor e instructiuni in ca rul unei meto e ! Ele pot fi folosite oar atunci can meto a sau &locul este e)ecutat e interpretorul Java % upa care isi inceteaza e)istenta ! Cu toate ca aceste trei tipuri e varia&ile sunt create asemanator % varia&ilele e clasa si e instanta sunt folosite intr-un alt mo ecat varia&ilele locale ! In continuare vom trata varia&ilele locale 6 celelalte oua tipuri vor fi etaliate mai tarziu ! OBS * Spre eose&ire e alte lim&a'e Java nu are varia&ile glo&ale # utiliza&ile in orice parte a unui program $ ! 5aria&ilele e clasa si e instanta sunt folosite pentru a comunica informatii espre un o&iect sau altul si pot inlocui nevoia e varia&ile glo&ale ! Inainte e a folosi o varia&ila in Java tre&uie mai intai sa o eclaram prin in icarea numelui si a tipului e informatie pe care il va stoca ! >ormatul eclaratiei este prezentat in continuare % specifican u-se intai tipul e informatie si apoi numele * int ma)im. String numeutilizator. &oolean stareTerminare. 5aria&ilele locale pot fi eclarate in orice loc in interiorul unei meto e % la fel ca oricare alta instructiune Java insa tre&uie eclarate inainte e a fi folosite ! In mo normal eclararea varia&ilelor urmeaza ime iat upa instructiunea care efineste meto a ! Pu&lic static voi main#string argumente?@$ : int total. String titlu. <oolean activare. ; 8aca vrem sa cream mai multe varia&ile e acelasi tip le putem eclara pe toate in aceeasi instructiune % separate e 1 % 1 * String stra a % oras % tara .
-A-
Curs Java nr 1 5aria&ilelor li se poate atri&ui o valoare atunci can sunt create prin atri&uire * int co posta+B---. String nume+94le)9. &oolean alegere+true. int varsta+3- % inaltime+1B-. 8upa cum se poate ve ea avem si posi&ilitatea e a atri&ui valori mai multor varia&ile e acelasi tip ! 5aria&ilelor locale tre&uie sa li se atri&uie valori inainte e a fi folosite in program % altfel acestea nu se vor compila ! 8efinitiile varia&ilelor e instanta si e clasa primesc o valoare initiala in functie e tipul informatiei pe care o stoc7eaza * varia&ilele numerice * caracterele * 1C-9 varia&ilele &ooleene * false o&iectele * null
Numele varia&ilelor in Java tre&uie sa inceapa cu o litera % cu un erscore # 1D9 $ sau cu 1 E 1 6 ele nu pot incepe cu o cifra ! 8upa primul caracter numele varia&ilelor pot contine orice com&inatie e cifre si litere ! Tre&uie sa retinem ca Java tine cont e litere mari si mici ! 8in aceasta cauza un program poate avea oua varia&ile iferite * una numita X si alta x sau una alb si alta ALB ! In practica s-a impus o 1regula9 e enumire a varia&ilelor Java * numele sunt formate in cuvinte sugestive iar in cazul in care sunt necesare mai multe cuvinte primul caracter al numelui este mic iar inceputul fiecarui cuvant este scris cu ma'uscula % ca in e)emplele e mai 'os * <utton incarca>isier. int co Fona. &oolean efinesteScor(a)im. TIPURI 8E 54RI4<I=E 8upa cum am vazut eclaratia e varia&ila contine in afara numelui si tipul informatiei stocate ! 4cest tip poate fi * un tip e ate e &aza numele unei clase sau interfete un ta&lou
In continuare prezentam tipurile e ate e &aza ale lim&a'ului ! E)ista opt tipuri e &aza pentru stocarea intregilor % numerelor in virgula mo&ila % caracterelor si valorilor &ooleene ! 4ceste tipuri mai sunt cunoscute si ca tipuri primitive eoarece fac parte integranta in lima'ul Java si nu sunt o&iecte % lucru care le face mai eficient e folosit ! 4ceste tipuri e ate au aceeasi imensiune si caracteristici in iferent e sistemul e
-,-
Curs Java nr 1 operare si e platforma folosita 6 spre eose&ire e alte tipuri e ate in alte lim&a'e e programare ! Pentru stocare intregilor avem patru tipuri e ate * - &0te - s7ort - int - long - pe G &iti - valori intre -1AG si 1AB - pe 1H &iti - valori intre -,ABHG si ,ABHB - pe ,A &iti - valori intre -A12B2G,H2G si A12B2G,H2B - pe H2 &iti - valori intre -IAA,,BA-,HG32BB3G-G si IAA,,BA-,HG32BB3G-B
Toate aceste tipuri sunt cu semn ceea ce inseamna ca pot stoca numere pozitive sau negative ! Tipul folosit pentru o varia&ila epin e e omeniul e valori e care este nevoie ! Un alt tip e numar ce poate fi stocat este cel reprezentat in virgula mo&ila . pentru acestea e)ista tipurile float si ou&le ! Numerele in virgula mo&ila sunt numerele care au o parte zecimala ! Tipul float este suficient in ma'oritatea cazurilor % pastran numere intre 1%2E-23 si ,%2E,G ! 8aca totusi este necesar se poate folosi tipul real ou&le ce poate stoca numere intre 2%IE-,A2 si 1%BE,-G ! Tipul c7ar este folosit pentru caracterele in ivi uale % cum ar fi litere % cifre % semne e punctuatie si alte sim&oluri ! Ultimul intre cele opt tipuri e &aza este &oolean ! Spre eose&ire e alte lim&a'e valorile pentru varia&ilele e acest tip nu sunt 1 si - ci true si false ! Toate tipurile e varia&ile prezentate folosesc litere mici si asa tre&uie folosite in ca rul programelor ! E)ista clase care au aceleasi nume cu acestea % ar incep cu litera mare 6 e e)emplu <oolean sau C7ar ! 4ceste clase au alt rol in programarea Java astfel incat tre&uie folosite iferit e tipurile e &aza ! TIPURI 8E C=4SE In afara celor opt tipuri e &aza o varia&ila poate fi e tip clasa * String nume8e>amilie+9Popescu9. Culoare par. 4tunci can o varia&ila are rept tip o clasa inseamna ca varia&ila refera un o&iect al clasei respective sau al uneia intre su&clasele sale ! Referirea la o superclasa ca tip e varia&ila este folositoare atunci can varia&ila poate fi una intre mai multe su&clase iferite ! 8eclararea unei varia&ile e tip "&'ect inseamna ca poate stoca orice o&iect ! OBS : Java nu are un ec7ivalent al instructiunii t0pe ef in C ! Pentru a eclara noi tipuri in Java se eclara o noua clasa iar varia&ilele pot folosi aceasta clasa rept tip !
-2-
Curs Java nr 1 8upa ce o varia&ila a fost eclarata I se poate a o valoare folosin operatorul e atri&uire % 1 + 1 * i Co +G32H. im&racatRapi +false. C"(ENT4RII Una intre meto ele cele mai importante e crestere a lizi&ilitatii unui program este folosirea comentariilor ! Comentariile reprezinta informatii intro use intr-un program oar in a'utorul persoanelor care incearca sa-si ea seama ce anume se intampla in program ! Compilatorul Java ignora total comentariile atunci can pregateste versiunea e)ecuta&ila a fisierului sursa Java ! E)ista trei tipuri iferite e comentarii pe care le putem utiliza in programele Java ! Prima mo alitate e a intro uce comentarii in program este e a il prefi)a cu oua sim&oluri slas7 1 JJ 1 ! "rice incepe upa aceste semne si pana la sfarsitul liniei este consi erat comentariu * int oreCre it+,. JJ efineste orele e cre it pentru curs 8aca orim sa intro ucem un comentariu care ocupa mai mult e un ran tre&uie sa incepem cu com&inatia 1 JK 1 si sa inc7eiem cu com&inatia 1 KJ 1 ! Ultimul tip e comentariu este proiectat pentru a fi interpreta&il si e catre calculator ! 8aca incepem comentariul cu 1 JKK 1 si il inc7eiem cu 1 KJ 1 atunci comentariul este interpretat ca reprezentan ocumentatia originala referitoare la functionarea clasei si a meto elor sale pu&lice ! 4cest tip e comentariu poate fi citit e utilitare ca J4548"C in pac7etul J8L ! 4cest utilitar foloseste aceste comentarii pentru a crea un set e pagini /e& care ocumenteaza programul % ierar7ia sa e clase si meto ele ! =ITER4=E Literalele sunt numerele % te)tul si alte informatii care reprezinta irect o valoare ! (ai e)plicit % literalele reprezinta un termen apartinan programarii % care inseamna e fapt ca ceea ce tastam este ceea ce vom o&tine ! Java are mai multe literale pentru intregi ! Numarul 2 e e)emplu este un literal pentru tipul int ! El poate fi atri&uit e asemenea varia&ilelor &0te sau s7ort eoarece el este suficient e 1mic9 si pentru aceste oua tipuri ! Un literal intreg mai mare ecat poate stoca o varia&ila int este consi erat automat ca avan tipul long ! Putem in ica faptul
-3-
Curs Java nr 1 ca un literal este un intreg e tip long prin a augarea sufi)ului = # sau l $ ! 8e e)emplu urmatoarea instructiune stoc7eaza valoarea 2 intr-un intreg e tip long * long totalPagini+2=. Pentru a reprezenta o valoare negativa putem folosi literalul impreuna cu semnul minus # 1 6 1 $ ! In Java putem folosi si literali in sistem octal sau 7e)azecimal ! Pentru a folosi un literal intreg in octal tre&uie sa il prefi)am cu cifra - . numarul octal BBB tre&uie astfel scris ca -BBB ! Intregii 7e)azecimali se folosesc prefi)ati cu -) 6 ca e e)emplu -)>> ! =iteralele in virgula mo&ila folosesc caracterul punct pentru punctul zecimal ! Toate literalele in virgula mo&ila sunt automat consi erate e tip ou&le ! Pentru a specifica tipul float a augam > # sau f $ 6 ca mai 'os * float valoarePi+,!1213>. Putem folosi si e)ponenti in literalele e virgula mo&ila folosin litera E # sau e $ urmata e e)ponent * ou&le )+1AeAA. ou&e 0+1IE-B-. =iteralele caracter sunt e)primate printr-un singur caracter inca rat e g7ilimele simple * MaN % MON sau M,N ! Unele caractere literale reprezinta caractere care nu sunt tipari&ile sau accesi&ile pe tastatura ! (ai 'os vom ve ea co uri speciale care pot reprezenta aceste caractere speciale * Cn + ne/ line # linie noua $ Ct + ta& C& + &acPspace Cr + revenire la capat e ran # carriage return $ Cf + formfee # salt la pagina noua $ CC + semnul C CN + g7ilimele simple C9 + g7ilimele u&le CD + octal C)D + 7e)azecimal CuD + caracter unico e # stan ar pe 1H &iti spre eose&ire e 4SCII stan ar care presupune oar 1AG e caractere $
In cazul ultimelor trei co uri se va inlocui in practica semnul 1 D 1 cu un numar sau o cifra 7e)azecimala ! Ultimele literale pe care le putem folosi intr-un program Java sunt sirurile e caractere ! Unsir # string $ in Java este un o&iect si nu un tip e ate primar ! Sirurile nu sunt
-H-
Curs Java nr 1 pastrate in ta&louri # ca in C e e)emplu $ ! 8eaorece sirurile sunt o&iecte Java avem si meto e care pot fi folosite pentru com&inarea si mo ificarea sirurilor precum si pentru a etermina aca oua siruri au aceeasi valoare ! =iteralele sir constau intr-o serie e caractere inca rate intre g7ilimele u&le * String autor+9Ion Popescu9. String parola+9pass/or 9. Sirurile pot contine si caractere speciale 6 prezentate anterior * String e)emplu+9Te)t intre g7ilimele C9CIT4TC99. S0stem!out!println#1Primul ran Cn 4l oilea ran 9$. String titlu+9Invatati singuri JavaCuA1AA9. In ultima instructiune % secventa CuA1AA pro uce sim&olul 1 T( 1 # pe sistemele configurate sa suporte Unico e $ ! 4tunci can se foloseste un literal sir Java stoc7eaza valoarea sa ca o&iect String ! Nu tre&uie sa cream e)plicit un nou o&iect 6 ca in cazul celorlalte o&iecte cu care vom lucra 6 eci este la fel e usor e lucrat cu acest tip ca si cu tipurile primare ! Sirurile sunt iferite in ceea ce priveste acest aspect 6 nici unul intre tipurile primare nu sunt pastrate ca o&iecte atunci can sunt folosite ! EXPRESII SI "PER4T"RI ! " e)presie reprezinta o instructiune care pro uce o valoare ! Cele mai folosite e)presii sunt cele matematice 6 ca in continuare * int )+,. int 0+2. int z+)K0. Ultima instructiune intre cele e mai sus este o e)presie ! "peratorul e multiplicare K este folosit pentru inmultirea intre ) si 0 iar rezultatul pro us e e)presie va fi pastrat intr-o varia&ila z e tip intreg ! 5aloarea pro usa e o e)presie este numita si valoare e retur ! 4ceasta valoare poate fi atri&uita unei varia&ile si folosita in iferite feluri in programele noastre ! Operatorii reprezinta sim&oluri speciale folosite in functii matematice % in unele tipuri e instructiuni e atri&uire sau in comparatii logice ! "PER4TII 4RIT(ETICE In Java e)ista cinci operatori folositi pentru operatiile aritmetice e &aza *
-B-
Curs Java nr 1
>iecare operator e mai sus foloseste cate oi operanzi 6 cate unul e fiecare parte a operatorului ! "peratorul e sca ere 1 6 1 poate fi folosit si pentru a nega un singur operator ! Un lucru care merita atentie sporita in ceea ce priveste operatorul e impartire este tipul operanzilor folositi ! 8aca stocam rezultatul unei impartiri intr-un intreg acesta va fi rotun'it la un numar intreg pentru ca tipul int nu poate lucra cu valori in virgula mo&ila ! 8e e)emplu e)presia A1 J 3 are rezultatul 2 aca acesta este stocat intr-un int ! Impartirea mo ulo # 1 R 1 $ pro uce ca rezultat restul impartirii ! In e)presia A1 J 3 rezultatul pe care il vom o&tine va fi 1 ! In general ma'oritatea operatiilor aritmetice cu intregi pro uc un rezultat e tip int in iferent e tipul initial al operanzilor ! 8aca lucram cu alte tipuri 6 numere in virgula mo&ila sau intregi long 6 tre&uie sa ne asiguram ca operanzii au acelasi tip cu cel la care vrem sa a'ungem ! (ai 'os avem prezentat un e)emplu care integreaza folosirea tuturor operatorilor aritmetici * class 4moe&a : pu&lic static voi main #String argumente?@$ : int )+H. s7ort 0+2. float a+!1Af. S0stem!out!println#Sati inceput cu S Q ) Q S amoe&eS$. S0stem!out!println#SCt8oua s-au casatorit si partenerii lor s-au mutat la ele!S$. )+)QA. S0stem!out!println#S4veti acum S Q )$. S0stem!out!println#SCtSe eclanseaza mitoza % care u&leaza numarul e amoe&e!S$. )+)KA. S0stem!out!println#S4vem acum S Q )$. S0stem!out!println#SCtIncepe o lupta! S Q 0 Q S amoe&e pleaca!S$. )+)-0. S0stem!out!println#S4vem acum S Q )$. S0stem!out!println#SCt4tac al paramecilor T 4m pier ut o treime in colonie!S$. )+)-#)J,$. S0stem!out!println#S4m ramas cu S Q ) Q S amoe&eS$. S0stem!out!println#SCostul intretinerii zilnice per amoe&a * S Q a$. S0stem!out!println#SCostul total al intretinerii zilnice * S Q #aK)$$. ; ;
-G-
Curs Java nr 1
Comentan pe scurt aceasta aplicatie Java e)trem e simpla o&servam ca in liile ,- 3 se creaza trei varia&ile ce primesc in acelasi timp si valori initiale . varia&ilele ) si 0 sunt eclarate e tipul int iar varia&ila a este eclarata numar in virgula mo&ila float 6 eoarece tipul pre efinit in Java pentru numere in virgula mo&ila este ou&le tre&uie sa a augam sufi)ul f la sfarsitul literalului pentru a in ica # si forta $ tipul float ! In ca rul programului apare in mai multe instructiuni sintagma 1 S0stem!out!println 1 . 4ceasta meto a este folosita in aplicatii pentru a afisa siruri si in general informatii pe ispozitivul stan ar e iesire 6 in cele mai multe cazuri ecranul ! S0stem!out!println#$ preia un singur argument # intre paranteze $ * un sir ! Pentru a prezenta mai mult e o varia&ila sau un literal ca argument pentru println#$ se poate folosi operatorul Q % pentru a concatena aceste elemente intr-un singur sir ! 4TRI<UIRE4 UNEI 54="RI 4tri&uirea este o e)presie % ea pro ucan un rezultat ! In practica atri&uirea poate apare intr-un sir e instructiuni * )+0+z+1-. Rezultatul acestei instructiuni este initializarea celor trei varia&ile cu valoarea 1- ! Partea in reapta a unei e)presii e atri&uire este intot eauna calculata inainte e a avea loc atri&uirea propriu-zisa ! 4cest lucru face posi&ila folosirea unei e)presii e felul urmator * int )+3. )+)QA. =ogic se calculeaza intai )QA % rezultatul fiin B si apoi aceasta valoare este atri&uita varia&ilei ) ! 4tri&uirea este operatia cea mai es intalnita in programare si in consecinta au aparut mai multi operatori speciali pentru iferite cazuri e atri&uire ! (ai 'os vom ve ea operatorii e atri&uire speciali precum si ec7ivalentele functionale ale acestora * XQ+U X-+U XK+U XJ+U X+XQU X+X-U X+XKU X+XJU
4cesti operatori e atri&uire sunt ec7ivalenti perfect cu instructiunile pe care le inlocuiesc ar tre&uie avuta mare atentie la utilizarea lor . in cazul folosirii acestor operatori in ca rul unor e)presii mai comple)e e)ista cazuri in care acesti operatori nu mai sunt ec7ivalenti ! Ca e)emplu putem lua situatia urmatoare * X+A-. U+3. X+XJUQ3. si
-I-
Curs Java nr 1 XJ+UQ3. Rezultatele celor oua instructiuni vor fi iferite * in primul caz rezultatul va fi I iar in cel e-al oilea A ! INCRE(ENT4RE4 SI 8ECRE(ENT4RE4 " alta operatie uzuala in programare este a augarea sau sca erea unei unitati intr-o varia&ila intreaga ! E)ista operatori speciali pentru aceste e)presii 6 operatori numiti e incrementare si ecrementare ! Incrementarea unei varia&ile inseamna a a auga 1 la valoarea sa iar decrementarea unei varia&ile inseamna a sca ea 1 in valoarea sa ! "peratorul e incrementare este 1 QQ 1 iar cel pentru ecrementare este 1 6 1 ! 4cesti operatori sunt plasati ime iat inainte sau upa numele unei varia&ile * int X+B. X+XQQ. In e)emplul e mai sus varia&ila X este incrementata e la B la G ! In cazul in care operatorii e incrementare sau ecrementare sunt plasati inaintea varia&ilei atunci ei se numesc operatori prefix iar in cazul in care apar upa varia&ila se numesc operatori sufix ! Intr-o e)presie simpla % e e)emplu varia&ila-- % folosirea unui operator prefi) sau sufi) nu sc7im&a rezultatul ! 4tunci can operatiunile e incrementare sau ecrementare fac parte intr-o e)presie mai comple)a optiunea intre prefi) si sufi) evine importanta ! Sa comentam putin e)emplul e mai 'os * int )%0%z. )+2A. 0+)QQ . z+QQ) . 4ceste oua e)presii pro uc rezultate iferite in cauza iferentelor intre operatorii sufi) si prefi) ! 4tunci can folosim operatori sufi) % ca in 0+)QQ % varia&ila 0 primeste valoarea lui ) inainte ca aceasta sa creasca cu 1 astfel incat 0 va fi egal cu 2A . la folosirea operatorilor prefi) % ca in z+QQ) % varia&ila ) este mai intai incrementata si apoi valoarea sa este atri&uita lui 0 % astfel incat z va avea valoarea 22 ! Ca si incazul operatorilor speciali e atri&uire tre&uie avuta mare gri'a in cazul folosirii operatorilor e incrementare si ecrementare in cazul unor e)presii mai comple)e 6 e)istan posi&ilitatea intro ucerii unei erori estul e greu e epistat in ca rul programului !
- 1- -
Curs Java nr 1
"PER4T"RI PENTRU C"(P4R4TII Java pose a mai multi operatori folositi pentru a face comparatii intre varia&ile % intre varia&ile si literale sau intre alte tipuri e informatie intr-un program Java ! 4cesti operatori sunt folositi in e)presii care intorc valori &ooleene true si false % in functie e valoarea e a evar a comparatiei ! In cele ce urmeaza prezentam operatorii e comparatie uzitati in Java * Operator ++ T+ V W V+ W+ Semnificatie egal iferit mai mic ecat mai mare ecat mai mic sau egal cu mai mare sau egal cu Exemplu )++, )T+, )V, )W, )V+, )W+,
In continuare avem un e)emplu practic e folosire a unei comparatii * &oolean tanar. int varsta+21. tanar+varstaV,3. E)presia varstaV,3 pro uce rezultatul true sau false # in cazul nostru false $ in functie e valoarea varia&ilei varsta ! In final valoarea varia&ilei 1 tanar 1 va fi astfel false ! "PER4T"RI ="XICI E)presiile care pro uc valori &ooleene # cum ar fi comparatiile $ pot fi com&inate pentru a forma e)presii mai comple)e ! 4cest lucru poate fi realizat folosin operatorii logici ! 4cesti operatori pot fi folositi pentru com&inatii logice 4N8 # si $ % "R # sau $ % X"R # sau e)clusiv $ si N"T # negare $ ! Pentru com&inatiile 4N8 se folosesc operatorii logici Y si YY ! 4tunci can oua e)presii &ooleene sunt conectate prin operatorii Y sau YY e)presia com&inata returneaza valoarea true oar aca am&ele e)presii &ooleene au valoarea true ! 8iferenta intre Y si YY consta in mo ul in care Java evalueaza e)presia com&inata ! 8aca se foloseste Y atunci se evalueaza am&ele e)presii in iferent e valoarea lor ! 8aca se foloseste YY si e)presia in stanga operatorului are valoarea e a evar false atunci e)presia in reapta operatorului nu mai este evaluata eoarece rezultatul final va fi oricum false ! Pentru com&inatiile "R se folosesc operatorii Z sau ZZ ! 4ceasta com&inatie e e)presii intoarce valoarea true aca cel putin una intre e)presiile &ooleene este a evarata !
- 11 -
Curs Java nr 1 In cazul folosirii operatorului ZZ % aca prima e)presie &ooleena are valoarea true atunci a oua nici nu se mai evalueaza % rezultatul final fiin oricum true ! Com&inatia X"R foloseste un singur sim&ol * 1 [ 1 ! 4cesta are ca rezultat o valoare true numai aca am&ele e)presii &ooleene pe care le com&ina au valori iferite ! In cazul in care am&ele e)presii au valoarea true sau am&ele false atunci rezultatul va fi false ! Com&inatia N"T foloseste operatorul logic 1 T 1 % urmat e o singura e)presie ! 4cesta sc7im&a valoarea unei e)presii &ooleene in acelasi fel in care sim&olul 1 6 1 sc7im&a semnul pozitiv sau negativ al unui numar ! PRECE8ENT4 "PER4T"RI="R 4tunci can intr-o e)presie se folosesc mai multi operatori Java are sta&ilita o anumita or ine in care ii evalueaza ! In ma'oritatea cazurilor aceasta prece enta etermina valoarea finala a e)presiei ! In general % or inea operatiilor este urmatoarea * operatii e incrementare si ecrementare operatii aritmetice comparatii operatii logice e)presii e atri&uire
8aca oua operatii au aceeasi prece enta % cea aflata mai in stanga e)presiei va fi calculata prima ! In ta&elul e mai 'os avem prezentata prece enta operatorilor * ! ?@ #$ Parantezele rotun e se folosesc pentru a grupa e)presii . punctul se foloseste pentru a accesa meto ele si varia&ilele in ca rul o&iectelor si claselor . parantezele repte sunt folosite pentru ta&louri ! Instanceof intoarce valoarea true sau false aca o&iectul este sau nu o instanta a clasei numite sau a unei su&clase a acesteia "peratorul ne/ este folosit pentru crearea e noi instante ale claselor . in acest caz se foloseste pentru transformarea unei valori intr-un alt tip Inmultire % impartire % mo ulo 4 unare % sca ere 8eplasarea pe &iti la stanga si la reapta Comparatii - 1A -
QQ -- T instanceof
K J R Q VV WW WWW V W W+ V+
Curs Java nr 1 ++ T+ Y [ Z YY ZZ \* + Q+ -+ K+ J+ R+ Teste e egalitate 4N8 X"R "R 4N8 optimizat # logic $ "R optimizat # logic $ "peratorul con itional 4tri&uiri
In cazul in care nu suntem siguri e prece enta iferitiolor operatori cea mai &una solutie este folosirea parantezelor pentru a impune prece enta orita ! 4RIT(ETIC4 SIRURI="R "peratorul 1 Q 1 este folosit nu oar pentru calcule matematice ci si pentru a concatena siruri ! "peratorul 1 Q 1 concateneaza siruri % alte o&iecte si varia&ile pentru a forma un singur sir ! Pentru a a auga ceva la sfarsitul unui sir se poate folosi si operatorul 1 Q+ 1 % ca in e)emplul urmator * numele(eu Q+9 Jr!9. Instructiunea anterioara este &ineinteles ec7ivalenta cu * numele(eu+numele(eu Q 1 Jr!9.
- 1, -