Bundan başqa bir də qüvvədə olma baxımından 3 formada olur: Local, instanca, class.
Local variables yalnız metodlar və ya {} bloku daxilində yaradılır və orada qüvvədə olur. Bundan kənarda heç bir şəkildə istifadə oluna bilməz.
Instance variables metodların xaricində, əksər hallarda sinfin elan
olunmasından (declaration) dərhal sonra yazılır və həmin sinfin
obyektlərinin bir xüsusiyyəti kimi çıxış edir. Hər yeni yaradılmış
obyekt üçün yeni bir instance variable yaradılır və hər obyektə uyğun
fərqli dəyərlər verilir. Müraciət yalnız obyekt üzərindən mümkün olur.
Məsələn, Test sinfi v dəyişəninə malikdir. Bu sinfin test1, test2
obyektlərinin fərqli dəyərlərdə v dəyişəni var. Müraciət isə test1.v,
test2.v yolu ilə olur. Bunlar hər biri ayrı ünvanları göstərir.
Class (və ya static) variables sinif səviyyəsində dəyişənlərdir. Bu sinifdən yaradılmış bütün obyektlər üçün ümumi dəyərə sahib olur və müraciət həm obyekt üzərindən, həm də sinif vasitəsilə mümkündür. Yəni, Test.v, test1.v, test2.v müraciətləri eyni bir ünvanı göstərir.
Son nümunədə hər nə qədər ayrı ayrı obyektlər üçün fərqli dəyər verilibsə də, dəyişiklik eyni bir "v" üzərində gedir və sondakı dəyər 15 olur.
public class Test
{
int v;
public static void main (String[] arg)
{
Test test1=new Test();
Test test2=new Test();
test1.v=5;
test2.v=10;
System.out.println(test1.v);
System.out.println(test2.v);
}
}
Class (və ya static) variables sinif səviyyəsində dəyişənlərdir. Bu sinifdən yaradılmış bütün obyektlər üçün ümumi dəyərə sahib olur və müraciət həm obyekt üzərindən, həm də sinif vasitəsilə mümkündür. Yəni, Test.v, test1.v, test2.v müraciətləri eyni bir ünvanı göstərir.
public class Test
{
static int v;
public static void main (String[] arg)
{
Test test1=new Test();
Test test2=new Test();
test1.v=5;
test2.v=10;
Test.v=15;
System.out.println(test1.v);
System.out.println(test2.v);
System.out.println(v);
}
}
Son nümunədə hər nə qədər ayrı ayrı obyektlər üçün fərqli dəyər verilibsə də, dəyişiklik eyni bir "v" üzərində gedir və sondakı dəyər 15 olur.
No comments:
Post a Comment