Documente Academic
Documente Profesional
Documente Cultură
In poriectul nou creat suntem pregatiti sa cream primele clase. Java este un limbaj de programare
orientat pe obiecte, prin urmare nu exista niciun program fara cel putin o clasa. Despre clase vom
discuta in urmatorul modul, insa pentru inceput, pentru a crea prima aplicatie va trebui sa cream si o
clasa. Asadar sa urmarim modul in care putem crea o noua clasa folosind mediul de programare BlueJ:
Dati un nume clasei. Standard numele de clase trebuie sa inceapa cu litera mare si, in cazul in care
este compus din mai multe cuvinte fiecare dintre acestea incepe cu litera mare. De exemplu:
NumeleClasei sau NumeleClaseiMele ...samd. Numele date pentru clase nu trebuie sa contina spatii sau
caractere speciale prcum +,=,&,(,) etc In principal numele clasei trebuie sa fie reprezentativ, adica sa
reprezinte exact ceea ce defineste sau face clasa.
Fisierul cu extensia .java este reprezentat in BlueJ de un dreptunghi de culoare portocalie. Un fisier cu
extensia .java trebuie sa contina cel putin o clasa publica si numai una. Clasa publica da numele
fisierului cu extensia .java, de exemplu, daca veti cauta in sistemul de fisiere al calculatorului pe care
lucrati, in proiectul pe care l-ati creat si salvat mai devreme ar trebui sa existe dupa crearea clasei cu
numele NumeleClasei fisierul NumeleClasei.java. De asemenea foarte important de tinut minte este ca
Java este un limbaj de programare case sensitive, asta inseamna ca face diferenta intre litere mari si
litere mici. Pentru Java, NumeleClasei nu este acelasi lucru cu numeleClasei sau cu Numeleclasei. Cele
trei nume sunt diferite si prin urmare vor fi tratate de compilator la elemente diferite ale programului.
Dupa cum stiti Java are proprietatea de portabilitate. Asta inseamna ca fiecare aplicatie este
interpretata de catre JVM (Java Virtual Machine). Mai intai totusi este necesara compilarea de care se
ocupa javac (compilatorul). Daca in BlueJ dreptunghiul care reprezinta fisierul .java este hasurat atunci
codurile continute nu sunt compilate.
In
exemplul
de
mai
jos
este
afisat
un
mesaj
System.out.println()
in
consola
folosind
instructiunea
Daca nu apare nicio eroare la compilare dreptunghiul care reprezinta fisierul nu mai este hasurat.
Asta inseamna ca se poate face o executie prin trimiterea codului la executor (JVM)
short
int
long
float
double
byte
boolean
char
Orice zona de memorie se defineste folosind un tip de data si un nume (sau identificator); Numele se
poate alege dupa urmatoarele reguli:
1.
2.
3.
Sintaxa pentru rezervarea unei zone de memorie este de forma <tip> <identificator>;
Aceste zone de memorie reprezinta parti ale memoriei interne. Memoria interna se imparte in doua
zone: stack si heap. Datele primitive sunt stocate in zone rezervate din stack;
Primitivele int, long, byte, short: reprezinta zone de memorie rezervate pentru stocarea valorilor
numerice intregi. Cel mai des, dintre acestea este folosit tipul int;
Primitivele float si double: reprezinta zone de memorie folosite pentru stocarea valorilor numerice
reale. Diferenta dintre cele doua tipuri de primitive este precizia zecimalelor valorilor stocate. Chiar daca
float si double sunt folosite pentru acelasi tip de date nu putem transporta informatia dintr-un double
intr-un float in mod direct, deoarece este posibila pierderea de precizie a valorii cu care se face aceasta
operatiune. Pentru a pune totusi o valoare stocata intr-o zona de memorie double intr-un float putem
folosi conversia explicita. Acest lucru se poate face in felul urmator:
Primitiva char: poate fi folosita pentru a stoca caractere in format Unicode.
Primitiva boolean: este folosita pentru a stoca una dintre valorile true sau false; Spre deosebire de
alte limbaje de programare nu mai exista posibilitatea de a folosi valorile 1 si 0 pentru adevarat sau fals.
Pentru a reprezenta valorile adevarat sau fals (tip boolean) singura modalitate este folosirea
cuvintelor true si false. true si false se scriu numai cu litere mici si reprezinta cuvinte rezervate in
Java.
2.3 Operatori
Operatorii se clasifica in:
1.
operatori matematici: + - * / %
2.
3.
4.
5.
operatorul de atribuire: =
Alti operatori ii vom folosi pe parcursul lectiilor urmatoare. Sa intelegem operatorii enumerati mai sus.
Unul dintre cei mai importanti operatori este operatorul de atribuire. Cu ajutorul operatorului de
atribuire poate fi pusa o valoare intr-o zona de memorie rezervata. In imaginea de mai jos aveti
exemplificat modul de folosire al operatorului de atribuire.
Operatorul de atribuire este executat de la dreapta la stanga. Asta inseamna ca in cazul in care in
partea dreapta este o expresie, aceasta va fi executata inainte de a face atribuirea. De exemplu in cazul
folosirii operatorilor matematici:
Similar folosirii operatorului + poate fi folosit oricare dintre operatorii matematici tinand cont de
functia lor. Ordinea efectuarii operatiilor din matematica se pastreaza si in cazul pogramarii:
In cazul in care vreau ca o operatie de scadere sa fie efectuata inainte unei operatii de inmultire pot
folosi paranteze similar ca in matematica. Atentie numai la urmatorul aspect: in programare nu exista
pentru operatii decat posibilitatea de a folosi paranteze rotunde. Aveti exemplu in imaginile de mai jos:
Operatorii de comparare pot fi folositi pentru scrierea expresiilor de tip boolean (care au ca
rezulat true sau false)
== testare a egalitatii
!= testare a inegalitatii
Operatorii logici
|| sau
&& si
! not
Intr-o expresie in care doua conditii sunt reunite folosind OR (sau) este suficient ca macar una sa fie
adevarata ca intreaga expresie sa devina adevarata.
Intr-o expresie in care doua conditii sunt reunite folosind AND (si) este suficient ca macar una dintre
ele sa fie falsa pentru ca intreaga expresie sa fie falsa.
Operatorii de comparare impreuna cu operatorii logici sunt folositi asa cum vom vedea in urmatoarea
lectie in definirea conditiilor structurilor de control.
Un operator foarte important este de asmenea si ; (punct si virgula). Acesta marcheaza intotdeauna
sfarsitul unei instructiuni.
Operatorul supraincarcat +:
Operatorul + este considerat un operator supraincarcat. Acesta poate fi folosit pentru a concatena
(alipi) doua siruri de caractere. Iata cateva exemple:
de
instructiuni
care
se
executa
daca
conditia
este
falsa
}
Blocul de instructiuni else poate lipsi in intregime daca nu este necesar sa se execute nimic in cazul in
care conditia este falsa.
Daca blocul are o singura instructiune atunci acoladele care incadreaza blocul de instructiuni pot lipsi:
switch testeaza o zona de memorie si in cazul in care aceasta are o anumita valoare se executa un
anumit set de instructiuni;
default este optional si reprezinta setul de instructiuni ce se executa daca valoarea variabilei testate
nu respecta niciunul dintre cazurile precizate;
Dupa fiecare caz trebuie pusa instructiunea break;
Putem pune cazul default daca dorim sa se execute instructiuni si in cazul in care valoarea variabilei
nu se gaseste in cazurile precizate. defaultpoate lipsi caz in care pentru orice alta valoare nu se
executa nimic. Default este pus mereu ultimul si nu necesita instructiunea break;
Intotdeauna in cazul unei structuri de control, conditia trebuie la un moment dat sa devina falsa. In
caz contrar aceasta va executa repetarea instructiunilor la infinit si programul se va bloca. In cazul
exemplului de mai sus care afisaza in consola numerele de la 10 la 1 pe linii diferite instructiunea a=a-1
se asigura de faptul ca valoarea din zona de memorie a va deveni la un moment dat mai mica decat 1 si
deci conditia nu va ma fi adevarata.
Structura do-while functioneaza similar cu while. Diferenta este ca do-while este post-conditionata.
Daca in cazul structurii while se testeaza mai intai conditia iar apoi se executa instructiunile daca
conditia este adevarata, in cazul structurii do-while intai se executa primul set de instructiuni iar apoi se
verifica conditia.
Structura for este folosita in general pentru repetari de instructiuni de un numar fix de ori sau pentru
parcurgerea unor intervale de valori.
for are trei parti intre paranteze rotunde (partea de initializare, conditia si partea de control) si un set
de acolade care incadreaza blocul de instructiuni care se repeta.
Iata cum functioneaza structura for din exemplul de mai sus: Intai se executa prima parte i=0, apoi
se testeaza conditia. Daca conditia este adevarata se executa blocul de instructiuni. Se efectueaza a
treia parte i=i+1 apoi se verifica din nou conditia si, daca aceasta este adevarata se executa din nou
instructiunile. Acest ciclu se repeta pana cand condtia devine falsa. Operatorul ; (punct si virgula) este
de asemenea folosit, dupa cum se observa si din exemplul de mai sus pentru a separa partile unei
structuri for.
De obicei zonele de memorie pe care le folosim sunt variabile. Acest lucru inseamna ca valoarea
acelei zone de memorie se modifica pe parcursul executiei programului. Exista totusi necesitatea uneori
de zone de memorie carora sa nu li se schimbe valoarea pe parcursul executiei programului. Marcam
aceste zone de memorie folosind un cuvant cheie cu valaore de modificator: final;
Daca o zona de memorie la declarare este final atunci aceasta este constanta si odata atribuita o
valoare acestei zone de memoria, valoarea atribuita nu mai poate fi modificata pe parcursul executiei
programului.
++ de incrementare
-- de decrementare
+= de adunare la
-= de scadere din
*= inmultire cu
/= impartire cu
Pentru operatorii unari avem nevoie de o singura variabila cu care se opereaza. In imaginile de mai
jos aveti exemple de folosire a operatorilor de incrementare si decrementare. Operatorii de
incrementare si decrementare pot si postfixati sau prefixati. In cazul in care sunt prefixati (adica pusi
inaintea variabilei cu care se opereaza) atunci au prioritate in fata altor operatii care se executa, daca
sunt postfixati (pusi dupa variabila cu care se opereaza) atunci operatia de inrementare/decrementare
se face dupa o alta operatie.
Incrementarea este operatia de adunare cu 1 a unei valori.
Decrementarea este operatia de scadere cu 1 a unei valori.
b=5+0, adica ia valoarea 5. Dupa executia instructiunii b=b++ + a++ variabila a va avea valoarea 1
si varaibila b va avea valoarea 6;
In exemplul de mai sus, deoarece operatorii sunt prefixati, inainte se executa incrementarea iar apoi
restul operatiilor, deci, intai b este facut 6, si a devine 1 apoi de face adunarea 6+1=7
pe o singura linie
de documentatie
Comentriile pe o singura linie se pun dupa simbolurile //. Tot ceea ce se afla dupa // nu este
interpretat de catre compilator pe linia respectiva.
Comentariile pe mai multe linii sunt scrise intre simbolurile /* si */ . Tot ceea ce se afla in fisierul cu
extensia . java intre acesti doi operatori nu este interpretat la compilare.
2.10 Erori
Intotdeauna exista posibilitatea de a intalni erori in scrierea programelor. In general datorita
neatentiei puteti intampina urmatoarele tipuri de erori:
de sintaxa
de logica
Erorile de sintaxa sunt erori ce apar ca urmare a scrierii unei sintaxe gresite. Nerespectarea oricarei
reguli de sintaxa duce la o eroare de compilare. Practic la intampinarea oricarei erori de sintaxa
programul nu va compila. Mediul de programare indica linia pe care apare eroarea si rolul
programatorului este de a o corecta.
In exemplul de mai sus, datorita faptului ca a fost scris cu litera mica String compilatorul nu intelege
sinaxa si afiseaza o eroare.
Erorile de logica sunt erori ce apar in executie. In cazul erorilor de logica programul este scris corect
si poate fi executat insa rezultatul nu este cel asteptat. Acest lucru se poate intampla cand algoritmul
ales nu a fost gandit corect.
System.out.print()
System.out.println()
Diferenta intre cele doua este ca a doua concateneaza imediat dupa parametrul dat pentru afisare
caracterul unicode de linie noua \n. In felul acesta ceea ce va fi afisat ulterior se va afla pe urmatoarea
linie in consola.
CuprinsInchidere