Click here to load reader
Upload
robert-visa
View
214
Download
0
Embed Size (px)
DESCRIPTION
Curs-1-Java
Citation preview
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 1/10
Programare Java
Curs – 1
INSTRUCTIUNI SI EXPRESII
Toate activitatile ce se realizeaza intr-un program Java pot fi rezumate la o serie de instructiuni
! instructiune " statement # este o comanda simpla $ scrisa intr-un lim%a& de programare si caredetermina o actiune
Instructiunile sunt actiuni elementare ale unui program Java 'ai &os putem vedem mai multe e(emplede instructiuni Java simple )
int varsta*+,import &avaa.tdndS/stemoutprintln"0Te(t 0#
Jucatorscor*12,,,
Unele instructiuni produc o valoare $ ca in cazul in care se aduna doua numere 3ceste instructiuni senumesc e(presii
! expresie este o instructiune care are ca rezultat producerea unei valori 4aloarea poate fi pastrata pentru o folosire ulterioara in program $ poate fi folosita imediat intr-o alta instructiune sau poate fiignorata 4aloarea produsa de o instructiune este numita valoare de retur
Unele e(presii produc o valoare de retur numerica $ cum ar fi cazul cand se aduna doua numere altele produc valori %ooleene 5 adevarat sau fals 5 sau pot produce c6iar un o%iect Java
C6iar daca ma&oritatea programelor Java contin o singura instructiune pe fiecare linie aceasta este doar
o optiune de formatare $ care nu sta%ileste unde incepe si unde se termina o instructiune ci are scopul principal de a mari lizi%ilitatea programului 7e fapt $ fiecare instructiune Java se termina cu 0 8 Intr-o singura linie se pot introduce astfel maimulte instructiuni fara a determina pro%leme )
&culoare*8gal%en8 &alegere*false
Instructiunile sunt grupate in Java folosind acoladele 9 si : Un grup de instructiuni organizate intreacolade se numeste bloc
43RI3;I<E SI TIPURI 7E 73TE
Variabilele reprezinta un loc unde poate fi pastrata informatia intr-un program aflat in e(ecutie 4aloarea poate fi modificata oricand in cadrul programului
Pentru a crea o varia%ila tre%uie sa ii dati un nume si sa sta%iliti ce tip de informatie va stoca 7easemenea $ in momentul crearii puteti sa atri%uiti varia%ilei o valoare initiala
E(ista trei tipuri de varia%ile in Java ) varia%ile de instanta $ varia%ile de clasa si varia%ile locale
Variabilele de instanta sunt folosite pentru a defini atri%utele unui o%iect Variabilele de clasa definesc atri%utele unei intregi clase de o%iecte si se aplica tuturor instanteloracesteia Variabilele locale sunt folosite in interiorul definitiilor metodelor sau al %locurilor de instructiuni din
cadrul unei metode Ele pot fi folosite doar atunci cand metoda sau %locul este e(ecutat deinterpretorul Java $ dupa care isi inceteaza e(istenta
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 2/10
Cu toate ca aceste trei tipuri de varia%ile sunt create asemanator $ varia%ilele de clasa si de instanta suntfolosite intr-un alt mod decat varia%ilele locale In continuare vom trata varia%ilele locale 5 celelaltedoua tipuri vor fi detaliate mai tarziu
OBS ) Spre deose%ire de alte lim%a&e Java nu are varia%ile glo%ale " utiliza%ile in orice parte a unui
program # 4aria%ilele de clasa si de instanta sunt folosite pentru a comunica informatii despre uno%iect sau altul si pot inlocui nevoia de varia%ile glo%ale
Inainte de a folosi o varia%ila in Java tre%uie mai intai sa o declaram prin indicarea numelui si a tipuluide informatie pe care il va stoca =ormatul declaratiei este prezentat in continuare $ specificandu-seintai tipul de informatie si apoi numele )
int ma(imString numeutilizator
%oolean stareTerminare
4aria%ilele locale pot fi declarate in orice loc in interiorul unei metode $ la fel ca oricare altainstructiune Java insa tre%uie declarate inainte de a fi folosite In mod normal declararea varia%ilelor
urmeaza imediat dupa instructiunea care defineste metoda
Pu%lic static void main"string argumente>?# 9int totalString titlu;oolean activare:
7aca vrem sa cream mai multe varia%ile de acelasi tip le putem declara pe toate in aceeasi instructiune $separate de 0 $ 0 )
String strada $ oras $ tara
4aria%ilelor li se poate atri%ui o valoare atunci cand sunt create prin atri%uire )
int codposta*@,,,String nume*83le(8
%oolean alegere*trueint varsta*2, $ inaltime*A@,
7upa cum se poate vedea avem si posi%ilitatea de a atri%ui valori mai multor varia%ile de acelasi tip 4aria%ilelor locale tre%uie sa li se atri%uie valori inainte de a fi folosite in program $ altfel acestea nu sevor compila
7efinitiile varia%ilelor de instanta si de clasa primesc o valoare initiala in functie de tipul informatiei pecare o stoc6eaza )
- varia%ilele numerice ) ,- caracterele ) 0B,8- varia%ilele %ooleene ) false- o%iectele ) null
Numele varia%ilelor in Java tre%uie sa inceapa cu o litera $ cu underscore " 08 # sau cu 0 D 0 5 ele nu pot incepe cu o cifra 7upa primul caracter numele varia%ilelor pot contine orice com%inatie de cifre silitere Tre%uie sa retinem ca Java tine cont de litere mari si mici 7in aceasta cauza un program poate aveadoua varia%ile diferite ) una numita X si alta x sau una alb si alta ALB In practica s-a impus o 0regula8 de denumire a varia%ilelor Java ) numele sunt formate din cuvintesugestive 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 de mai &os )
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 3/10
;utton incarca=isierint codona
%oolean definesteScor'a(im
TIPURI 7E 43RI3;I<E
7upa cum am vazut declaratia de varia%ila contine in afara numelui si tipul informatiei stocate 3cesttip poate fi )
- un tip de date de %aza- numele unei clase sau interfete- un ta%lou
In continuare prezentam tipurile de date de %aza ale lim%a&ului E(ista opt tipuri de %aza pentrustocarea intregilor $ numerelor in virgula mo%ila $ caracterelor si valorilor %ooleene 3ceste tipuri maisunt cunoscute si ca tipuri primitive deoarece fac parte integranta din lim%a&ul Java si nu sunt o%iecte $lucru care le face mai eficient de folosit 3ceste tipuri de date au aceeasi dimensiune si caracteristiciindiferent de sistemul de operare si de platforma folosita 5 spre deose%ire de alte tipuri de date din alte
lim%a&e de programare
Pentru stocare intregilor avem patru tipuri de date )
- %/te - pe F %iti - valori intre -AGF si AG@- s6ort - pe AH %iti - valori intre -+G@HF si +G@H@- int - pe +G %iti - valori intre -GA1@1F+H1F si GA1@1F+H1@- long - pe H1 %iti - valori intre -GG++@G,+HF21@@2F,F si GG++@G,+HF21@@2F,@
Toate aceste tipuri sunt cu semn ceea ce inseamna ca pot stoca numere pozitive sau negative Tipulfolosit pentru o varia%ila depinde de domeniul de valori de care este nevoie
Un alt tip de numar ce poate fi stocat este cel reprezentat in virgula mo%ila pentru acestea e(ista
tipurile float si dou%le Numerele in virgula mo%ila sunt numerele care au o parte zecimala Tipul floateste suficient in ma&oritatea cazurilor $ pastrand numere intre A$1E-12 si +$1E+F 7aca totusi estenecesar se poate folosi tipul real dou%le ce poate stoca numere intre 1$E-+G1 si A$@E+,F
Tipul c6ar este folosit pentru caracterele individuale $ cum ar fi litere $ cifre $ semne de punctuatie sialte sim%oluri
Ultimul dintre cele opt tipuri de %aza este %oolean Spre deose%ire de alte lim%a&e valorile pentruvaria%ilele de acest tip nu sunt A si , ci true si false
Toate tipurile de varia%ile prezentate folosesc litere mici si asa tre%uie folosite in cadrul programelor E(ista clase care au aceleasi nume cu acestea $ dar incep cu litera mare 5 de e(emplu ;oolean sauC6ar 3ceste clase au alt rol in programarea Java astfel incat tre%uie folosite diferit de tipurile de %aza
TIPURI 7E C<3SE
In afara celor opt tipuri de %aza o varia%ila poate fi de tip clasa )
String nume7e=amilie*8Popescu8Culoare par
3tunci cand o varia%ila are drept tip o clasa inseamna ca varia%ila refera un o%iect al clasei respectivesau al uneia dintre su%clasele sale Referirea la o superclasa ca tip de varia%ila este folositoare atuncicand varia%ila poate fi una dintre mai multe su%clase diferite
7eclararea unei varia%ile de tip !%&ect inseamna ca poate stoca orice o%iect
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 4/10
OBS : Java nu are un ec6ivalent al instructiunii t/pedef din C Pentru a declara noi tipuri in Java sedeclara o noua clasa iar varia%ilele pot folosi aceasta clasa drept tip
7upa ce o varia%ila a fost declarata i se poate da o valoare folosind operatorul de atri%uire $ 0 * 0 )
idCod*F21H
im%racatRapid*false
C!'ENT3RII
Una dintre metodele cele mai importante de crestere a lizi%ilitatii unui program este folosireacomentariilor
Comentariile reprezinta informatii introduse intr-un program doar in a&utorul persoanelor care incearcasa-si dea seama ce anume se intampla in program Compilatorul Java ignora total comentariile atuncicand pregateste versiunea e(ecuta%ila a fisierului sursa Java
E(ista trei tipuri diferite de comentarii pe care le putem utiliza in programele Java
Prima modalitate de a introduce comentarii in program este de a il prefi(a cu doua sim%oluri slas6 0 0 !rice incepe dupa aceste semne si pana la sfarsitul liniei este considerat comentariu )
int oreCredit*+ defineste orele de credit pentru curs
7aca dorim sa introducem un comentariu care ocupa mai mult de un rand tre%uie sa incepem cucom%inatia 0 K 0 si sa inc6eiem cu com%inatia 0 K 0
Ultimul tip de comentariu este proiectat pentru a fi interpreta%il si de catre calculator 7aca incepemcomentariul cu 0 KK 0 si il inc6eiem cu 0 K 0 atunci comentariul este interpretat ca reprezentanddocumentatia originala referitoare la functionarea clasei si a metodelor sale pu%lice
3cest tip de comentariu poate fi citit de utilitare ca J3437!C din pac6etul J7L 3cest utilitarfoloseste aceste comentarii pentru a crea un set de pagini .e% care documenteaza programul $ ierar6iasa de clase si metodele
<ITER3<E
Literalele sunt numerele $ te(tul si alte informatii care reprezinta direct o valoare
'ai e(plicit $ literalele reprezinta un termen apartinand programarii $ care inseamna de fapt ca ceea cetastam este ceea ce vom o%tine
Java are mai multe literale pentru intregi Numarul 1 de e(emplu este un literal pentru tipul int El poate fi atri%uit de asemenea varia%ilelor %/te sau s6ort deoarece el este suficient de 0mic8 si pentruaceste doua tipuri Un literal intreg mai mare decat poate stoca o varia%ila int este considerat automatca avand tipul long Putem indica faptul ca un literal este un intreg de tip long prin adaugarea sufi(ului< " sau l # 7e e(emplu urmatoarea instructiune stoc6eaza valoarea 1 intr-un intreg de tip long )
long totalPagini*1<
Pentru a reprezenta o valoare negativa putem folosi literalul impreuna cu semnul minus " 0 5 0 #
In Java putem folosi si literali in sistem octal sau 6e(azecimal Pentru a folosi un literal intreg in octaltre%uie sa il prefi(am cu cifra , numarul octal @@@ tre%uie astfel scris ca ,@@@ Intregii 6e(azecimalise folosesc prefi(ati cu ,( 5 ca de e(emplu ,(==
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 5/10
<iteralele in virgula mo%ila folosesc caracterul punct pentru punctul zecimal Toate literalele in virgulamo%ila sunt automat considerate de tip dou%le Pentru a specifica tipul float adaugam = " sau f # 5 camai &os )
float valoarePi*+A1A2=
Putem folosi si e(ponenti in literalele de virgula mo%ila folosind litera E " sau e # urmata de e(ponent )
dou%le (*AGeGGdou%e /*AE-@,
<iteralele caracter sunt e(primate printr-un singur caracter incadrat de g6ilimele simple ) Ma $ MO sauM+ Unele caractere literale reprezinta caractere care nu sunt tipari%ile sau accesi%ile pe tastatura 'ai &osvom vedea coduri speciale care pot reprezenta aceste caractere speciale )
- Bn * ne. line " linie noua #- Bt * ta%
- B% * %acspace- Br * revenire la capat de rand " carriage return #- Bf * formfeed " salt la pagina noua #- BB * semnul B- B * g6ilimele simple- B8 * g6ilimele du%le- B * octal- B( * 6e(azecimal- Bu * caracter unicode " standard pe AH %iti spre deose%ire de 3SCII standard care presupune
doar AGF de caractere #
In cazul ultimelor trei coduri se va inlocui in practica semnul 0 0 cu un numar sau o cifra6e(azecimala
Ultimele literale pe care le putem folosi intr-un program Java sunt sirurile de caractere Un sir " string #in Java este un o%iect si nu un tip de date primar Sirurile nu sunt pastrate in ta%louri " ca in C dee(emplu # 7eaorece sirurile sunt o%iecte Java avem si metode care pot fi folosite pentru com%inarea simodificarea sirurilor precum si pentru a determina daca doua siruri au aceeasi valoare
<iteralele sir constau dintr-o serie de caractere incadrate intre g6ilimele du%le )
String autor*8Ion Popescu8String parola*8pass.ord8
Sirurile pot contine si caractere speciale 5 prezentate anterior )
String e(emplu*8Te(t intre g6ilimele B8CIT3TB88S/stemoutprintln"0Primul rand Bn 3l doilea rand8#String titlu*8Invatati singuri JavaBuGAGG8
In ultima instructiune $ secventa BuGAGG produce sim%olul 0 T' 0 " pe sistemele configurate sa suporteUnicode #
3tunci cand se foloseste un literal sir Java stoc6eaza valoarea sa ca o%iect String Nu tre%uie sa creame(plicit un nou o%iect 5 ca in cazul celorlalte o%iecte cu care vom lucra 5 deci este la fel de usor delucrat cu acest tip ca si cu tipurile primare Sirurile sunt diferite in ceea ce priveste acest aspect 5 niciunul dintre tipurile primare nu sunt pastrate ca o%iecte atunci cand sunt folosite
EXPRESII SI !PER3T!RI
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 6/10
! e(presie reprezinta o instructiune care produce o valoare Cele mai folosite e(presii sunt celematematice 5 ca in continuare )
int (*+int /*1
int z*(K/
Ultima instructiune dintre cele de mai sus este o e(presie !peratorul de multiplicare K este folosit pentru inmultirea dintre ( si / iar rezultatul produs de e(presie va fi pastrat intr-o varia%ila z de tipintreg
4aloarea produsa de o e(presie este numita si valoare de retur 3ceasta valoare poate fi atri%uita uneivaria%ile si folosita in diferite feluri in programele noastre
Operatorii reprezinta sim%oluri speciale folosite in functii matematice $ in unele tipuri de instructiunide atri%uire sau in comparatii logice
!PER3TII 3RIT'ETICE
In Java e(ista cinci operatori folositi pentru operatiile aritmetice de %aza )
0 Q 0 3dunare0 5 0 Scadere0 K 0 Inmultire0 0 Impartire0 0 'odulo
=iecare operator de mai sus foloseste cate doi operanzi 5 cate unul de fiecare parte a operatorului !peratorul de scadere 0 5 0 poate fi folosit si pentru a nega un singur operator
Un lucru care merita atentie sporita in ceea ce priveste operatorul de impartire este tipul operanzilorfolositi 7aca 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 7e e(emplu e(presia GA 2 are rezultatul1 daca acesta este stocat intr-un int
Impartirea modulo " 0 0 # produce ca rezultat restul impartirii In e(presia GA 2 rezultatul pe care ilvom o%tine va fi A In general ma&oritatea operatiilor aritmetice cu intregi produc un rezultat de tip int indiferent de tipulinitial al operanzilor 7aca lucram cu alte tipuri 5 numere in virgula mo%ila sau intregi long 5 tre%uiesa 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 3moe%a 9 pu%lic static void main "String argumente>?# 9int (*Hs6ort /*1float a*AGfS/stemoutprintln"ati inceput cu Q ( Q amoe%e#S/stemoutprintln"Bt7oua s-au casatorit si partenerii lor s-au mutat la ele#(*(QGS/stemoutprintln"3veti acum Q (#S/stemoutprintln"BtSe declanseaza mitoza $ care du%leaza numarul de amoe%e#(*(KG
S/stemoutprintln"3vem acum Q (#S/stemoutprintln"BtIncepe o lupta Q / Q amoe%e pleaca#
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 7/10
(*(-/S/stemoutprintln"3vem acum Q (#S/stemoutprintln"Bt3tac al paramecilor 3m pierdut o treime din colonie#(*(-"(+#S/stemoutprintln"3m ramas cu Q ( Q amoe%e#S/stemoutprintln"Costul intretinerii zilnice per amoe%a ) Q a#
S/stemoutprintln"Costul total al intretinerii zilnice ) Q "aK(##::
Comentand pe scurt aceasta aplicatie Java e(trem de simpla o%servam ca in liile +- 2 se creaza treivaria%ile ce primesc in acelasi timp si valori initiale varia%ilele ( si / sunt declarate de tipul int iarvaria%ila a este declarata numar in virgula mo%ila float 5 deoarece tipul predefinit in Java pentrunumere in virgula mo%ila este dou%le tre%uie sa adaugam sufi(ul f la sfarsitul literalului pentru a indica" si forta # tipul float In cadrul programului apare in mai multe instructiuni sintagma 0 S/stemoutprintln 0 3ceasta metodaeste folosita in aplicatii pentru a afisa siruri si in general informatii pe dispozitivul standard de iesire 5in cele mai multe cazuri ecranul
S/stemoutprintln"# preia un singur argument " intre paranteze # ) un sir Pentru a prezenta mai mult deo varia%ila sau un literal ca argument pentru println"# se poate folosi operatorul Q $ pentru a concatenaaceste elemente intr-un singur sir
3TRI;UIRE3 UNEI 43<!RI
3tri%uirea este o e(presie $ ea producand un rezultat In practica atri%uirea poate apare intr-un sir deinstructiuni )
(*/*z*A,
Rezultatul acestei instructiuni este initializarea celor trei varia%ile cu valoarea A, Partea din dreapta a unei e(presii de atri%uire este intotdeauna calculata inainte de a avea loc atri%uirea
propriu-zisa 3cest lucru face posi%ila folosirea unei e(presii de felul urmator )
int (*2(*(QG
<ogic se calculeaza intai (QG $ rezultatul fiind @ si apoi aceasta valoare este atri%uita varia%ilei ( 3tri%uirea este operatia cea mai des intalnita in programare si in consecinta au aparut mai multioperatori speciali pentru diferite cazuri de atri%uire 'ai &os vom vedea operatorii de atri%uire speciali
precum si ec6ivalentele functionale ale acestora )
XQ* X*XQX-* X*X-XK* X*XKX* X*X
3cesti operatori de atri%uire sunt ec6ivalenti perfect cu instructiunile pe care le inlocuiesc dar tre%uieavuta mare atentie la utilizarea lor in cazul folosirii acestor operatori in cadrul unor e(presii maicomple(e e(ista cazuri in care acesti operatori nu mai sunt ec6ivalenti Ca e(emplu putem lua situatiaurmatoare )
X*G, *2X*XQ2 siX*Q2
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 8/10
Rezultatele celor doua instructiuni vor fi diferite ) in primul caz rezultatul va fi iar in cel de-al doileaG
INCRE'ENT3RE3 SI 7ECRE'ENT3RE3
! alta operatie uzuala in programare este adaugarea sau scaderea unei unitati dintr-o varia%ila intreaga E(ista operatori speciali pentru aceste e(presii 5 operatori numiti de incrementare si decrementare
Incrementarea unei varia%ile inseamna a adauga A la valoarea sa iar decrementarea unei varia%ileinseamna a scadea A din valoarea sa
!peratorul de incrementare este 0 QQ 0 iar cel pentru decrementare este 0 5 0 3cesti operatori sunt plasati imediat inainte sau dupa numele unei varia%ile )
int X*@X*XQQ
In e(emplul de mai sus varia%ila X este incrementata de la @ la F
In cazul in care operatorii de incrementare sau decrementare sunt plasati inaintea varia%ilei atunci ei senumesc operatori prefix iar in cazul in care apar dupa varia%ila se numesc operatori sufix
Intr-o e(presie simpla $ de e(emplu varia%ila-- $ folosirea unui operator prefi( sau sufi( nu sc6im%arezultatul 3tunci cand operatiunile de incrementare sau decrementare fac parte dintr-o e(presie maicomple(a optiunea intre prefi( si sufi( devine importanta
Sa comentam putin e(emplul de mai &os )
int ($/$z(*1G /*(QQ z*QQ(
3ceste doua e(presii produc rezultate diferite din cauza diferentelor intre operatorii sufi( si prefi( 3tunci cand folosim operatori sufi( $ ca in /*(QQ $ varia%ila / primeste valoarea lui ( inainte ca aceastasa creasca cu A astfel incat / va fi egal cu 1G la folosirea operatorilor prefi( $ ca in z*QQ( $ varia%ila (este mai intai incrementata si apoi valoarea sa este atri%uita lui / $ astfel incat z va avea valoarea 11
Ca si incazul operatorilor speciali de atri%uire tre%uie avuta mare gri&a in cazul folosirii operatorilor deincrementare si decrementare in cazul unor e(presii mai comple(e 5 e(istand posi%ilitatea introduceriiunei erori destul de greu de depistat in cadrul programului
!PER3T!RI PENTRU C!'P3R3TII
Java poseda mai multi operatori folositi pentru a face comparatii intre varia%ile $ intre varia%ile siliterale sau intre alte tipuri de informatie dintr-un program Java
3cesti operatori sunt folositi in e(presii care intorc valori %ooleene true si false $ in functie de valoareade adevar a comparatiei In cele ce urmeaza prezentam operatorii de comparatie uzitati in Java )
Operator Semnificatie Exemplu
** egal (**+* diferit (*+V mai mic decat (V+
W mai mare decat (W+V* mai mic sau egal cu (V*+
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 9/10
W* mai mare sau egal cu (W*+
In continuare avem un e(emplu practic de folosire a unei comparatii )
%oolean tanarint varsta*1A
tanar*varstaV+2
E(presia varstaV+2 produce rezultatul true sau false " in cazul nostru false # in functie de valoareavaria%ilei varsta In final valoarea varia%ilei 0 tanar 0 va fi astfel false
!PER3T!RI <!ICI
E(presiile care produc valori %ooleene " cum ar fi comparatiile # pot fi com%inate pentru a formae(presii mai comple(e 3cest lucru poate fi realizat folosind operatorii logici 3cesti operatori pot fifolositi pentru com%inatii logice 3N7 " si # $ !R " sau # $ X!R " sau e(clusiv # si N!T " negare #
Pentru com%inatiile 3N7 se folosesc operatorii logici Y si YY 3tunci cand doua e(presii %ooleenesunt conectate prin operatorii Y sau YY e(presia com%inata returneaza valoarea true doar daca am%elee(presii %ooleene au valoarea true
7iferenta intre Y si YY consta in modul in care Java evalueaza e(presia com%inata 7aca se folosesteY atunci se evalueaza am%ele e(presii indiferent de valoarea lor 7aca se foloseste YY si e(presia dinstanga operatorului are valoarea de adevar false atunci e(presia din dreapta operatorului nu mai esteevaluata deoarece rezultatul final va fi oricum false
Pentru com%inatiile !R se folosesc operatorii Z sau ZZ 3ceasta com%inatie de e(presii intoarce valoareatrue daca cel putin una dintre e(presiile %ooleene este adevarata In cazul folosirii operatorului ZZ $ daca prima e(presie %ooleena are valoarea true atunci a doua nici nuse mai evalueaza $ rezultatul final fiind oricum true
Com%inatia X!R foloseste un singur sim%ol ) 0 [ 0 3cesta are ca rezultat o valoare true numai dacaam%ele e(presii %ooleene pe care le com%ina au valori diferite In cazul in care am%ele e(presii auvaloarea true sau am%ele false atunci rezultatul va fi false
Com%inatia N!T foloseste operatorul logic 0 0 $ urmat de o singura e(presie 3cesta sc6im%avaloarea unei e(presii %ooleene in acelasi fel in care sim%olul 0 5 0 sc6im%a semnul pozitiv sau negatival unui numar
PRECE7ENT3 !PER3T!RI<!R
3tunci cand intr-o e(presie se folosesc mai multi operatori Java are sta%ilita o anumita ordine in care iievalueaza In ma&oritatea cazurilor aceasta precedenta determina valoarea finala a e(presiei
In general $ ordinea operatiilor este urmatoarea )
- operatii de incrementare si decrementare- operatii aritmetice- comparatii- operatii logice- e(presii de atri%uire
7aca doua operatii au aceeasi precedenta $ cea aflata mai in stanga e(presiei va fi calculata prima In ta%elul de mai &os avem prezentata precedenta operatorilor )
>? "# Parantezele rotunde se folosesc pentru a grupa
7/18/2019 Curs-1-Java
http://slidepdf.com/reader/full/curs-1-java 10/10
e(presii punctul se foloseste pentru a accesametodele si varia%ilele din cadrul o%iectelor siclaselor parantezele drepte sunt folosite pentruta%louri
QQ -- instanceof Instanceof intoarce valoarea true sau false dacao%iectul este sau nu o instanta a clasei numite sau
a unei su%clase a acesteiane. "tip# e(presie !peratorul ne. este folosit pentru crearea de noi
instante ale claselor in acest caz se foloseste pentru transformarea unei valori intr-un alt tip
K Inmultire $ impartire $ modulo
Q - 3dunare $ scadere
VV WW WWW 7eplasarea pe %iti la stanga si la dreapta
V W W* V* Comparatii
** * Teste de egalitate
Y 3N7
[ X!R
Z !R
YY 3N7 optimizat " logic #
ZZ !R optimizat " logic #
\) !peratorul conditional
* Q* -* K* * * 3tri%uiri
In cazul in care nu suntem siguri de precedenta diferitiolor operatori cea mai %una solutie este folosirea parantezelor pentru a impune precedenta dorita
3RIT'ETIC3 SIRURI<!R
!peratorul 0 Q 0 este folosit nu doar pentru calcule matematice ci si pentru a concatena siruri
!peratorul 0 Q 0 concateneaza siruri $ alte o%iecte si varia%ile pentru a forma un singur sir Pentru a adauga ceva la sfarsitul unui sir se poate folosi si operatorul 0 Q* 0 $ ca in e(emplul urmator )
numele'eu Q*8 Jr8
Instructiunea anterioara este %ineinteles ec6ivalenta cu )
numele'eu*numele'eu Q 0 Jr8