10

Click here to load reader

Curs-1-Java

Embed Size (px)

DESCRIPTION

Curs-1-Java

Citation preview

Page 1: Curs-1-Java

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

Page 2: Curs-1-Java

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 )

Page 3: Curs-1-Java

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

Page 4: Curs-1-Java

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 ,(==

Page 5: Curs-1-Java

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

Page 6: Curs-1-Java

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#

Page 7: Curs-1-Java

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

Page 8: Curs-1-Java

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*+

Page 9: Curs-1-Java

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

Page 10: Curs-1-Java

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