Sunteți pe pagina 1din 11

Curs: Core Java Programming

Modul: Bazele programării Java


Unitate: Variabile

Până acum, în lecţiile precedente, am menţionat nişte noţiuni care au


rămas neexplicate. Una dintre ele sunt şi variabilele. Variabile sunt
una din noţiunile de bază în programare şi, pur şi simplu, nici nu am
putut să începem să lucrăm, fără a le folosi. În lecţia de faţă vom
explica mai detaliat cum funcţionează variabilele în Java.

Variabile în Java

Variabile sunt nişte containere temporare în care se stochează nişte


valori. După ce valoarea este stocată în memorie, este reprezentată
prin variabilă.

Tipuri de date care pot fi reprezentate prin variabilă sunt toate tipurile
menţionate în lecţia precedentă.

În lecţia precedentă am menţionat, de asemenea, că Java nu poate să


convertească implicit un tip de dată în altul, în funcţie de operaţie
făcută asupra lui (nu se poate scrie: int a="Salut";). Caracteristica
această a limbajului se numeşte şi Strong Typed (există şi Loosely
Typed). Aceasta înseamnă că trebuie să avem grijă cum declarăm un
anumit tip şi să ne adresăm acestui tip în mod corespunzător.

Când vorbim despre variabile în Java, există nişte reguli care trebuie
respectate: variabilele nu pot începe cu număr, cu cuvânt cheie al
limbajului sau caracter special şi sunt sensibile la litere majuscule şi
minuscule (de ex. variabilele nume şi Nume sunt diferite). Fireşte,
variabilă trebuie să fie un singur cuvânt.

De exemplu:

myVariable este bine, dar nu şi my Variable.

Deşi la însăşi numirea variabilelor nu trebuie să respectăm nici un fel


de reguli lingvistice, este de dorit să folosim una din convenţiile de
scriere. Una dintre cele mai populare este notaţia Camel Case, care
subînţelege litera majusculă la începutul fiecărui cuvânt în variabilă.

© Copyright Link group 1 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

De exemplu:

VariabilaMea sau aceastaEsteVariabilaMea.

De asemenea, se recomandă numirea variabilelor intuitivă. Această


recomandare trebuie luată în serios chiar şi la construirea celor mai
mărunte programe deoarece şi astfel de programe se lărgesc foarte
repede, iar memorarea informaţiilor despre variabile scapă uşor de
sub control.

Fiindcă limbajul Java este limbajul de programare orientat obiectiv,


există unele reguli care se respectă şi în acest context. Este vorba de
game, respectiv, tratarea şi adresarea lor în funcţie de contextul în
care se află. Variabilele despre care vorbim sunt: variabile de
instanţă, variabile de clasă, variabile locale şi variabile
parametrice (parametri). Acestea încă rămân cele mai simple
variabile şi comportamentul lor nu diferă între ele, ci doar mediul în
care există poate fi diferit.

Variabile de instanţă sunt acele variabile care reprezintă atribute


(câmpuri) ale instanţei unei clase (aşa se şi numesc - câmpuri).
Acestea sunt variabilele care apar doar în contextul clasei şi care nu
pot fi accesate fără instanţierea prealabilă a clasei respective:

//Definirea clasei
class MyClass
{
public int myVariable;
}
public class Test {
public static void main(String[] args)
{
//Instan?ierea clasei
MyClass mClass = new MyClass();
//Atribuirea valorii câmpului
mClass.myVariable = 10;
//Afi?area valorii câmpului
System.out.println(mClass.myVariable);

© Copyright Link group 2 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

}
}

Variabile de clasă, de asemenea, se află în contextul clasei, dar nu


este necesară instanţierea pentru a fi accesate. Acest fel de variabile
se mai numesc şi câmpuri statice sau atribute statice ale clasei:

//Definirea clasei
class MyClass
{
public static int myVariable;
}
public class Test {
public static void main(String[] args)
{
//Atribuirea valorii câmpului clasei
MyClass.myVariable = 10;
//Afi?area valorii câmpului
System.out.println(MyClass.myVariable);
}
}

Variabile locale sunt variabilele care apar în interiorul unui bloc şi,
dacă nu accentuăm explicit, nu sunt vizibile în afara blocului. Când
spunem bloc, nu ne referim la toate feluri de bloc, ci numai la blocurile
încapsulate, cum ar fi funcţii. Fiindcă funcţiile în Java sunt, de fapt,
metode (datorită orientării pe obiecte), variabilele locale sunt acelea
care există în cadrul metodelor.

Codul următor nu funcţionează tocmai datorită caracteristicilor


menţionate:

public class Test {


//metoda în care se afl? variabil?
public static void testMethod()
{
int myVariable = 10;
}

© Copyright Link group 3 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

//metoda care apeleaz? variabila pe care nu o vede


public static void main(String[] args)
{
System.out.println(myVariable);
}
}

Variabile parametrice sunt parametrii de intrare şi ieşire ai


funcţionalităţii (ai metodelor) limbajului. Inconştient, deja am folosit
astfel de variabile în fiecare program scris până acum. Este partea în
paranteze String[] args

...
public static void main(String[] args)
....

În exemplele de mai sus sunt multe lucruri neclare. Însă, aceasta este
doar vârful aisbergului al Javei şi al programării obiective, şi toate
aceste noţiuni vor fi explicate detaliat în lecţiile ce urmează.

Constante

Când e vorba de valori definite de utilizator, pe lângă variabile mai


există şi un tip care, o dată iniţializat, păstrează o valoare fixă. Astfel
de tipuri de purtători de valoare, se numesc constante. Folosim
constante atunci când ştim că valoarea iniţializată c u siguranţă nu se
va schimba la executarea programului. Cel mai bun exemplu pentru
valoarea constantei ar fi 3.14 (respectiv, PI).

Dacă am vorbi despre limbajul Java, neluând în considerare nişte


convenţii de programare generale, nici nu am menţiona constantele,
pentru că acestea nici nu există în Java ca noţiune explicită. Pur şi
simplu, nu există modul în care accentuăm că o variabilă este
constantă. În schimb, folosim un mic truc bazat pe regulile obiective.

Se pune un câmp public şi static sigilat în clasă, care poartă valoarea

© Copyright Link group 4 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

setată. Astfel de câmp va fi vizibil în interiorul întregului program, şi


valoarea lui nu se va putea schimba:

public class Test {


public static final double PI = 3.14;
public static void main(String[] args)
{
System.out.println(PI);
}
}

Este clar că soluţia menţionată este abundentă de noţiuni deocamdată


necunoscute (Static, Final...), însă acestea deocamdată nu sunt
relevante, ci doar faptul că putem fixa valoarea unei variabile până la
sfârşitul executării programului, ceea ce face variabila respectivă
constantă.

Folosirea variabilelor şi a constantelor

În acest moment ştim tot ceea ce este tehnic necesar pentru a se crea
variabile şi constante. Ceea ce de asemenea trebuie să ştim, sunt
convenţiile numirii lor.

Practica este ca niciodată să nu numim variabile cu nume neintuitive.


Deşi, prin acest curs, vor fi multe nume de variabile cum este
variabilaMea sau vm şi altele, în practica nu trebuie să facem aşa
niciodată.

De exemplu, următoarele nume de variabile nu sunt bune:

String i; // purt?torul numelui unui utilizator


int broj; // purt?torul unui num?r
float p1; // purt?torul unei valori
double a; // purt?torul unui operand

Acestea ar fi denumirile corecte ale aceloraşi variabile:

© Copyright Link group 5 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

String userName;
int usersNumber;
float birthYear;
double firstOperand;

Pe lângă faptul că numele variabilelor trebuie să fie intuitive, totuşi nu


trebuie să fie prea lungi, ci abia atât de lungi încât să prezinte
valoarea purtată.

De exemplu, numirea următoare este bună:

String userName1;

dar următoarea numire este puţin prea lungă:

String variableFirstUsersName;

Deşi nu există limitări de lungime la variabile, se consideră pedantă


scrierea numelor de variabile până la mărimea de 15 caractere.

Bineînţeles, pe lângă confortul personal, trebuie adesea să avem în


vedere şi mediul, din cauza căruia trebuie să acordăm atenţie la
numire şi să ne ţinem de standarde prescrise.

Pe lângă acest standard general pentru numirea elementelor, există şi


standardul legat de fiecare element în parte, astfel încât vom numi în
mod diferit variabile, constante, clase, metode...

Constantele se numesc de obicei cu litere majuscule, cum se poate


vedea în exemplul de mai sus (PI). În constante, cuvintele,sunt
separate prin liniuţa de jos pentru că toate literele sunt majuscule.

De exemplu:

public static final String APPLICATION_PATH =


"c:/myApplication/";

În acest fel, pe lângă noi, şi orocare alt programator va şti că este

© Copyright Link group 6 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

vorba de o constantă. Pentru numele metodelor sunt valabile aceleaşi


reguli ca şi pentru numele variabilelor:

calculate();
add();
addUser();
getDocument();

Numele claselor se scrie litera iniţială majusculă :

class MyClass {}
class User {}
class Car {}

Şi acesta nu este sfârşitul poveştii despre denumire. Există o mulţime


de componente diferite care au propriile convenţii de numire (Interfeţe
cu litera mare I în faţa numelui - IUtilizator, parametrii cu litera
minusculă în faţa numelui - aParam...). Dar ne vom ocupa de
majoritatea acestor convenţii în mers, în timp ce ne ocupăm de
tematica lor.

Exerciţiu 1

Problemă:

Numele claselor trebuie schimbate astfel încât să fie corcte sintactic şi


în acord cu convenţiile:

class display { }
class @User {}

Soluţie:

class Display { }
class User {}

© Copyright Link group 7 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

Exerciţiu 2

Problemă:

Numele variabilelor trebuie schimbate aastfel încât să fie corecte


sintactic şi în acord cu convenţiile:

String 1stUserName;
int bdt; //data na?terii
float o1; //primul operand

Soluţie:

String firstUserName;
int birthDate; //data na?terii
float operand1; //primul operand

şi

float firstOperand; //primul operand

Exerciţiu 3

Problemă:

Corectaţi numele constantei:

public static final short pageWidth = 800;

Soluţie:

public static final short PAGE_WIDTH = 800;

© Copyright Link group 8 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

CJP_05 - Core Java Programming


1. Următoarea declaraţie este scrisă bine? int cantitate=10;
a) da
b) nu
2. Variabilă poate începe cu caracter special?
a) nu poate
b) poate
3. Dacă o variabilă poartă ca valoare numărul echipei, care
este cel mai corect nume pentru variabila:
a) numărulTeamului
b) nrt
c) nt
d) ntm
4. Cum se scriu numele claselor, de obicei:
a) cu litera iniţială majusculă
b) cu toate literele minuscule
5. Dacă purtătorul de valoare are următorul nume
VALOAREA_MEA, cel mai probabil este vorba de:
a) constantă
b) variabilă
c) clasă
d) metodă
6. Ce fel de purtător de valoare folosim dacă dorim ca valoarea
lui să rămână fixă în timpul întregii executări ale programului?
a) constantă
b) clasă
c) variabilă
d) instanţă
7. Care variabilă nu este scrisă bine?

© Copyright Link group 9 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

a) 1variabilaMea
b) variabilaMea1
c) variabila Mea
d) obiect

© Copyright Link group 10 / 11


Curs: Core Java Programming
Modul: Bazele programării Java
Unitate: Variabile

1. Următoarea declaraţie este scrisă bine? int cantitate=10;


a
2. Variabilă poate începe cu caracter special?
a
3. Dacă o variabilă poartă ca valoare numărul echipei, care
este cel mai corect nume pentru variabila:
a
4. Cum se scriu numele claselor, de obicei:
a
5. Dacă purtătorul de valoare are următorul nume
VALOAREA_MEA, cel mai probabil este vorba de:
a
6. Ce fel de purtător de valoare folosim dacă dorim ca valoarea
lui să rămână fixă în timpul întregii executări ale programului?
a
7. Care variabilă nu este scrisă bine?
a

© Copyright Link group 11 / 11

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