Ēdo variabėl nė JAVA ka njė tip specifik, qė pėrcakton hapsirėn dhe planifikimin e memories sė variablit; rangu i vlerave qė mund tė ruhen nė memorie; dhe seti i operimeve qė mund tė aplikohen nė variabla.
Ju duhet ti deklaroni tė gjitha variablat para se ato tė pėrdoren. Mė poshtė ėshtė forma bazė e deklarimit tė njė variabli.
tipi i te dhenes se variablit [ = vlere][, variabli [ = vlere] ...];
Kėtu "tipi i te dhenes se variablit" ėshtė njė tip i tė dhėnės nė JAVA dhe "variabli" ėshtė emri i variablit. Pėr tė deklaruar mė shumė se njė variabėl tė njė tipi specifik, ju mund tė pėrdorni njė listė tė ndarė me presje.
Mė poshtė janė shembuj tė vlefshėm tė deklarimit dhe inicializimit nė JAVA.
Shembull
int a, b, c; // Deklaron tre variabla tė tipit int, a, b,dhe c.
int a = 10, b = 10; // Shembull i inicializimit
byte B = 22; // Inicializon njė variabėl B tė tipit byte.
double pi = 3.14159; // deklaron dhe i vep vlerė simbolit PI.
char a = 'a'; // variabli char ėshtė inicializuar me vlerėn 'a'.
Ky kapitull do tė shpjegojė tipat e shumtė tė variablave qė pėrmban gjuha e programimit JAVA.
Variablat lokale
Variablat e instancės
Variablat Statike/tė Klasės
Variablat lokale
Variablat lokale janė tė deklaruara nė metoda, konstruktorė ose blloqe.
Variablat lokale krijohen kur njė metodė, konstruktor ose bllok pėrdoret dhe shkatėrrohet kur metoda, konstruktori ose blloku nuk pėrdoret mė.
Modifikuesit e aksesit nuk mund tė pėrdoren pėr variablat lokale.
Variablat lokale janė tė dukshme nė metodėn, konstruktorin ose bllokun e deklaruar.
Variablat lokale janė implementuar nė nivelin e grumbullimit brenda bllokut.
Nuk ka njė vlerė automatike pėr variablat lokale, prandaj variablat lokale duhet tė deklarohen dhe variablave tu jepet njė vlerė para pėrdorimit.
ShembullKėtu, "mosha" ėshtė njė variabėl lokal. Ai ėshtė deklaruar brenda metodės moshaeQenushit() dhe pėrdorimi i tij do tė jetė i limituar vetėm pėr kėtė metodė.
public class Test {
public void moshaeKelyshit() {
int mosha = 0;
mosha = mosha + 7;
System.out.println("Mosha e kėlyshit ėshtė: " + mosha);
}
public static void main(String args[]) {
Test test = new Test();
test.moshaeKelyshit();
}
}
Ky kod do tė prodhojė rezultatin e mėposhtem:
Rezultati
Mosha e kėlyshit ėshtė: 7
Shembulli i mėposhtėm pėrdor variablin "mosha" pa e inicializuar atė, prandaj ai mund tė japė njė gabim nė kohėn e kompilimit.
public class Test {
public void moshaeKelyshit() {
int mosha;
mosha = mosha + 7;
System.out.println("Mosha e kėlyshit ėshtė: " + mosha);
}
public static void main(String args[]) {
Test test = new Test();
test.moshaeKelyshit();
}
}
Ky kod do tė prodhojė gabimin e mėposhtėm ndėrkohė qė kompilohet.
Rezultati
Test.java:4:numri i variablit mund tė mos jetė inicializuar.
mosha = mosha + 7;
^
1 error
Variablat e instancės
Variablat e instancės janė tė deklaruara nė njė klasė, por jashtė metodės, konstruktorit ose ndonjė blloku.
Kur njė hapsirė ėshtė rezervuar pėr njė objekt nė memorie, krijohet njė hapsirė pėr ēdo vlerė tė variablit tė instancės.
Variablat e instancės mbajnė vlera qė duhet tė referencohen nga mė shumė se njė metodė, konstruktor ose bllok, ose pjesė tė rėndėsishme tė gjendjes sė njė objekti qė duhet tė pėrshkruhen nga njė klasė.
Variablat e instancės mund tė deklarohen nė nivel klase para ose pas pėrdorimit tė saj.
Modifikuesit e aksesit mund tė jepen pėr variablat e instancės.
Variablat e instancės janė tė dukshme pėr tė gjitha metodat, konstruktorėt ose blloqet nė njė klasė. Normalisht, ėshtė e rekomanduar ti bėni kėto variabla private (nivel aksesi). Gjithesesi, dukshmėria pėr nėnklasat mund tė jepet pėr ato variabla qė pėrdoren si modifikues aksesi.
Variablat e instancės kanė vlera automatike. Pėr numrat, vlera automatike ėshtė 0, pėr tipin e tė dhėnės boolean ėshtė false, dhe pėr referencat e objekteve ėshtė null. Vlerat mund tė caktohen gjatė deklarimit ose brenda konstruktorit.
Variablat e instancės mund tė aksesohen direkt duke thirrur emrin e variablit brenda klasės. Gjithsesi, brenda metodave statike (kur variablat e instansės janė tė aksesueshme), ato duhet tė deklarohen duke pėrdorur emrin e plotė tė pėrcaktimit. ObjectReference.VariableName.
Shembull
import java.io.*;
public class Punonjesi {
// Ky variabėl i instancės ėshtė i dukshem pėr tė gjitha nėnklasat,
public String emri;
// variabli paga ėshtė i dukshėm vetėm nė klasėn Punonjesi.
private double paga;
// Variabli emri ėshtė i pėrcaktuar nė konstruktor.
public Punonjesi (String emriPunonjesit) {
emri = emriPunonjesit;
}
// Variabli paga ėshtė pėrcaktuar me njė vlerė.
public void setPaga(double pagaPunonjesit) {
paga = pagaPunonjesit;
}
// Kjo metodė printon detajet e punonjesit
public void printPunonjesi() {
System.out.println("Emri: " + emri );
System.out.println("Paga:" + paga);
}
public static void main(String args[]) {
Punonjesi punNje = new Punonjesi("Ana");
punNje.setPaga(1000);
punNje.printPunonjesi();
}
}
Ky kod do tė prodhojė rezultatin e mėposhtėm:
Rezultati
Emri: Ana
Paga: 1000.0
Variablat e klasės/ Statike
Variablat e klasės janė tė njohura gjithashtu si variabla statike dhe deklarohen me njė fjalė kyēe statike nė klasė, por jashtė metodave, konstruktorėve ose blloqeve.
Mund tė ketė vetėm njė kopje per ēdo variabėl klase pėr klasė, pa pasur rėndėsi sesa objekte janė krijuar nė atė klasė.
Variablat statike janė tė pėrdorura nė shumicėn e rasteve kur ato deklarohen si konstante. Konstantet janė variabla dhe janė tė deklaruara si public/private, final dhe static. Variablat konstante nuk ndryshojnė kurrė nga vlera e tyre e parė.
Variablat statike ruhen nė memorien statike. Ėshtė gjė e rrallė qė tė pėrdoren variabla statike pėrveē atyre tė deklaruara final; dhe tė pėrdorura si konstante private ose publike.
Variablat statike krijohen kur programi fillon dhe shkatėrrohen kur programi ndalon.
Vizibiliteti ėshtė i ngjashėm si nė variablat e instancės. Gjithsesi, variablat statike janė tė deklaruara publike sepse ato duhet tė jenė tė pėrdorshme nga tė gjithė pėrdoruesit nė ēdo klasė.
Vlerat automatike janė tė ngjashme si nė variablat e instancės. Pėr numrat, vlera automatike ėshtė 0; pėr tipin e tė dhėnave boolean vlera automatike ėshtė false; dhe pėr referencat e objekteve ėshtė null. Vlerat mund tė pėrcaktohen gjatė deklarimit ose brenda nė konstruktor. Vlerat mund tė pėrcaktohen edhe nė blloqe speciale inicializuese statike.
Variablat statike mund tė aksesohen duke i thirrur me emrin e klasės ClassName.VariableName.
Kur deklarohen klasat e variablave si public static final, atėherė emrat e variablave (konstanteve) janė tė gjitha me shkronja kapitale. Nėse variablat statike nuk janė publike dhe finale, sintaksa e emėrtimit ėshtė e njėjtė si pėr variablat e instancės dhe ato lokale.
Shembull
import java.io.*;
public class Punonjesi {
// variabli paga ėshtė njė variabėl statik privat.
private static double paga;
// DEPARTAMENTI ėshtė njė konstante
public static final String DEPARTAMENTI = "Zhvillues";
public static void main(String args[]) {
paga = 1000;
System.out.println(DEPARTAMENTI + "Paga mesatare:" + paga);
}
}
Ky kod do tė prodhojė rezultatin e mėposhtėm:
Rezultati
Zhvillues Paga mesatare: 1000
Shėnim Nėse variablat aksesohen nga njė klasė e jashtme, konstantet duhet tė aksesohen si Punonjesi.DEPARTAMENTI