Programare in Java

February 9, 2017 | Author: your_alien2 | Category: N/A
Share Embed Donate


Short Description

Download Programare in Java...

Description

UNIVERSITATEA TITU MAIORESCU FACULTATEA DE INFORMATICA

Programarea in Java -

suport curs -

Lector univ. drd. Dascalescu Ana Cristina

- 2010 1

Cuprins

Capitolul 1 Introducere in limajul Java................................................................................................................................................. 3 1.1Caracteristici de baza ale limbajului Java ................................................................................................................................... 3 1.2 Tehnologia Java si componentele sale...................................................................................................................................... 4 1.2.2 Platforme de lucru Java ........................................................................................................................................................ 4 1.2.3 Tipuri de programe implementate de Java............................................................................................................................. 5 1.2.3Etapele dezvoltarii unei aplicatii Java..................................................................................................................................... 6 1.2 Structura lexicala a limbajului Java .............................................................................................................................................. 7 1.3 Tipuri de date si variabile in Java ................................................................................................................................................. 8 1.4 Expresii si operatori....................................................................................................................................................................11 1.5 Controlul executiei ......................................................................................................................................................................14 1.6 Siruri de caractere........................................................................................................................................................................17 Capitolul 2 Clase si obiecte .................................................................................................................................................................19 2.1 Ciclul de viata al unui obiect .......................................................................................................................................................20 2.1.1 Crearea obiectelor.................................................................................................................................................................20 2.2 Crearea claselor ...........................................................................................................................................................................22 2.2.1 Corpul unei clase ..................................................................................................................................................................23 2.2.2 Constructorii unei clase ........................................................................................................................................................24 2.2.3 Declararea variabilelor..........................................................................................................................................................25 2.3 Implementarea metodelor ............................................................................................................................................................27 2.3.1 Declararea metodelor............................................................................................................................................................27 2.3.2 Metode de instanta si metode de clasa ..................................................................................................................................29 2.3.3 Domeniul de vizibilitate (acces) al metodelor unei clase. Modificatori de acces..................................................................29 Capitolul 3 Extinderea claselor. Polimorfismul in Java.......................................................................................................................33 3.1 Mostenirea - concept fundamental al programarii orientata obiect..............................................................................................33 3.2 Caracteristicile unei ierarhi de clase ............................................................................................................................................35 3.3 Mostenirea simpla in Java ...........................................................................................................................................................35 3.4 Supraincarcarea (overloading) metodelor. Redefinirea (override) metodelor..............................................................................37 3.5 Implementarea polimorfismului .................................................................................................................................................39 3.6 Metode si clase abstracte .............................................................................................................................................................42 Capitolul 4

Interfete Java...................................................................................................................................................................50

4.1 Interfete .......................................................................................................................................................................................50 4.2 Crearea si folosirea interfetelor Java ...........................................................................................................................................50 4.3 Implementarea unei interfete .......................................................................................................................................................51 4.4 Implementarea unor interfete multiple.........................................................................................................................................52 Capitolul 5 Tratarea exceptiilor............................................................................................................................................................57 5.1 Tratarea erorilor...........................................................................................................................................................................57 5.2 Ierarhia de exceptii predefinite de platforma Java .......................................................................................................................58 5.3 Crearea si semnalarea propriilor exceptii ....................................................................................................................................64 Capitolul 6 Intarari si iesiri...................................................................................................................................................................68 6.1 Tipuri de fluxuri de intrare/iesire Java.........................................................................................................................................68 6.2 Fluxuri de octeti si clase predefinite Java ....................................................................................................................................69 6.3 Fluxuri de caractere si clase predefinite Java utilizate.................................................................................................................81

Capitolul 1 Introducere in limajul Java

Obiective:

- implementarea firmei Sun a limbajului Java: Platforma J2SE (Java 2 Platform, Standard Edition); - tipuri de programe implementate de Java; - etapele dezvoltarii unei aplicatii Java; structura unei aplicatii Java; metoda main( ); - utilizarea claselor de obiecte din pachetele predefinite (pachete API) Java; directiva import ; instructiunea package; - elemente de baza ale limbajului Java: identificatori, variabile, tipuri primitive de date; constant,operatori, controlul executiei; - afisarea datelor pe ecran: metodele print, println, readLine, read.

1.1 Caracteristici de baza ale limbajului Java Scurt istoric Inceptul limbajului Java este in toamna anului 1991, cand firma Sun Microsystems a finantat un proiect cu numele Green condus de James Gosling. Tehnologia propusa a avut un impact remarcabil asupra intregii comunitati a dezvoltatorilor de software, impunandu-se prin calitati deosebite cum ar fi simplitate, robustete si nu in ultimul rand portabilitate. Dupa patru ani de lucru, echipa Green finalizeaza specificatiile limbajului Java, astfel ca in anul 1995 firma Sun Microsystems vinde licenta firmelor IBM, Microsoft, Silicon Graphic, Adope si Netscape. Incepand cu anul 1998, cand a aparut versiunea 2 a limbajului (Java 2 Platform), Java a fost extins, acoperind si mai multe directii de dezvoltare: programarea aplicatiilor enterprise (aplicatii de tip server) precum si a celor adresate dispozitivelor cu resurse limitate, cum ar fi telefoanele mobile, pager-e sau PDA-uri (mici dispozitive de calcul, de dimensiuni putin mai mari decat ale unui telefon mobil, cu facilitati de agenda si capabile sa execute aplicatii intr-un mod relativ asemanator cu cel al unui PC). Caracteristicile de baza ale limbajului Java: - Java este un limbaj simplu de folosit. Aceasta caracteristica poate fi considerata ca o reactie directa la complexitatea considerabila a limbajului C/C++. Au fost indepartate din Java aspectele cele mai derutante din C++ precum supraincarcarea operatorilor, mostenirea multipla sau pointerrii. - Java este independent de arhitectura calculatorului pe care lucreaza si foarte portabil. Compilatorul Java genereaza o secventa de instructiuni ale unei masini virtuale Java. Executia aplicatiilor Java este interpretata. Singura parte din mediul de executie Java (JRE) care trebuie portata de pe o arhitectura pe alta cuprinde interpretorul Java si o parte din bibliotecile standard care depind de sistem. In acest fel aplicatii Java compilate pe o arhitectura SPARC de exemplu, pot fi 3

rulate fara recompilare pe un sistem bazat pe procesoare Intel. De altfel, mediul de executie Java (JRE) este scris in C ceea ce il face foarte portabil. - Interpretorul Java este gandit sa lucreze pe masini mici (memorie mica de ordinul sutelor de KB), precum ar fi procesoarele cu care sunt dotate aparatele casnice si telefoanele mobile. - Limbajul Java este orientat obiect. Cu el se pot crea clase de obiecte si instante ale acestora, se pot incapsula informatiile, se pot mosteni variabilele si metodele de la o clasa la alta etc. Singura caracteristica care lipseste este mostenirea multipla, dar pentru a suplini aceasta lipsa, Java ofera o facilitate mai simpla, numita interfata, care permite definirea unui anumit comportament pentru o clasa de obiecte, altul decat cel definit de clasa de baza. In Java orice element este un obiect, in afara de datele primare. Din Java lipsesc functiile si variabilele globale. - Limbajul Java este distribuit, avand implementate biblioteci pentru lucrul in retea. - Limbajul Java este un limbaj cu securitate ridicata. - Java are inclus suport nativ pentru aplicatii care lucreaza cu mai multe fire de executie (programare paralela si concurenta). Acest suport este independent de sistemul de operare.

1.2 Tehnologia Java si componentele sale In tehnologia Java sunt cuprinse patru componente: 1. Masina virtuala, denumita JVM (Java Virtual Machine) care interpreteaza fisierele cu extensia .class ce contine “bytecode”. “Bytecode” reprezinta cod compilat care este procesat de un program, denumit masina virtuala, si nu cod executabil care ruleaza pe masina reala ce dispune de un procesor harwarde. “Bytecode” este format din instructiuni generice care sunt convertite (transformate) de masina virtuala in instructiuni specifice procesorului masinii reale. De aceea se spune ca aplicatiile Java sunt independente de platforma (hardware si software). Masina virtuala Java mai este denumita si interpretor Java. 2. Limbajul Java propriu-zis. Limbajul Java este orientat pe obiecte si se aseamana din punct de vedere al sintaxei cu C++. 3. Un compilator care genereaza fisiere cu extensia .class. Compilatorul Java traduce instructiunile scrise in limbajul Java (stocate in fisiere cu extensia .java) in instructiuni generice “bytecode”(stocate in fisiere cu extensia .class) care sunt “intelese” de masina virtuala. 4. Biblioteca de clase Java, denumita si Java API. Aceasta biblioteca contine un set de componente utile care pot fi reutilizate de programatori in diverse aplicatii informatice. 1.2.1 Platforme de lucru Java Limbajul de programare Java a fost folosit la dezvoltarea unor tehnologii dedicate rezolvarii unor probleme din cele mai diverse domenii. Aceste tehnologii au fost grupate in asa numitele platforme de lucru, ce reprezinta seturi de librarii scrise in limbajul Java, precum si diverse programe utilitare, folosite pentru dezvoltarea de aplicat¸ii sau componente destinate unei anume categorii de utilizatori.

¾ J2SE (Standard Edition) Este platforma standard de lucru ce ofera suport pentru crearea de aplicatii independente si appleturi. De asemenea, aici este inclusa si tehnologia JavaWeb Start ce furnizeaza o modalitate extrem de facila pentru lansarea si instalarea locala a programelo scrise in Java direct de peWeb, oferind cea mai comoda solutie pentru distributia si actualizarea aplicatiilor Java. ¾ J2ME (Micro Edition) Folosind Java, programarea dispozitivelor mobile este extrem de simpla, platforma de lucru J2ME oferind suportul necesar scrierii de program dedicate acestui scop. ¾ J2EE (Enterprise Edition) Aceasta platforma ofera API-ul necesar dezvoltarii de aplicatii complexe, formate din componente ce trebuie sa ruleze in sisteme eterogene, cu informatiile memorate in baze de date distribuite, etc. Tot aici gasim si suportul necesar pentru crearea de aplicatii si servicii Web, bazate pe componente cum ar fi servleturi, pagini JSP, etc. Toate distributiile Java sunt oferite gratuit si pot fi descarcate de pe Internet de la adresa ”http://java.sun.com”. Platforma J2SE (Java 2 Platform, Standard Edition)

Produsul informatic (software-ul) care implementeaza platforma J2SE si care este folosit pentru dezvoltarea de aplicatii specifice acesteia este J2SDK (Java 2 Software Development Kit, Standard Edition) in diverse versiuni pe care le scoate firma si care este livrat gratuit (este un soft liber). Pentru a fi la curent cu ultimele versiuni ale produsului J2SDK se poate accesa adresa de internet http://java.sun.com. Produsul J2SDK include uneltele de creare a programelor Java (compilatorul si alte unelte necesare pentru dezvoltare de programe) si unelte de executie ale acestora (masina virtuala, biblioteca de clase Java API etc). Cele mai importante unelte incluse in J2SDK sunt: - javac - compilatorul Java; - java - interpretorul Java; - appletviewer - folosit pentru testarea applet-urilor (aplicatii care ruleaza dintr-un navigator de internet). Pachetul Java 2 SDK este un set de programe care ruleaza, din lina de comanda a sistemului de operare, utilitare bazate pe text, care nu au nevoie de o interfata grafica pentru utilizator. 1.2.2 Tipuri de programe implementate de Java Cu ajutorul limbajului Java se pot dezvolta trei tipuri de programe: 1. Programe Java care se executa individual prin intermediul unui interpretor Java. Acestea se incadreaza in programele “clasice” scrise in diverse limbaje de programare, cum ar fi:C/C++, Pascal etc. Acest tip de programe Java sunt denumite aplicatii de sine statatoare. 2. Programe Java care se executa in interiorul unui navigator Internet, dintr-un document HTML. Acest tip de programe Java sunt denumite applet-uri. 3. Aplicatii care se executa pe partea de server numite serveturi. O aplicatie de sine statatoare este un program Java care se executa in afara browswer-ului Web . Principlala caracteristica a acestui tip de aplicatie este incapsularea in cadrul unei clase principale a unuei functii main() asemanatoare cu cea folosita in limbajul C, cu urmatoarea signatura:

5

public static void main(String args[] ) Aplicatiile care se executa pe partea de client sunt cele incarcate de pe un server si apoi executate de programe speciale cum ar fi navigatoarele Web. Un applet este un program Java care respecta o multime de reguli astfel incat sa poata rula in cadrul unui navigator Web. O aplicatie care se executa pe partea de server este o aplicatie care este rulata de server ca urmare a unei cererei primate de acesta, iar rezultatul este trimis programului solicitant. Un servlet este o componenta Web, scrisa in java, si care poate interactiona cu diferiti clienti folosind o implementare a paradigmei cerere/raspuns bazata pe protocolul HTTP. Servturile extend functionalitatea unui server, de obicei a unui server HTTP. 1.2.3 Etapele dezvoltarii unei aplicatii Java 1.Editarea setului de instructiuni de programare cu ajutorul unui editor de texte. In acest fel este creat un fisier sursa, care are extensia .java. 2. Compilarea programului. Pentru aceasta operatie se lanseaza in executie un program special, denumit compilator Java. Compilatorul analizeaza textul sursa al programului din punct de vedere sintactic, semnaland eventualele erori. Daca programul nu contine erori sintactice, compilatorul traduce acest program in codul masina pentru masina virtuala Java (un fel de calculator intr-un alt calculator). Rezultatul compilarii este unul sau mai multe fisiere de tip “bytecode”- o secventa de instructiuni de asamblare pentru masina virtuala Java. Fisierul “bytecode” nu depinde de masina gazda si de sistemul de operare pe care va fi executat programul. Masina virtuala mai este cunoscuta si ca interpretor Java sau executor (runtime) Java. Extensia fisierului “bytecode” rezultat in urma compilarii are extensia .class. 3. Conversia (transformarea), de catre interpretorul Java, a instructiunilor “bytecode” in instructiuni inteligibile masinii gazda care apoi sunt executate. Conversia are loc la lansarea executiei si anume instructiune cu instructiune. In acest mod este asigurata portabilitatea si independenta de platforma.Un dezavantaj poate fi considerat timpul mai mare de executie. Procesul de complilare si executie poate fi reprezentat ca in figura 1.

O aplicatie Java este compusa din una sau mai multe clase care interactioneaza intre ele prin intermediul metodelor. In grupul de clase, care formeaza o aplicatie Java, trebuie sa existe o clasa care sa contina o metoda statica avand numele main. Atunci cand se executa o aplicatie Java, masina virtuala va cauta si invoca automat metoda statica avand numele main. Observatie: Metoda main poate fi considerata ca fiind echivalentul Java a functiei main din C/C++. Cel mai simplu program Java (care nu face nimic) arata astfel: class aplicatie { public static void main (String [ ] args) {System.out.println(“Primul program Java”);} } Observatie: Tipul parametrilor metodei (functiei) main cat si tipul metodei, static void, sunt obligatorii.

1.2 Structura lexicala a limbajului Java Setul de caractere

Limbajului Java lucreaza in mod nativ folosind setul de caractere Unicode. Acesta este un standard international care inlocuieste vechiul set de caractere ASCII si care foloseste pentru reprezentarea caracterelor 2 octeti, ceea ce inseamna ca se pot reprezenta 65536 de semne, spre deosebire de ASCII, unde era posibila reprezentarea a doar 256 de caractere. Primele 256 caractere Unicode corespund celor ASCII, referirea la celelalte facandu-se prin \uxxxx, unde xxxx reprezinta codul caracterului. O alta caracteristica a setului de caractere Unicode este faptul ca intreg intervalul de reprezentare a simbolurilor este divizat in subintervale numite blocuri, cateva exemple de blocuri fiind: Basic Latin, Greek, Arabic, Gothic, Currency, Mathematical, Arrows, Musical, etc. Mai jos sunt oferite cateva exemple de caractere Unicode. • \u0030 - \u0039 : cifre ISO-Latin 0 - 9 • \u0660 - \u0669 : cifre arabic-indic 0 - 9 • \u03B1 - \u03C9 : simboluri grecesti _ − ! • \u2200 - \u22FF : simboluri matematice (8, 9, ;, etc.) • \u4e00 - \u9fff : litere din alfabetul Han (Chinez, Japonez, Coreean) Mai multe informatii legate de reprezentarea Unicode pot fi obtinute la adresa ”http://www.unicode.org” Identificatori Identificatorii, intalniti si sub denumirea de nume simbolice, au rolul de a denumi elemente ale programului Java: constante, variabile, clase metode etc. 7

Din punct de vedere sintactic, un identificator este constituit dintr-o succesiune nelimitata de litere si cifre Unicode, primul caracter fiind obligatoriu o litera (inclusiv ‘_’). Limbajul Java este “case-sensitive”, adica face diferenta intre literele mici si literele mari. De aceea, identificatorii sunt diferiti in functie daca sunt scrisi cu litere mici si mari. Cuvintele-cheie (keywords) sunt identificatori speciali, cu inteles predefinit, care pot fi utilizati numai in constructii sintactice in care sunt specificati. De exemplu: if, while etc. Toate cuvintelecheie se scriu numai cu litere mici. Separatori Separatorii au rolul de a separa unitatile sintactice: - Ca separatori “generali” se utilizeaza caracterele albe: spatiu (‘ ‘), TAB (‘\t’), sfarsit de linie (‘\n’) si comentariile. - Separatorii specifici sun folositi, de exemplu, pentru a separa unele constructii sintactice: variabilele sunt separate prin caracterul virgula (‘,’). Alti separatori specifici sunt ( ) { } [ ] . - Delimitatorii sunt folositi, de exemplu, pentru: - a delimita sfarsitul unei instructiuni sau al unei declaratii - caracterul punct si virgula (‘;’); - a delimita o constanta de tip caracter - caracterul apostrof (‘); - a delimita constantele sir de caractere(ghilimelele). Comentarii Comentariile sunt texte care vor fi ignorate de compilator, dar au rolul de a explicita si de a face mai lizibil pentru programator anumite secvente de program. In Java exista trei tipuri de comentarii: - o succesiune de caractere incadrata intre /* si */ ; aceste comentarii pot fi formate din mai multe linii; - o succesiune de caractere pe mai multe linii care tin de documentatie, incadrate intre /** si */; textul dintre cele doua secvente este automat mutat in documentatia aplicatiei de catre generatorul automat de documentatie (javadoc); - o succesiune de caractere care incepe cu // si se termina la sfarsitul unei singure linii.

1.3 Tipuri de date si variabile in Java Variabila este o zona temporara de stocare, rezidenta in memoria RAM, care are un nume simbolic (identificator) si stocheaza un anumit tip de date. Ea poate fi modificata pe parcursul executiei programului. In ciuda denumirii, in Java exista variabile care isi pot modifica valoarea si variabile care nu si-o pot modifica, numite variabile finale. Asupra variabilelor finale vom reveni ulterior dupa intelegerea conceptelor de clasa de obiecte. Pentru utilizarea unei variabile intr-un program Java trebuie ca aceasta sa fie declarata. La declararea variabilei trebuie specificat numele simbolic al variabilei, tipul acesteia si, eventual, o valoare initiala care se atribuie variabilei. Un tip de date defineste multimea de valori pe care variabila poate sa le stocheze, modul de reprezentare a acestora in memorie, ca si setul de operatii pe care programul poate sa le realizeze cu aceste date. In limbajul Java a fost exact definita modalitatea de reprezentare a tipurilor primitive de date in memorie. In acest fel, variabilele Java devin independente de platforma hardware si software pe care lucreaza.

De asemenea, Java defineste o valoare implicita pentru fiecare tip de date, in cazul in care variabila de un anumit tip nu a primit nici o valoare de la utilizator. Este o practica buna insa aceea ca programele sa nu depinda niciodata de aceste initializari implicite. Regula ar fi deci urmatoarea: nici o declararie fara initializare. Limbajul Java accepta urmatoarele tipuri de baza: byte, short, int, long, float, double, char, boolean, void. Tabelul de mai jos prezinta o descrie generala a tipurilor primitive de date utilizate de Java. Tip

Valori

Reprezentare in memorie

byte

[-128, 127]

Intreg pe 1 byte

short

[-32768, 32767]

Intreg pe 2 bytes

int

[2.147.483.648, 2.147.483.648]

Intreg pe 4 bytes

long

[-263, 263 -1]

Intreg pe 8 bytes

float

6 cifre semnificative [10-46, 1038]

Virgula mobila pe 4 bytes

double

15 cifre semnificative [10-324, 10308]

Virgula mobila pe 8 bytes

char

coduri Unicod

Pe 2 byte

boolean

false sau true

Pe un bit

Tipul boolean este folosit pentru memorarea unei valori de adevar sau fals. In Java aceste doua valori le vom nota prin constantele (literali) true si respectiv false. Orice variabila booleana nou creata primeste automat valoarea implicita false. Tipul char este folosit pentru a reprezenta caractere de tip Unicode. Orice variabila de tip caracter nou creata primeste automat ca valoare implicita caracterul null al codului Unicode, “\u0000’. Tipurile de date intregi sunt folosite pentru memorarea unor valori intregi cu semn. Conventia folosita de Java pentru valorile intregi cu semn este reprezentarea in complement fata de doi. Tipurile de date intregi sunt: byte, short, int, long. Orice variabila de tip intreg (byte, short, int si long) nou creata primeste automat valoarea implicita 0. 9

Tipurile de date reale sunt folosite pentru memorarea unor valori reale sub forma de mantisa si caracteristica. Tipurile de date reale sunt: float si double. Valoarea implicita pentru variabilele de tip float este 0.0f, iar pentru variabilele de tip double este 0.0d. In Java sunt definite cateva valori reale speciale: 1.Valoarea NaN (Not a Number) se obtine atunci cand se efectueaza o operatie a carei rezultat nu este definit, de exemplu 0.0 / 0.0. 2. Valori folosite pe post de infinit pozitiv si negativ. Aceste valori pot rezulta in urma unor calcule. Valorile descrise la pct. 1 si 2 sunt definite sub forma de constante si in ierarhia de clase predefinite Java, si anume in clasa java.lang.Float si respectiv in clasa java.lang.Double. Numele constantelor este: NaN, POSITIVE_INFINITY, NEGATIVE_INFINITY. Pentru tipurile intregi si intregi lungi, precum si pentru tipurile flotante exista definite clase in ierarhia de clase predefinite Java si anume: - java.lang.Integer - pentru tipul int; - java.lang.Long - pentru tipul long; - java.lang.Float - pentru tipul float; - java.lang.Double - pentru tipul double. In fiecare dintre clase numerice prezentate sunt definite doua constante care reprezinta valorile minime si maxime pentru tipurile respective. Aceste doua constante se numesc in mod uniform MIN_VALUE si MAX_VALUE. Tipul void Tipul void este un tip special, pentru care multimea valorilor este vida. Acest tip se utilizeaza cand este necesar sa se specifice absenta oricarei valori. De exemplu: pentru tipul de data a metodelor care nu intorc nici un rezultat, cum a fost cazul metodei main (). Constante O constanata este folosita pentru a exprima in program o valoare pe care o poate lua tipurile primitive de date si tipul sir de caractere. Constantele intregi pot fi reprezentate in baza 10, 16 sau 8. Constantele intregi pot fi intregi normale sau lungi. Constantele lungi se recunosc prin faptul ca se termina cu sufixul l sau L. Pentru a reprezenta o constanta intreaga in baza 16 trebuie sa se adauge prefixul 0x sau 0X in fata numarului. Pentru a reprezenta o constanta intreaga in baza 8 trebuie sa se adauge prefixul 0 (cifra zero) in fata numarului. Constantele reale care se pot reprezenta in memoria calculatorului sunt numere rationale din intervalele specificate la tipurile float si double. Constantele reale pot fi specificate in notatia obisnuita sau in format stiintific. Sufixul care indica tipul float poate fi f sau F iar sufixul care indica tipul double poate fi d sau D. Daca nu este specificat nici un sufix, valoarea implicita este de tip double. Constantele de tip caracter sunt utilizate pentru a reprezenta caracterele Unicode. Reprezentarea se face fie folosind o litera sau o cifra, fie o secventa escape. Caracterele care au reprezentare grafica pot fi scrise intre apostroafe. Pentru cele care nu au reprezentare grafica, se folosesc secventele escape sau secventele escape predefinite prezentate deja. Intern, Java interpreteaza constantele de tip caracter ca pe un numar (codul Unicode al caracterului respectiv). Ulterior, functiile de scriere vor transforma acest numar in caracterul corespunzator.

Constantele de tip sir de caractere sunt cuprinse intre ghilimele. Caracterele care formeaza sirul de caractere pot fi caractere grafice sau secvente escape ca cele prezentate la constantele de tip caracter. Daca se doreste introducerea de caractere terminatoare de linie intr-un sir de caractere, atunci se foloseste secventa escape \n in sirul de caractere respectiv. Observatie: Un sir de caractere este, de fapt, o instanta a clasei de obiecte String declarata standard in pachetul java.lang. Vom reveni asupra sirurilor de caractere intr-o lectie separata. Sintaxa folosita pentru declararea de variabile este: [= ] [, [= ] … ]; unde: - - specifica tipul de data al variabilelor; - , , … - specifica numele simbolic al variabilelor care se declara (adica, identificatorii); - , , … - specifica o expresie de initializare; expresia trebuie sa fie evaluabila in momentul declararii; sunt optionale si sunt folosite pentru a atribui unor variabile anumite valori initiale. Observatie: Se pot declara simultan mai multe variabile de acelasi tip, separand numele lor prin virgula. O variabila trebuie sa fie declarata imediat inainte de a fi folosita. Locul unde este declarata o variabila determina domeniul de vizibilitate si semnificatia ei. Limbjul Java permite si definirea de constante. Modul cum se face definirea constantelor va fi prezentata intr-o lectie separata destinata descrieri atributelor statice. Exemple de declaratii de variabile ce pot fi folosite intr-un program: int a, b=3, c=4; char g; float x=b*5.6, y;

1.4 Expresii si operatori O expresie este compusa dintr-o succesiune de operanzi, legati prin operatori. Un operand poate fi o constanta, o variabila, un apel de metoda, o expresie incadrata intre paranteze rotunde. Operatorii desemneaza operatiile care se executa asupra operanzilor si pot fi grupati pe categorii, in functie de tipul operatiilor realizate. Operatorii limbajului Java sunt unari (se aplica unui singur operand) sau sunt binari (se aplica asupra a doi operanzi). A. Operatorii aritmetici Operatorii aritmetici sunt: ‘*’ - inmultirea; ‘/’ - impartirea; ‘%’ - restul impartirii intregi; ‘+’ adunarea; ‘-’ - scaderea. De asemenea este folosit operatorul unar ‘-’ (minus) pentru schimbarea semnului, precum si operatorul unar ‘+’ (plus) (introdus pentru simetrie). Observatii: 1. Operatorul ‘%’ nu poate fi aplicat decat operanzilor intregi. 2. Operatorul ‘/’ poate fi aplicat atat operanzilor intregi, cat si operanzilor reali, dar functioneaza diferit pentru operanzii intregi, fata de operanzii reali. Daca cei doi operanzi sunt numere intregi, operandul ‘/’ are ca rezultat catul impartirii intregi (fara parte fractionara). Daca cel putin unul 11

dintre cei doi operanzi este un numar real, operandul ‘/’ furnizeaza rezultatul impartirii reale (cu parte fractionara). De exemplu pentru declaratiile de variabile: int a=5, b=7 float x=3.5 se pot construi urmatoarele expresii: b%2 =1; a/2=2; B. Operatorii de incrementare/decrementare Operatorul de incrementare este ‘++’. Operatorul de decrementare este ‘--’. Acesti operatori sunt unari si au ca efect marirea (respectiv micsorarea) valorii operandului cu 1. Limbajul Java permite doua forme pentru operatorii de incrementare / decrementare: forma prefixata (inaintea operandului) si forma postfixata (dupa operand). In cazul cand se foloseste operatorul de incrementare / decrementare in forma prefixata (inaintea operandului), limbajul Java va incrementa / decrementa mai intai valoarea variabilei si apoi va utiliza variabila intr-o alta expresie. In cazul cand se foloseste operatorul de incrementare / decrementare in forma postfixata (dupa operand), limbajul Java va utiliza mai intai valoarea variabilei intr-o alta expresie si apoi va efectua operatia de incrementare / decrementare. De exemplu, daca valoarea curenta a lui x este 5, atunci: - evaluarea expresiei 3 * ++x conduce la rezultatul 18; - evaluarea expresiei 3 * x++ conduce la rezultatul 15, dupa care valoarea lui x va fi in ambele cazuri 6. Operatorii de incrementare / decrementare pot fi aplicati operanzilor intregi, operanzilor in virgula mobila si operanzilor de tipul char. C. Operatori relationali Operatorii relationali sunt operatori binari si desemneaza relatia de ordine in care se gasesc cei doi operanzi: , =. Rezultatul aplicarii unui operator relational este true daca cei doi operanzi sunt in relatia indicata de operator, si false, altfel. De exemplu, expresiile logice: 4 > 6 are ca rezultat valoarea false, 8
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF