static
final
abstract
synchronized
volatile
transient
static
-bu barədə əvvəlki postlarda yazmışdım. Yenə yada salım, bu söz
aid olduğu obyekt, dəyişən və metodları sinif səviyyəsində təyin edir.
"static" olan bir elementə birbaşa sinif adı ilə müraciət etmək
mümkündür. Məsələn, "Math.PI" Math sinfindəki PI adlı sabit bir dəyişəni
göstərir. Bu bildiyimiz "pi" ədədidir. "Math.sqrt(double i)" metodu isə
double tipdən daxil edilmiş bir ədədin kvadrat kökünü verir.final
-dəyişən üçün işlədildikə o dəyişənin dəyərinin yalnız bir dəfə təyin edilə bildiyini göstərir. Məsələn,final int i=5;
i=10; //compile error
"static" və "final" sözlərinin birlikdə işlədilməsi sinif səviyyəsində bir sabit yaradır. Məsələn,
public static final PI=3.1415.....
public static final E=2.7182.....
Metodlar üçün "final" sözü o metodun altsiniflərdə "override" olmasının qarşısının alınması üçün işlədilir. Qısaca deyə bilərəm ki, "overriding" bir metodun altsiniflərdə daxili kodunun yenidən yazılmasıdır.
abstract
-mücərrəd siniflər və mücərrəd metodlar
yaratmaq üçün istifadə olunur. Mücərrəd metod odur ki, metod yalnız
imzadan (signature) ibarət olur, daxili kod yazılmır. Bu metodun olduğu
sinif də mücərrəd olur. Bu sinifdən törədilmiş altsinif bu metodu mütləq
"override" etməlidir. Məsələn,public abstract class Test1 //mücərrəd sinfin yaradılması
{
abstract void print(); //mücərrəd metod, kod bloku və gövdə yoxdur.
}
public class Test2 extends Test1 //Test1 sinfindən Test2 sinfi törədilir
{
public void print(). //print() metodunun gövdəsi yazılır
{
System.out.println("print () method overrode");
}
}
synchronized
-bu ifadə "thread" əməliyyatları ilə bağlıdır. İstənilən proqram iş parçacıqlarından (thread) ibarətdir. Java Multithreading-i dəstəkləyir. Bu isə o deməkdir ki, eyni zamanda bir neçə əməliyyat aparmaq mümkündür (əslində, tam da eyni zamanda demək olmaz, sadəcə biz bu şəkildə qəbul edirik). Əgər normal halda bir proqram öz işini bitirməmiş digər proqram icraya başlamırsa, multithreading-də hər iş parçacığı növbəli şəkildə eyni bir yaddaş ünvanına müraciət edə bilir. Amma bu zaman da bir iş parçacığının öz işini tam yekunlaşdırması tələb oluna bilir. Bu məqsədlə də metodlarda "synchronized" ifadəsi işlədilir.
volatile
-yenə "multithreading" əməliyyatının bir elementidir. Bəzən komputer sürət xatirinə bir dəyişənin o ankı həqiqi dəyərini yox, keş yaddaşında saxlanmış dəyirini oxumağa çalışa bilir. Lakin elə bir dəyişən təyin edilmiş ola bilər ki, onun istənilən anda həqiqi dəyəri oxunmalı olsun. Bu zaman həmin dəyişən "volatile" kimi qeyd edilir. Bu, komputerin həmin dəyişənin dəyərini keş yaddaşından oxumasının qarşısını alır və hər zaman aktual dəyərini götürür.
No comments:
Post a Comment