29.04.2013 Views

J. Introducere in limbajul Java - Discipline

J. Introducere in limbajul Java - Discipline

J. Introducere in limbajul Java - Discipline

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Curs POO-2006 (draft) 2006-2007 3/34 10/22/2006 2006_Intro_<strong>Java</strong>_v01.htm<br />

J.2.3. Analiza programului, l<strong>in</strong>ie cu l<strong>in</strong>ie<br />

Sa analizam acum programul, l<strong>in</strong>ie cu l<strong>in</strong>ie, si element cu element.<br />

1 public class Salut {<br />

L<strong>in</strong>ia 1 declara o clasa <strong>Java</strong> (cf. class), numita Salut, al carei cod poate fi accesat de orice cod<br />

exterior ei (cf. public). Altfel spus, codul clasei Salut este neprotejat si deschis tuturor celorlalte<br />

clase. Dupa declaratia clasei, urmeaza corpul ei, aflat <strong>in</strong>tre elementele operatorului de declarare a<br />

blocurilor.<br />

Clasa este o constructie orientata spre obiecte (OO, object-oriented). Declaratia de clasa<br />

def<strong>in</strong>este un tip complex care comb<strong>in</strong>a date si functiile care actioneaza asupra acelor date.<br />

Variabilele de tip clasa se numesc obiecte. Cum <strong>Java</strong> e un limbaj OO pur, tot codul <strong>Java</strong> trebuie<br />

declarat <strong>in</strong> <strong>in</strong>teriorul unor clase.<br />

2 public static void ma<strong>in</strong>(Str<strong>in</strong>g[] args) {<br />

L<strong>in</strong>ia 2 declara o metoda ma<strong>in</strong>(), al carei cod este neprotejat si deschis tuturor celorlalte clase<br />

(cf. public), o metoda cu caracter global clasei (cf. static) si care nu returneaza nici o valoare<br />

(cf. void). Metoda ma<strong>in</strong>() este numita punct de <strong>in</strong>trare <strong>in</strong> program, si reprez<strong>in</strong>ta metoda care va fi<br />

executata prima, atunci cand va fi lansata <strong>in</strong>terpretarea clasei Salut.<br />

Metoda ma<strong>in</strong>() primeste ca parametru, <strong>in</strong> <strong>in</strong>teriorul operatorului listei de parametri ai<br />

metodelor, un tablou de obiecte de tip Str<strong>in</strong>g. Operatorul de <strong>in</strong>dexare este folosit pentru a declara<br />

tabloul. Pr<strong>in</strong> <strong>in</strong>termediul acestui tablou, <strong>in</strong>terpretorul <strong>Java</strong> paseaza argumentele adaugate de<br />

utilizator dupa numele <strong>in</strong>terpretorului (java) si al programului (clasei, <strong>in</strong> cazul nostru, Salut).<br />

Programul poate utiliza sau nu aceste argumente, pe care le acceseaza pr<strong>in</strong> <strong>in</strong>termediul refer<strong>in</strong>tei args<br />

(refer<strong>in</strong>ta la tablou de obiecte de tip Str<strong>in</strong>g).<br />

Str<strong>in</strong>g este numele unei clase d<strong>in</strong> biblioteca standard <strong>Java</strong>, numita java, d<strong>in</strong> pachetul de clase<br />

care sunt implicit importate, numit java.lang. Numele sau complet (calificat de numele<br />

pachetului) este java.lang.Str<strong>in</strong>g. Rolul clasei Str<strong>in</strong>g este de a reprezenta (<strong>in</strong>capsula) siruri de<br />

caractere <strong>Java</strong> (<strong>in</strong> <strong>Java</strong> caracterele sunt reprezentate <strong>in</strong> format UNICODE, <strong>in</strong> care fiecare caracter<br />

necesita 2 octeti pentru codificare). Clasa Str<strong>in</strong>g permite reprezentarea sirurilor de caractere<br />

nemodificabile (immutable).<br />

Dupa declaratia metodei, urmeaza corpul ei, aflat <strong>in</strong>tre acolade.<br />

3 System.out.pr<strong>in</strong>tln(“Buna ziua!”);<br />

L<strong>in</strong>ia 3 reprez<strong>in</strong>ta corpul metodei ma<strong>in</strong>(). Ea reprez<strong>in</strong>ta o <strong>in</strong>structiune <strong>Java</strong> de tip <strong>in</strong>vocare de<br />

metoda (apel de functie). Este <strong>in</strong>vocata metoda pr<strong>in</strong>tln() pentru a se trimite pe ecran (<strong>in</strong> consola<br />

standard de iesire) un sir de caractere. Metoda pr<strong>in</strong>tln() apart<strong>in</strong>e obiectului out (de tip<br />

java.io.Pr<strong>in</strong>tStream), care este atribut cu caracter de clasa al clasei System (de fapt,<br />

java.lang.System). Obiectul out corespunde consolei standard de iesire, la fel cum obiectul <strong>in</strong><br />

corespunde consolei standard de <strong>in</strong>trare, iar obiectul err corespunde consolei standard pentru mesaje<br />

de eroare (vezi si figura urmatoare). Operatorul de calificare a numelor este folosit pentru a se<br />

specifica numele calificat al metodei pr<strong>in</strong>tln(). Sirul de caractere care ii este pasat ca parametru<br />

(Buna ziua!) este plasat <strong>in</strong> operatorul de declarare a sirurilor de caractere. Metoda pr<strong>in</strong>tln() nu<br />

returneaza nici o valoare. Instructiunea se <strong>in</strong>cheie cu operatorul de sfarsit de <strong>in</strong>structiune.<br />

L<strong>in</strong>ia 4 d<strong>in</strong> program precizeaza <strong>in</strong>cheierea declaratiei metodei ma<strong>in</strong>().<br />

L<strong>in</strong>ia 5 d<strong>in</strong> program precizeaza <strong>in</strong>cheierea declaratiei clasei Salut (l<strong>in</strong>iile 3, 4 si 5 d<strong>in</strong> formeaza<br />

corpul clasei Salut) si pr<strong>in</strong> urmare <strong>in</strong>cheierea programului.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!