Exemple de date:
numere: -173, 2568, 312.75, -128764.12; caractere: A, a, B, b, %, +, &, *; valori logice: true, false (traduse în română prin adevărat, respectiv fals); Remarcăm că datele în sine nu au semnificație. Ele capată semnificație
numai într-un anumit context, în care devin informații. De exemplu, propoziția
"Consumul de energie electrică al abonatului Popescu Ion în luna august
2000 a fost de 78.5 kwh" este o informație. În această propoziție,
"Popescu Ion", "august", 2000, 78.5 sunt date.
|
Programul constă în descrierea (declararea) datelor utilizate și a algoritmului folosit pentru prelucrarea lor în vederea realizării unui anumit obiectiv, putând fi astfel încadrat în schema
Program = Date + Algoritm
După forma lor, datele se grupează în tipuri de date. La stabilirea
tipurilor de date, se face un compromis între descrierea acestora la nivel
abstract (matematic) și implementarea lor pe un anumit tip de calculator.
De exemplu, deși din punct de vedere matematic mulțimea
numerelor intregi este unica și infinită, în numeroase limbaje de programare,
printre care și Java, există mai multe tipuri de date întregi. Aceasta
se datorește faptului că, la stabilirea tipului de date, se ia în considerație
nu numai mulțimea matematica în care se încadrează datele respective, ci
și reprezentarea pe calculator.
Astfel, în cazul tipului byte, reprezentarea internă se face pe un octet (8 biți), astfel că mulțimea de valori a acestui tip cuprinde 28=256 valori, respectiv: 00000000, 00000001, 00000010, ..., 01111111, 10000000, 10000001, 10000010, ..., 11111111. Mulțimea de valori corespunzătoare unui tip de date este deci finită, cardinalul ei depinzând de numarul de biți folosiți pentru reprezentarea internă a datelor din tipul respectiv. O altă convenție, care se face referitor la tip, este cea privind semnul. Astfel, dacă se face convenția că datele pozitive încep cu cifra 0, iar cele negative cu cifra 1, mulțimea de valori pentru tipul byte este intervalul [-128, 127]. |
Tipurile de date pot fi primitive sau derivate.
Tipurile de date primitive sunt încorporate în limbaj, deci ele nu trebuie definite de programator, de aceea se mai numesc și tipuri standard, elementare sau predefinite.
Tipurile derivate se definesc de programator, care folosește în acest scop atât tipurile primitive, cât și tipuri derivate definite anterior.
Fiecare limbaj de programare pune la dispoziția programatorului:
Important este că toate aceste convenții privind tipurile de date primitive se stabilesc de autorii limbajului de programare și sunt incorporate în limbaj, deci nu mai pot fi modificate de programatorii de aplicații.
La definirea tipurilor de date derivate, în limbajele tradiționale
se punea accentul pe descrierea structurii datelor, adică a modului în
care se alcătuesc datele noului tip din tipuri mai simple.
Principalele tipuri de date derivate, care se regăsesc în majoritatea
limbajelor de programare procedurale, sunt tabloul și înregistrarea.
Tabloul (engleza: array) este o colecție indexată de date de același tip. Exemplele cele mai cunoscute de tablouri sunt vectorii și matricile din matematică. La declararea unui tablou în program se specifică de regulă tipul componentelor, numărul de indici și intervalul de variație pentru fiecare indice. Înregistrarea (record in Pascal, struct in C) este o succesiune ordonată de câmpuri, care au fiecare propriul lor nume și pot fi de tipuri diferite. La declararea înregistrării se specifică numele și tipul fiecărui câmp. |
În limbajele orientate pe obiecte, se introduce conceptul de clasa, ca o extindere a conceptului de tip de date. Clasa se deosebește de înregistrare prin faptul că, la definirea ei, în afară de structura de date se dau și metodele (funcțiile, procedurile) care se aplică asupra acestor date. Deci, așa cum tipul de date este o mulțime de date asociată cu o mulțime de operații, clasa este o structură de date căreia i se asociază o colecție de metode. În aceste limbaje, clasa este principala, sau chiar unica, formă de tip derivat.
Limbajul Java este un limbaj de programare total orientat pe obiecte, deci singurele tipuri de date derivate sunt clasele.
Prin aceasta, Java se deosebește de limbajele orientate pe obiecte construite peste limbaje procedurale (cum sunt C++ sau Object Pascal), care, în afară de clase, admit si tipurile derivate "tradiționale", cum sunt tabloul și înregistrarea. Vom arăta că în Java tablourile sunt tot obiecte, adică instanțe ale unor clase. |