Sunteți pe pagina 1din 30

Curs 3

Comentarii in fisierul sursa


Siruri
Metode de afisare
Unitati lexicale ale limbajului Java
Variabile
Tipuri de date primitive
Intrebari

Comentarii n fiierul
surs

1. comentarii care se pot extinde pe una sau mai multe linii i


au forma
/* <comentariu> */
2. comentarii de sfarsit de linie, care incep cu simbolul // si
continua pana la sfarsitul liniei respective, deci au forma
// <comentariu>
3. comentarii care sunt destinate reproducerii n
documentaia clasei i au forma
/** <comentariu> */
OBSERVAIE: Comentariile sunt absolut necesare pentru
nelegerea programului.
Este recomandabil s se introduc n program toate
comentariile necesare pentru o bun nelegere a acestuia,
dar nu mai mult.

/** Aplicatie in care se exemplifica folosirea celor trei


tipuri de comentarii permise in limbajul Java */
class Comentarii { /* aici incepe definitia clasei
Comentarii */
/* metoda main este metoda principala a clasei, cu care
incepe executarea programului */
public static void main(String args[]) {
/* Urmeaza instructiunea prin care se invoca metoda
println pentru afisarea unui text */
System.out.println("Prima noastra aplicatie a reusit!");
} // sfarsitul metodei main
}

// sfarsitul clasei Comentarii

iruri
"sir de caractere"
"ABCDefgh"
"1A23bc7"
"*+_/?"
""
Ultimul exemplu este un ir vid (care nu conine
nici un caracter).
Concatenarea sirurilor (+)
Expresia ir1+ir2, n care operatorul + este plasat
ntre dou iruri, are ca rezultat un nou ir, care
conine cele dou iruri-operanzi puse unul dup
altul.
abcd+def=abcddef

De exemplu, expresiile urmtoare sunt echivalente,


ca urmare a asociativitii:

"ABC"+"DEF"+"GH" =("ABC"+"DEF")+"GH" =
"ABC"+("DEF"+"GH")="ABCDEFGH"

n schimb, expresia "uvw"+"ab" este echivalent cu


"uvwab", n timp ce expresia "ab"+"uvw" este
echivalent cu "abuvw", deci concatenarea nu este
comutativ.

Metode pentru afiarea pe


ecran a irurilor

System.out.println(<ir>)
System.out.print(<ir>)

Numele metodei println provine de la print line, care se


traduce prin "tiprete o linie".
Metodele println si print aparin obiectului out din clasa
System. n limbajul Java, clasa System conine metodele prin
care se comunic cu sistemul de operare al calculatorului, iar
obiectul out al acestei clase reprezint dispozitivul de ieire
standard al sistemului, care este de obicei unitatea de afiare
de la consol (ecranul).
Metoda println actioneaz la fel ca metoda print, cu
deosebirea c adaug la sfritul irului afiat caracterul de
control \n care constituie comanda de trecere la linie nou
(New Line).

/* Exersarea metodelor print si println */


class AfisareSiruri {
public static void main(String args[]) {
System.out.println("sirul 1");
System.out.println("sirul 2");
// se afiseaza sub sirul 1
System.out.println("AB"+"CDE"); // se afiseaza ABCDE
System.out.println("ab"+"cd"+"ef");
// se afiseaza abcdef
System.out.println(("ab"+"cd")+"ef");
// asociativitate
System.out.println("ab"+("cd"+"ef"));
/* Urmatoarele trei instructiuni afiseaza in
continuare,
pe o singura linie. */
System.out.print("pqrst");
// nu se trece la linie noua
System.out.print("UVW");
// se afiseaza in continuare
System.out.print("xyz\n");
// echivalent cu println("xyz")
/* Trecerea la linia urmatoare se face datorita
prezentei caracterului \n in sirul "xyz\n" */
System.out.println("ultima linie afisata");
}
}

Unitile lexicale ale limbajului


Java

Unitile lexicale, numite i lexeme (engl. token, lexeme)


sunt construciile elementare ale limbajului ("atomii"
acestuia).
Acestea sunt simboluri, formate din unul sau mai multe
caractere, care au o anumit semnificaie n limbaj.
Dup rolul ndeplinit, unitile lexicale sunt:
1. identificatori
2. cuvinte cheie
3. cuvinte rezervate
4. literali
5. separatori
6. operatori
7. comentarii
8. spaii.

1.Identificatori
Numele date programelor sau componentelor acestora (clase,
variabile, metode etc.) se numesc identificatori. Identificatorii
se aleg de ctre programator, respectnd anumite reguli.
Exemple de identificatori valabili: PrimaClasa
aplha
viteza
v15XB7
pretDeVanzare
pret_de_vanzare
Este clar acum c i exemplele date anterior ( Afisari, main,
String, args, System, out, print, println) sunt, de asemenea,
identificatori.
Se obinuiete ca numele de clase s nceap cu liter majuscul

2.Cuvinte cheie

n orice limbaj de programare, exist un


set de cuvinte, numite cuvinte cheie,
care sunt considerate simboluri
sintactice i nu pot fi folosite n program
ca identificatori.

Observm acum c toate exemplele de cuvinte cheie


date la nceputul acestei seciuni (class, public,
static, void) sunt prezente n tabela de mai sus.

3.Cuvinte rezervate
Se consider cuvinte rezervate acele cuvinte,
care nu pot fi folosite ca identificatori,avnd
semnificaii speciale.
Cuvintele cheie sunt i ele considerate n
majoritatea limbajelor, inclusiv Java, drept cuvinte
rezervate.
n afar de acestea, n limbajul Java exist
urmatoarele cuvinte rezervate: true, false, null.
Primele dou sunt valorile logice adevrat i
fals, iar al treilea are semnificaia de referin nul.
De fapt, aceste cuvinte rezervate sunt forme
speciale de literali.

4.Literali
Literalii sunt reprezentrile n fiierele
surs ale valorilor constante. Exemple de
literali:
- caractere: 'a', 'A', '+', '$', '5';
- iruri de caractere:
"sir de caractere", "abc$79.28#^z";
- numere ntregi: 14726, -25413;
- numere reale:12.7389, -0.05673,
2.3075E12, -1.4237E-5;
- valori logice: true, false;
- referina nul: null.

5.Separatori
Separatorul este un caracter care
delimiteaz formele sintactice sau le
separ ntre ele:
{ } ( ) [ ] ; , .
Spaiul liber i operatorii indeplinesc,
de asemenea, rolul de separatori.

6.Operatori
Operatorii sunt simboluri ale unor operaii.
Operatorul poate fi format din unul sau mai multe caractere.
Entitatea asupra creia se aplic operatorul se numete
operand.
Dup numrul de operanzi, operatorii pot fi unari, binari sau
ternari.
Operatori unari:
+
++
-new
()
[]
{}
Operatori binari
+
*
/
%
==
<=
>=
!=
&
|
^
&&
||
<<
>>
>>>
=
+=
-=
*=
/=
>>=
>>>=
.
instanceof

Operator ternar
?:
Remarcm c operatorii + i - pot fi att
unari ( ca n expresiile +a sau -a), ct i
binari (ca n expresiile a+b sau a-b).

&=

|=

^=

~=

<<=

Variabile

n programare, variabila este un nume cruia i se asociaz o valoare.


Numele variabilei este un identificator, iar valoarea variabilei trebuie s
aparin unui anumit tip de date.

Declararea i iniializarea variabilelor

n limbajul Java, orice variabil trebuie declarat nainte de a fi utilizat.


declararea variabilei se nelege precizarea a tipului i numelui acesteia.
int alpha, beta=3702, k;
1. alpha, beta i k sunt numele unor variabile de tipul int;
2. variabilei beta i se d valoarea iniiala 3702;
3. variabilelor alpha si k li se dau valori iniiale implicite
corespunztoare tipului int (n cazul de fa valoarea 0).

tip variabila_1, ..., variabila_n;


n care:
tip - numele tipului de date cruia i aparin variabilele
declarate;
variabila_i - specificarea numelui unei variabile, urmat
opional de valoarea variabilei respective precedat de
simbolul =.

tip variabila_1, ..., variabila_n;


n care:
tip - numele tipului de date cruia i aparin
variabilele declarate;
variabila_i - specificarea numelui unei
variabile, urmat opional de valoarea variabilei
respective precedat de simbolul =.

Prin convenie, n limbajul Java numele de variabile


ncep ntotdeauna cu liter mic.
Este permis ns ca, n interiorul numelui, sa existe i
litere mari: vitezaMedie.

Variabile finale
"variabile", ale cror valori nu pot fi modificate
prin program.
Se obinuiete ca numele de variabile finale s
fie scrise n ntregime cu majuscule.
final int ALPHA=17, BETA=-1453;
servete pentru a specific faptul c ALPHA i BETA
sunt variabile finale de tip int, ale caror valori sunt,
respectiv, 17 si -1453 i nu mai pot fi ulterior modificate
(deci ALPHA i BETA sunt, de fapt,
nite constante).

Tipuri de date primitive


Tipul de date este unul din conceptele fundamentale ale
programrii calculatoarelor.
Tipul de date este o mulime de valori, asociat cu o mulime
de operaii care se pot face asupra valorilor respective.
Tipurile de date primitive sunt predefinite n limbaj.
Aceasta nseamn c numele, mulimea de valori, mulimea de
operaii i tipul rezultatului operaiilor pentu fiecare tip
primitiv sunt impuse prin limbaj i, deci, nu trebuie definite i
nu pot fi modificate de programator.
Tipurile de date primitive n limbajul Java se clasific astfel:

1.tipul boolean;
2.tipurile numerice
2.1 tipuri intregi: byte, short, int, long;
2.2 tipuri reale: float si double;
2.3 tipul char

Operaia de atribuire
1.Prin operaia de atribuire se d (se atribuie) unei variabile o
nou valoare, care o nlocuiete pe cea deja existent.
2.Operatorul de atribuire este = (semnul egal, care ns aici se
citete "se atribuie") este un operator binar cu efect lateral.
3.Expresia a=b, n care a este o variabila, iar b este un
operand care poate fi un literal, o variabil sau o expresie, are
semnificaia "se atribuie variabilei a valoarea operandului b".
4.Atribuirea este posibil numai daca valoarea operandului b
este de acelasi tip cu variabila a, sau dac se poate converti implicit la
acest tip.
Operatorii == i !=

Pentru toate tipurile de date se pot aplica operatorii relaionali == si !=.


La aplicarea unui astfel de operator, rezultatul operaiei este valoarea
boolean true (adevrat) sau false (fals).
Operatorul == (se citete "este egal cu") exprim relaia de egalitate.
Expresia a==b, unde a i b sunt doi operanzi care pot fi literali, variabile
sau expresii, are valoarea logic (booleana) true dac valoarile celor doi
operanzi sunt egale, sau are valoarea logic false, dac egalitatea nu
este satisfacut.

1.Tipul boolean
Mulimea de valori a acestui tip este {true, false}.
Asupra datelor din acest tip pot fi aplicate operaiile de atribuire,
de comparaie (== si !=) i operaiile algebrei booleene (operaiile
logice).
Operatorul de negaie (!)
!a, n care a este un operand boolean, se citete non-a i se
interpreteaz ca negaia lui a: daca a are valoarea true, atunci !a
are valoarea false i invers.
1. Operatorii & si && realizeaza operatia logica I. Expresiile a&b i
a&&b au valoarea true (adevrat) dac i numai dac att a ct i b
au valoarea true. n celelalte cazuri expresia are valoarea false.
2. Operatorii | si || realizeaz operaia logic SAU. Expresiile a|b i
a||b au valoarea false dac i numai dac ambii operanzi au valoarea
false. n celelalte cazuri expresia are valoarea true.
3. Operatorul ^ realizeaz operatia logic SAU-EXCLUSIV. Expresia
a^b are valoarea true dac i numai dac cei doi operanzi au valori
diferite (unul este adevrat, iar cellalt fals). Dac cei doi operanzi
au valori identice, valoarea expresiei este false.

Deosebirile ntre operatorii & i &&, respectiv ntre


|i || sunt urmtoarele:

- n cazul operatorilor & i | se evalueaz n mod


obligatoriu ambii operanzi;
- n cazul operatorului &&, numit I-condiional,
evaluarea celui de al doilea operand se face numai
dac primul operand are valoarea true; altfel, se
consider c operaia d valoarea false, fr a se
mai evalua valoarea celui de al doilea operand;
- n cazul operatorului ||, numit SAU-condiional,
evaluarea celui de al doilea operand se face numai
dac primul operand are valoarea false; altfel, se
consider ca operaia d valoarea true, fr a se
mai evalua valoarea celui de al doilea operand.

2.Tipul numeric

Tipurile de date numerice n Java sunt urmtoarele:


2.1 tipuri intregi: byte, short, int, long;
2.2 tipuri reale: float si double;
2.3 tipul char
Operaia de atribuire
variabil = expresie
Operaiile aritmetice
Operatori unari fr efect lateral:
+: +a (aceeai cu valoarea operandului)
-: -a (valoarea operandului cu semn schimbat)

Operatori unari cu efect lateral


Operator

Expresie

Operatie

Valoarea expresiei

Efect lateral

++

++a

Preincrementar a+1
e

valoarea variabilei a
creste cu 1

++

a++

Postincrementa a
re

valoarea variabilei a
creste cu 1

--

--a

Predecrementa a-1
re

valoarea variabilei a
scade cu 1

--

a--

Postdecrement A
are

valoarea variabilei a
scade cu 1

Operatori binari
- nu au efect lateral, deci nu modific valorile operanzilor
+, -, *, /, %
Operaii de atribuire compus
Operatori: +=, -=, *=, /=, %=, &=, |=, ^=, <<=,
>>=, >>>=
Comparaia
<, <=, >, >=, ==, !=

2.1 Tipuri intregi:


byte, short, int, long
Tipul

Lungimea

Intervalul de valori

byte

1 octet(8 biti)

-27 27-1

short

2 octeti(16
biti)

-215 ... 215-1

int

4 octeti (32
biti)

-231 ... 231-1

long

8 octeti(64
biti)

-264 ... 264-1

2.2 Tipuri reale:


float, double
Tipul

Lungimea

Intervalul de valori

float

4 octet(32 biti)

[-3.402347e+38f, ... 3.402347e38f]

double 8 octeti(64 biti)

[-1.7976931348623157e+308, ...
1.7976931348623157e308]

2.3 Tipul char


Datele de tip char sunt caractere, adic simboluri tipografice
elementare:
litere, cifre, semne de punctuaie, simboluri matematice, etc

Nivel 1
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.

Ce este un comentariu?
Ce fel de comentarii pot s apar n fiierele surs Java?
Cum se reprezint un ir n program?
Ce este concatenarea i care este operatorul prin care se realizeaz?
Prin ce metode se afieaz un ir de caractere pe ecran?
Ce sunt identificatorii i cum se alctuiesc ei n Java?
Ce sunt cuvintele cheie?
Ce este un literal?
Ce separatori se folosesc n limbajul Java?
Ce sunt operatorii?
Ce este efectul lateral al operatorului?
Toi operatorii au efect lateral?
Ce sunt variabilele?
Ce este numele variabilei?
Ce se nelege prin declararea variabilei?
Ce este o variabil final?
Ce este un tip de date?
Ce tipuri de date primitive exist n limbajul Java?
Care este mulimea de valori a tipului boolean?
Care este operatorul de negaie, asupra crui tip de date se aplic i ce efect
are?
Ce sunt operatorii logici & si &&?
Ce sunt operatorii logici | si ||?

23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.

Care sunt tipurile de date numerice?


Ce este operaia de atribuire?
Cum acioneaz operatorii == i !=?
Ce efect are operatorul logic ^?
Ce contine o declaraie de tip?
Ce este conversia de tip?
Ce este castul i care este forma lui sintactic?
Care sunt operatorii de incrementare i decrementare?
Ce operatori de comparaie se folosesc n cazul datelor de tipuri ntregi?
Cum se reprezint intern datele de tipuri ntregi?
Cum se scriu literalii n sistemul octal?
Cum se scriu literalii in sistemul hexazecimal?
Pot avea semn literalii octali i cei hexazecimali?
Ce sunt datele n virgul mobil i ce corespondent au ele n matematic?
Ce tipuri de date n virgul mobil exist n Java?
Ce sunt literalii n virgul mobil?
Ce valori speciale pot avea literalii n virgul mobil?
Ce operaii aritmetice se poa efectua asupra numerelor n virgul mobil?
Ce se ntmpl dac, la o mprire n virgul mobil, mpritorul are valoarea
zero?
Ce fel de date conine tipul char?
Cum se reprezint literalii de tip char?
Ce este o secven escape? dai exemple.
Ce operaii se pot face supra datelor de tip char?
Care sunt operatorii de atribuire compus i ce efect au?

Nivel 2
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

Ce proprieti are operatorul de concatenare?


Este concatenarea asociativ? Dar comutativ?
Se poate oare folosi metoda print() n loc de println()?
Cu ce fel de caracter ncep n Java numele de clase?
Ce deosebire este ntre literali i identificatori?
De cte feluri sunt operatorii dup numrul de operanzi?
Cum se plaseaz operatorii unari n raport cu operanzii lor? Dar cei
binari?
Exist operatori ternari?
Dai o definiie conceptului de variabil.
Prin ce simbol se termina o declaraie de variabile?
n ce mod se iniializeaz o variabil?
Ce sunt tipurile de date primitive?
Ce se stabilete la definirea unui tip de date primitive?
Ce sunt tipurile de date derivate?
Ce este o clas i n ce fel de limbaje se folosete?
Ce deosebire exist ntre modurile n care acioneaz operatorii logici
& i &&?
Ce deosebire exist ntre modurile n care acioneaz operatorii logici
| i ||?

18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.

Ce deosebiri exist ntre operatorii = i ==?


n ce situaii este obligatorie folosirea castului la conversiile datelor de
tipuri primitive?
Care sunt operatorii aritmetici unari?
Ce deosebire este ntre aezarea operatorului de incrementare sau
decrementare n faa operandului i dup acesta?
Care sunt domeniile de valori pentru date de tipuri intregi?
Ce avantaj prezint folosirea literalilor hexazecimali sau octali fa de cei
zecimali?
Cum se stabilete tipul rezultatului operaiilor aritmetice cu numere
intregi?
n ce caz rezultatul unei operaii aplicate asura unui operand de tip byte
este tot de tip byte?
Ce este mprirea ntreag?
Ce este excepia de mprire la zero i n ce situaii poate s apar?
Ce este depirea binar i n ce situaii poate s apar?
Cum acioneaz operatorul <<?
Cum acioneaz operatorul >>?
Ce deosebire este ntre operatorii >> i >>>?
Cum acioneaz operatorii ~, &, | i ^ cnd operanzii sunt de tipuri ntregi?
Cum se reprezinta intern datele n virgul mobil?
Ce sunt cifrele semnificative ale unui numr n virgul mobil?
n ce situaii rezultatul unei operaii n virgul mobil are valoarea infinit?
Cum se reprezint intern datele de tip char?

S-ar putea să vă placă și