Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Curs Java incepatori

java



+ Font mai mare | - Font mai mic



Curs Java incepatori




Conversii de tip implicite si explicite
Conversii implicite
Daca, intr-o operatie binara, operanzii au tipuri diferite de cel al rezultatului, atunci, inainte de a se efectua operatia respectiva, se face conversia valorilor operanzilor, astfel incat ele sa aiba acelasi tip cu rezultatul. Daca aceasta conversie se poate face fara pierdere de informatie, ea se face in mod implicit (automat), deci fara a fi indicata explicit de catre programator. Atragem atentia ca ceeace se converteste nu este, de fapt, valoarea operandului propriuzis (acesta ramane nemodificat) ci o valoare temporara a operandului, cu care acesta intra in calcul la efectuarea operatiei respective.


Exemple
(1) Fie v1 si v2 doua variabile de tip byte sau short. Operatia binara b1+b2 are, conform regulii cunoscute, rezultat de tipul int. In consecinta, inainte de a se efectua aceasta operatie, ambii operanzi vor fi conbertiti la tipul int. Aceasta inseamna ca se creaza doua valori temporare de tip int, egale numeric cu cele ale operanzilor respectivi, si asupra acestora se efectueaza operatia. Conversiile sunt posibile fara pierdere de informatie, intrucat reprezentarea interna (in binar) a tipului int este mai lunga decat a tipurilor byte si short.

(2) Fie w o bariabila de tip double si z o variabila de tip float. La efectuarea operatiei de atribuire w=z se creaza o valoare temporara de tipul double egala numeric cu valoarea variabilei z si care se atribuie variabilei w. Conversia este posibila fara pierdere de informatie, intrucat precizia de reprezentare a datelor de tip double este superioara celei a datelor de tip float.

(3) Fie s o variabila de tip short si b o variabila de tip byte. La efectuarea atribuirii s=b valoarea variabilei b este convertita din byte in short.

In tabela de mai jos sunt indicate cu X toate conversiile de tip care se pot realiza inplicit. In coloana din stanga este tipul datei care este supusa conversiei, iar in capul tabelei (pe prima linie) tipul catre care se face conversia.


byte short int long float double
byte X X X X X
short X X X X
char X X X X
int X X X
long X X
float X

Conversii explicite
Programatorul poate solicita in mod explicit, prin program, efectuarea unor conversii de tip. In acest caz, este posibil ca la conversie sa aiba loc pierdere de informatie sau chiar denaturarea completa a valorii convertite, deci programatorul isi asuma intreaga raspundere asupra consecintelor.
Pentru a solicita conversia explicita, se foloseste operatorul cast . Acesta este un operator unar, care are forma

()

deci numele tipului catre care se face conversia cuprins intr-o pereche de paranteze. Asa dar, expresia

()

are semnificatia ca se converteste valoarea din partea dreapta (care poate fi valoarea unui literal, a unei variabile sau a unei expresii) intr-o valoare apartinand tipului de date scris intre paranteze

De exemplu, daca b este o variabila de tip byte, iar k este o variabila de tip int, expresia de atribuire b=k nu este permisa, deoarece nu se poate face conversie implicita de la int la byte. In schimb, programatorul poate solocita explicit aceasta conversie, scriind expresia respectiva sub forma
b=(byte)k
ceeace inseamna ca se creaza o valoare temporara de tipul byte, obtinuta retinand numai cei 8 biti din partea dreapta a reprezentarii binare a lui k, si aceasta valoare se atribuie lui b. Daca, intamplator, cei trei octeti care au fost eliminati din fata reprezentarii interne a lui k aveau toti bitii 0, atunci prin aceasta nu s-a pierdut informatie, adica valoarea numerica a lui b va fi, din punct de vedere matematic, egala cu a lui k. Daca insa unul sau mai multi dintre bitii eliminati au valoarea 1, valoarea atribuita lui b va fi cu totul diferita de cea a lui k.

In tabela de mai jos se indica prin X care sunt conversiile explicite permise intre tipurile de date primitive.


byte short char int long float
byte X
short X X
char X X X
int X X X
long X X X X
float X X X X X
double X X X X X X

Bineinteles ca se permite folosirea operatorului cast si in cazurile, in care conversia se face implicit, dar anu este necesar.

Se observa ca nu exista posibilitatea de conversie intre tipul boolean si alte tipuri de date. In ce priveste tipul referinta, acesta este supus unor reguli de conversie specifice, care vor fi prezentate la studierea programarii orientate pe obiecte.

Exemplu
In programul din fisierul Conversii.java se testeaza diferite cazuri de conversie explicita si implicita.

Operatorii priviti ca functii. Operatori cu efect lateral. Operatorul de atribuire
Din punct de vedere matematic, operatorii sunt functii, care au ca argumente operanzii. Stim ca fiecare functie se caracterizeaza prin domeniul de definitie, domeniul in care functia ia valori (codomeniul) si prin algoritmul de calcul al valorii functiei pornind de la valorile operanzilor.
In programare, fiecare operand (argument al functiei) apartine unui anumit tip de date, deci domeniul sau este multimea de valori corespunzatoare tipului respectiv, iar domeniul de definitie al functiei este produsul cartezian al domeniilor operanzilor. Valoarea functiei (rezultatul operatiei) apartine, de asemenea, unui tip de date, deoarece altfel nu ar putea fi reprezentata in memorie. In consecinta, pentru fiecare operator este necesar sa se precizeze tipul (tipurile) operanzilor si tipul rezultatului operatiei.

Exemple:

a. Fie expresia -a in care operandul a este o variabila de tip intreg, iar - este operatorul unar al schimbarii de semn. Domeniul de definitie al functiei este multimea valorilor de tip intreg, iar codomeniul acesteia este, de asemenea, multimea valorilor de tip intreg. Regula de calcul este, in cazul de fata, ca valoarea functiei este valoarea operandului cu semn schimbat.

b. Fie expresia a+b in care operanzii a,b sunt variabile de tip intreg, iar operatorul binar + este operatorul adunarii. In acest caz, domeniul de definitie al functiei este produsul cartezian al multimilor de valori corespunzatoare tipului intreg, adica multimea tuturor perechilor posibile de valori ale tipului intreg. Rezultatul operatiei de adunare este tot un numar intreg, deci valoarea functiei apartine acestui tip de date.

Operatori cu efect lateral
Dupa efectul pe care il au asupra operanzilor, operatorii pot fi cu si fara efect lateral. In mod normal, aplicarea unui operator are ca efect numai calcularea valorii functiei pe care el o reprezinta, fara a se modifica valorile operanzilor. Despre un astfel de operator se spune ca este fara efect lateral. Din aceasta categorie fac parte si cei doi operatori din exemplele de mai sus.
Exista insa si operatori care, in afara de calcularea valorii functiei, dau ca rezultat si modificarea valorilor unuia dintre operanzi. Se spune, in acest caz, ca operatorul respectiv are efect lateral (sau efect secundar).

In sectiunile urmatoare, la prezentarea fiecarui tip de date primitive, vom descrie si setul de operatii corespunzator, cu indicarea operatorilor respectivi, si vom preciza, acolo unde va fi cazul, care este efectul lateral.

In sectiunea de fata ne vom opri asupra unui operator cu efect lateral deosebit de important in programare, deoarece el este aplicabil tuturor tipurilor de date. Acesta este operatorul de atribuire.

Operatorul de atribuire
Operatorul de atribuire foloseste pentru a atribui (a 'da') unei variabile o valoare. In limbajul Java (la fel ca in limbajele C si C++) se foloseste in acest scop operatorul binar = intr-o expresie de forma
=
in care operandul din stanga este obligatoriu o variabila, in timp ce operandul din dreapta poate fi un literal, sau o expresie a carei valoare se atribuie variabilei din partea stanga. Aceasta inseamna ca, in zona de memorie afectata valorii variabilei respective (deci la adresa de memorie corespunzatoare), valoarea nou atribuita o inlocuieste pe cea veche, modificandu-se astfel valoarea pe care a avut-o deja variabila. Se observa, deci, ca efectul executarii operatiei de atribuire este modificarea valorii operandului din partea stanga, ceeace este un efect lateral. In acelasi timp, exista si un efect direct al operatiei de atribuire: ca orice alta functie, ea are o valoare, care poate fi folosita in calculele ulterioare. Valoarea acestei functii este aceeasi cu valoarea nou atribuita variabilei din partea stanga.
Este foarte important sa remarcam ca valoarea atribuita variabilei din partea stanga trebuie sa apartina tipului de date al acestei variabile.

Exemple

a)      Fie atribuirea
v = 173
in care v este o variabila de tip intreg. Efectul direct al acestei operatii este ca se 'calculeaza' valoarea functiei ca fiind 173. Efectul lateral al aceleeasi operatii este ca se atribuie operandului v valoarea 173.

b) Fie atribuirea
v = a + b
in care v, a, b sunt variabile de tip intreg. Aici avem, de fapt doua operatii. Se va executa mai intai adunarea a+b. Aceasta operatie nu are efect lateral, deci valorile operanzilor a si b raman neschimbate. In schimb, ca rezultat se obtine valoarea functiei (suma valorilor celor doi operanzi), care se atribuie variabilei v. Prin aceasta se modifica valoarea variabilei v (efectul lateral), aceasta noua valoare putand fi folosita in continuare ca valoare a functiei de atribuire (efectul direct).

b) Fie atribuirile in lant
x=y=z=173
In acest caz, operatorul de atribuire se aplica de trei ori succesiv, de la dreapta la stanga. In consecinta, se face mai intai atribuirea z=173, avand ca efect lateral ca variabilei z i se atribuie valoarea 173. Aceasta atribuire este insa si o functie, care are valoarea 173. Aceasta valoare este folosita in continuare, fiind atribuita lui y, deci se executa operatia y=173. Se obtine si de data aceasta valoarea functiei 173, care se atribuie lui z. Ca rezultat final, s-a atribuit valoarea 173 tuturor celor trei variabile si s-a obtinut, de asemenea, valoarea ultimei operatii (x=173), pe care o putem folosi in continuare.




Tipurile de date primitive in limbajul Java
In limbajul Java exista urmatoarele tipuri de date primitive:
A. Tipul de date void este folosit pentru a arata lipsa unui tip de date (in engleza, void inseamna gol, vid, lipsa, fara valoare. Este folosit acolo unde sintaxa instructiunii cere un tip de date, dar - in situatia data - in locul respectiv nu trebuie indicata o anume valoare. Un exemplu este folosirea tipului void in definirea metodei main().
B. Date logice: tipul boolean, care contine valorile logice true (adevarat) si false (fals).
C. Date sub forma de caractere: tipul char, care contine toate caracterele: litere, cifre, semne de punctuatie, simboluri matematice etc.
D. Date numerice:
D1. Numere intregi de diferite lungimi
byte - numere intregi reprezentate intern pe un octet;
short - numere intregi reprezentate intern pe doi octeti;
int - numere intregi reprezentate intern pe patru octeti;
long - numere intregi reprezentate intern pe opt octeti;
D2. Numere reale (in virgula mobila) cu diferite precizii
float - numere reale in simpla precizie (reprezentate intern pe patru octeti);
double - numere reale in dubla precizie (reprezentate intern pe opt octeti).

Tipurile de date mentionate mai sus sunt descrise in sectiunile urmatoare ale acestui capitol.

Rezumatul capitolului 'Tipuri de date primitive'
Prin tip de date (engl.: data type) se intelege o multime de valori, careia i se asociaza o multime de operatii asupra valorilor respective.
In fiecare limbaj de programare exista un set de tipuri de date primitive, numite si tipuri de date fundamentale sau elementare. Acestea sunt tipuri predefinite in limbajul respectiv, deci ele nu trebuie sa fie definite de catre programator. Cu ajutorul acestor tipuri primitive, programatorul poate sa construiasca propriile sale tipuri de date derivate. In acest scop, limbajul de programare ii pune la dispozitie anumite modalitati de construire.

In programare, se numeste variabila o zona de memorie care poarta un nume si care pastreaza o anumita valoare,
apartinand unui tip de date.

In limbajul Java, orice variabila trebuie declarata inainte de a fi utilizata. Prin declararea variabilei se intelege specificarea, pentru
compilator, a tipului si numelui acesteia. Definirea variabilei se face atunci, cand acesteia i se da pentru prima data o valoare si deci
i se aloca spatiu in memorie. Nu este obligatoriu ca definirea sa coincida cu declararea variabilei. Declaratia de tip este o instructiune care serveste pentru declararea si, eventual, definirea (initializarea) unor variabile.

Tipurile primitive din limbajul Java sunt urmatoarele: boolean, char, byte, short, int, long, float, double.

Fiecare tip de date se caracterizeaza prin multimea de valori, reprezentarea in memoria interna, reprezentarea externa (in programul scris in limbajul Java) si setul de operatii permise asupra datelor din tipul respectiv. Sub forma externa, datele se reprezinta prin literali.

Tipul boolean are multimea de valori in semnificatia lor din logica matematica (logica booleana). Literalii, prin care se reprezinta aceste valori in program, sunt, respectiv, cuvintele rezervate false si true. Operatiile permise asupra datelor de tip boolean sunt: atribuirea (=), comparatia (== si !=) si operatiile din logica matematica (!, &, &&, |, ||, ^).

Tipul char are ca valori multimea de caractere, codificate intern pe 16 biti in Unicode. Literalii de tip char se scriu sub forma caracterului respectiv, cuprins intre apostrofuri. In cazul caracterelor care nu exista la tastatura, caracterul poate fi inlocuit printr-o secventa escape. Datele de tip char sunt asimilate numerelor intregi fara semn. Operatiile permise asupra datelor de tip char sunt deci aceleasi ca asupra datelor de tipuri intregi.

Tipurile byte, short, int si long sunt tipuri de date intregi si au ca valori numere intregi cu semn. Aceste tipuri difera intre ele prin lungimea reprezentarii interne si, drept consecinta, prin multimile de valori. Operatiile permise asupra tipurilor de date intregi sunt : atribuirea (=), operatiile aritmetice (+, -, *, /, %), incrementarea si decrementarea (++, --), comparatia (==, !=, <, <=, >, >=), deplasarile binare (<<, >>, >>>), operatiile logice pe biti (~, &, |, ^) si operatiile de atribuire compusa (+=, -=, *=, %=, <<=, >>=, >>>=, &=, |=, ^=). Daca, intr-o operatie cu numere intregi, unul din operanzi este de tip long, rezultatul este de tip long. Altfel el este de tip int. Exceptie fac operatiile de atribuire, la care rezultatul are tipul variabilei din partea stanga, si cele de incrementare sau decrementare, la care rezultatul are tipul operandului. Este posibil ca, la operatiile cu numere intregi, rezultatul sa nu fie cel corect. Aceasta situatie apare atunci cand lungimea rezultatului este mai mare decat zona de memorie alocata in memorie pentru numerele de tipul respectiv. O astfel de depasire binara nu este semnalata ca eroare de catre calculator.

Tipurile long si float sunt tipuri de date reale si au ca valori numere reale reprezentate in virgula mobila. Aceste tipuri difera intre ele prin lungimea reprezentarii interne si, drept consecinta, prin multimile de valori si prin precizie. In limbajul Java, multimile de valori ale tipurilor de date reale contin si valori speciale: Infinity, -Infinity si NaN. Literalii de tipuri reale pot fi cu exponent sau fara exponent. Exponentul specifica cu cate pozitii trebuie deplasat punctul zecimal, pentru a-l pune pe pozitia lui corecta. Asupra numerelor reale se permit aceleasi operatii ca asupra numerelor intregi, cu exceptia deplasarilor binare si a operatiilor logice pe biti.

Tipul referinta cuprinde variabilele care au drept valoare o referinta la un obiect sau la un tablou. Referinta este, de fapt, adresa la care se gaseste in memorie obiectul respectiv. Singura operatie permisa direct asupra acestor variabile este atribuirea (=). Orice alte operatii, care au ca operanzi variabile referinta, se efectueaza asupra obiectelor la care se fac referintele si nu asupra adreselor acestor obiecte.

Valorile variabilelor de tipuri numerice pot fi convertite dintr-un tip in altul. Conversiile de tip se fac implicit atunci cand intr-o operatie binara intervin operanzi de tipuri diferite. La atribuire, conversia se face implicit daca ea are loc fara pierdere de informatie, sau explicit (prin folosirea operatorului cast) in caz contrar.

Conceptul de tip de date
Conceptul de tip de date este unul din conceptele fundamentale ale programarii. In matematica, stiinta, tehnica, economie si alte domenii ale activitatii umane se lucreaza cu date, care sunt numere intregi, numere reale, siruri de caractere, valori logice sau structuri de date construite cu ajutorul acestora. Se admite ca, atat multimea numerelor intregi, cat si cea a numerelor reale, sunt multimi infinite. In programare, se are insa in vedere ca este necesar sa se respecte anumite restrictii, legate de modul de reprezentare a datelor in calculator. Sa consideram, de exemplu, multimea numerelor intregi. In matematica, aceasta este o multime infinita. In calculator insa, numarul intreg se reprezinta intr-o zona de memorie de lungime finita, de exemplu 4 octeti (32 biti), ceeace inseamna ca 'multimea numerelor de tip intreg', care pot fi astfel reprezentate, este finita, continand 2 la puterea 32 valori. Trebuie avute in vedere, de asemenea, restrictiile privind operatiile care pot fi efectuate pe calculator asupra acestei multimi de valori.
Prin tip de date (engl.: data type) se intelege o multime de valori, careia i se asociaza o multime de operatii asupra valorilor respective.

In fiecare limbaj de programare exista un set de tipuri de date primitive, numite si tipuri de date fundamentale sau elementare. Acestea sunt tipuri predefinite in limbajul respectiv, deci ele nu trebuie sa fie definite de catre programator. Cu ajutorul acestor tipuri primitive, programatorul poate sa construiasca propriile sale tipuri de date derivate. In acest scop, limbajul de programare ii pune la dispozitie anumite modalitati de construire.

In principiu, majoritatea limbajelor de programare admit ca tipuri de date primitive numerele intregi si reale, caracterele si valorile logice (booleene). Pot exista insa mai multe tipuri de numere intregi sau reale, care sa difere intre ele prin lungimea zonei de memorie alocate. Pot exista, de exemplu, numere intregi reprezentate pe unul, doi, patru sau opt octeti, ele fiind considerate tipuri de date diferite.

In cele ce urmeaza, vom descrie tipurile de date primitive ale limbajului de programare Java, aratand pentru fiecare modul de reprezentare in memorie, multimea de valori si multimea de operatii.


Tipuri de date numerice
Sub aspect conceptual, datele numerice sunt numere, care pot fi intregi sau reale, asupra carora pot fi efectuate operatii aritmetice. Numai ca nu orice numar intreg sau numar real poate fi reprezentat in memoria calculatoarului. Pentru reprezentarea unui numar este necesar sa se aloce o anumita zona de memorie (un anumit numar de octeti succesivi). Pot deci exista deosebiri legate de lungimea zonei alocate, dar, oricare ar fi aceasta, in calculator nu pot fi reprezentate numere intregi oricat de mari. De asemenea, pentru reprezentarea in memorie a numerelor reale, este necesar sa se adopte conventii privind: modul de pozitionare a virgulei; numarul maxim de cifre situate in fata virgulei; numarul maxim de cifre situate dupa virgula. Pot exista, desigur, diferite moduri de reprezentare, dar, si de data aceasta, nu putem folosi numere reale cu un numar oricat de mare de cifre inainte sau dupa virgula.
In cele ce urmeaza, vom prezenta tipurile de date numerice folosite in limbajul Java, indicand pentru fiecare conventiile de reprezentare, restrictiile impuse de acestea, precum si setul de operatii asociat fiecarui tip.
Variabile si tipuri de date
Avand in vedere relatia deja enuntata Program=Date+Algoritm, in acest capitol vom trata un prim aspect al datelor, incluzand conceptele de variabila si de tip de date si prezentarea datelor primitive din limbajul Java, iar in capitolul urmator vom pune bazele descrierii algoritmilor.


Variabile. Declaratii de tip
Conceptul de variabila
In matematica, variabila este un simbol caruia i se asociaza o valoare dintr-o anumita multime de valori, care constituie domeniul de definitie al variabilei respective.
In programare, valoarea variabilei trebuie sa fie reprezentata in memoria calculatorului la o anumita adresa, iar in locul domeniului de definitie trebuie specificat tipul de date corespunzator. De asemenea, simbolul variabilei este inlocuit printr-un nume, care este un identificator. In consecinta, numim variabila o zona de memorie care poarta un nume si care pastreaza o anumita valoare, apartinand unui tip de date.

Programatorul care foloseste un limbaj de nivel inalt, cum este si limbajul Java, nu trebuie sa cunoasca adresa de memorie, la care este plasata valoarea variabilei, si nici reprezentarea interna a acesteia, fiind suficient sa-i cunoasca numele si tipul. Alocarea de spatiu in memorie pentru fiecare variabila se face, dupa caz, de catre compilator sau interpretor. In schimb, numele si tipul trebuie declarate de catre programator.

In limbajul Java, orice variabila trebuie declarata inainte de a fi utilizata. Prin declararea variabilei se intelege precizarea, pentru compilator, a tipului si numelui acesteia. Initializarea variabilei se face atunci, cand acesteia i se da pentru prima data o valoare si deci i se aloca spatiu in memorie. Daca, la declararea variabilei, aceasta nu este si initializata in mod explicit, atunci ea este initializata cu o valoare implicita, care va fi specificata la descrierea fiecarui tip.

Declararea si initializarea variabilelor
Declaratia de tip este o instructiune care serveste pentru declararea si, eventual, initializarea unor variabile si are urmatoarea forma generala:
[=] [,[=]]*;

In care:
este numele tipului de date caruia ii apartine variabila;
este numele variabilei si este un identificator;
este valoarea de initializare a variabilei, care trebuie sa fie corespunzatoare tipului.
Se observa ca este posibil ca, intr-o singura declaratie, sa se declare mai multe variabile. Specificarea valorii este optionala dar, daca aceasta exista, atunci se spune ca variabila respectiva a fost si initializata.

Remarcam ca simbolurile reprezentate cu culoare neagra (= , ;) sunt obligatorii.

Prin conventie, numele variabilelor incep totdeauna cu litera mica. Este permis insa ca, in interiorul numelui, sa existe si litere mari. Aceasta se intampla atunci cand numele variabilei este format din mai multe cuvinte ale limbii naturale, de exemplu vitezaMedie.

In limbajul Java exista doua categorii de tipuri de date: tipuri primitive si tipuri referinta.

Tipurile primitive sunt cele la care valoarea variabilei este stocata chiar la adresa de memorie alocata variabilei respective. Acestea sunt date pentru care atat lungimea zonei de memorie alocata, cat si modul de reprezentare a valorii, sunt predefinite.

In cazul variabilelor de tipuri referinta, la adresa din memorie alocata variabilei respective nu se gaseste valoarea acesteia, ci doar o referinta catre aceasta valoare. Aceasta referinta este, de fapt, adresa zonei de memorie in care este stocata valoarea variabilei. In limbajul Java exista trei categorii de tipuri referinta: referinta la clase (obiecte), la interfete si la tablouri. Utilizarea variabilelor referinta va fi prezentata in detaliu in cadrul programarii orientate pe obiecte.

Tipurile primitive din limbajul Java sunt urmatoarele: boolean, char, byte, short, int, long, float, double. Aceste tipuri vor fi descrise in detaliu in sectiunile urmatoare ale acestui capitol. Aici vom da numai exemple de declarare si definire a unor variabile, pentru a ilustra forma sintactica.

Exemple de declaratii si initializari de variabile

a) Declaratii de variabile de tipuri primitive

boolean existent;
char c1, c2, c3;
int k1=127, k2=-15, k3, beta;
double viteza=127.4563, spatiu, arie=12.78351;

b) Declaratii de variabile referinta

String s1='Un sir de caractere', s2;

Observam ca au fost initializate explicit variabilele k1 si k2 de tip int, variabilele viteza si arie de tip double si variabila referinta s1, iar celelalte au fost numai declarate, dar nu au primit valori in mod explicit, deci au fost initializate la valorile implicite corespunzatoare tipurilor carora le apartin. In ultimul exemplu, variabilele s1 si s2 sunt referinte catre obiecte din clasa String, care este clasa sirurilor de caractere.

Variabile finale
In limbajul Java, se numesc variabile finale acele 'variabile', ale caror valori nu pot fi modificate prin program. Acestea sunt deci, de fapt, niste constante cu nume. Ele se aseamana cu variabilele propriu-zise prin faptul ca sunt tot perechi nume - valoare, numai ca valoarea lor se da o singura data, sub forma de initializare in declaratia de tip sau sub forma de atribuire, dupa care nu mai poate fi modificata.
Declaratia de tip pentru variabilele finale are forma:

final [=] [,[=]]*;

Se deosebeste deci de declaratia de tip pentru variabile propriuzise prin prezenta calificativului final. Initializarea nu este nici de data aceasta obligatorie. Daca insa variabilei i-a fost data o valoare, aceasta nu mai poate fi ulterior modificata. Exemple de declarare si initializare a variabilelor finale se dau in programul din fisierul VarFin.java, unde se face si comparatia cu variabilele obisnuite.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1637
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved