Java-da Enum saymanın qısa formasıdır. Java Enum sinfi dəyərlərini dəyişə bilmədiyimiz sabitlərin siyahısını müəyyənləşdirir. Son dəyişənə bənzəyir. Hər zaman böyük hərfdə Enum sabitlərini təyin edirik. Bu yazıda Java'da necə sayılacağını görəcəyik.
Mündəricat
Enum elan etmək sintaksis (Sadalamaq)
Enum elan etmək üçün dəyişənin ardınca enum açar sözündən istifadə etməliyik. Buruq mötərizələrin içərisində vergilərlə ayrılmış sabitləri elan edirik.
enum Speed { SLOW, MEDIUM, FAST }
Sürət - Enum dəyişən adını təmsil edir
Buruq mötərizələrin içindəki dəyərlər Enum sabitlərini təmsil edir.
Enum xüsusiyyətləri (Sadalamaq)
- Həmişə böyük hərfdən istifadə edərək enum sabitlərini təyin etməliyik
- Sinif daxilində və ya xaricində bir enum elan edə bilərik
- Enum bir sinifdir və hər sabit bir enum tipli bir obyektdir.
- Enum içərisində sahələri və metodları elan edə bilərik
- Hər bir enum sabiti bir vergüllə ayrılır və bir enumun da metodları varsa, nöqtəli vergüllə bitməlidir.
Java-da Enum sabitlərinə giriş
Enum sabitlərinə 2 müxtəlif yolla daxil ola bilərik:
- Enum dəyişəninin yaradılması: Enum sabitini ona təyin etməklə bir enum dəyişənini yarada bilərik. Dəyəri çap etmək üçün bu dəyişəni istifadə edə bilərik.
enum Speed { SLOW, MEDIUM, FAST } Speed s = Speed.MEDIUM; System.out.println(d);
- Enum adından istifadə: Enum adını istifadə edərək sabitə birbaşa daxil ola bilərik.
enum Speed { SLOW, MEDIUM, FAST } System.out.println(Speed.SLOW);
Java-da bir Enum daxilində əsas metoddan istifadə
Bir Enum içərisində əsas metodu istifadə etsək, Enum'u birbaşa heç bir sinif olmadan icra edə bilərik.
public enum Speed { SLOW, MEDIUM, FAST; public static void main(String[] args) { System.out.println(Speed.MEDIUM); System.out.println(Speed.FAST); } }
MEDIUM FAST
Sinif xaricində Java Enumun təyin edilməsi
Aşağıdakı nümunədə gördüyünüz kimi bir sinif xaricində bir enum elan edə bilərik.
enum Speed { SLOW, MEDIUM, FAST } public class Sample { public static void main(String[] args) { Speed s = Speed.SLOW; System.out.println(d); } }
SLOW
Bir sinif daxilində Java Enumun təyin edilməsi
Aşağıda bir sinif daxilində bir enum elan etmək nümunəsi verilmişdir.
public class Sample { enum Speed { SLOW, MEDIUM, FAST } public static void main(String[] args) { Speed s = Speed.MEDIUM; System.out.println(d); } }
MEDIUM
İf-else ifadəsindən istifadə edin
Da enum dəyişənini də istifadə edə bilərik Əgər aşağıdakı nümunədəki kimi şərti bəyanat.
enum Speed { SLOW, MEDIUM, FAST } public class ConditionalEnum { public static void main(String[] args) { Speed s = Speed.MEDIUM; if(s == Speed.SLOW) System.out.println("Vehicle speed is slow"); else if(s == Speed.MEDIUM) System.out.println("Vehicle speed is medium"); else System.out.println("Vehicle speed is fast"); } }
Vehicle speed is medium
Bir keçid ifadəsi daxilində
Aşağıda, mübahisəli keçid yolu ilə bir keçid ifadəsi daxilində enum dəyişənlərindən istifadə nümunəsi verilmişdir. Oxumaqla maraqlana bilərsən açar kassa Java-da.
enum Speed { SLOW, MEDIUM, FAST } public class ConditionalEnum { public static void main(String[] args) { Speed s = Speed.MEDIUM; switch(s) { case SLOW: System.out.println("Speed is Slow"); break; case MEDIUM: System.out.println("Speed is Medium"); break; case FAST: System.out.println("Speed is Fast"); break; } } }
Speed is Medium
For loop istifadə edərək enum dəyərlərinin təkrarlanması
A istifadə edərək Java-da enum dəyərlərini təkrarlaya bilərik döngə üçün hər bir enum sabitini almaq və çap etmək. Enum sabitlərindən elan olunduğu qaydada təkrarlanır. Oxumaqla maraqlana bilərsən Java-da təkrarlayıcı.
enum Speed { SLOW, MEDIUM, FAST } public class Sample{ public static void main(String[] args) { for(Speed s : Speed.values()) System.out.println(s); } }
SLOW MEDIUM FAST
Enum metodları
Java Enum sinfi fərqlidir metodika dəyərləri əldə etmək.
dəyərlər () - Bu metod enumda elan edilmiş bütün sabit dəyərləri qaytarır.
valueOf () - Göstərilən sətir dəyərinin enum sabitini qaytarır.
nizamnamə () - Bir sıra indeksinə oxşar enum sabitinin indeksini tapmaq üçün istifadə olunur.
Aşağıdakı nümunə, dəyərləri və onların indeksini almaq üçün müxtəlif Java enum dəstəkləyici metodlarından necə istifadə ediləcəyini göstərir.
public class Test { enum Speed { SLOW, MEDIUM, FAST } public static void main(String[] args) { //Using values() method and ordinal method for(Speed s : Speed.values()) { System.out.println("Value: " + s + " Index: " + s.ordinal()); } //Using valueOf() method System.out.println(Speed.valueOf("FAST")); //toString method Speed s = Speed.SLOW; System.out.println(s.toString()); } }
Value: SLOW Index: 0 Value: MEDIUM Index: 1 Value: FAST Index: 2 FAST SLOW
Enum sabitlərinə başlanğıc dəyərləri
İstifadə edərək Java enum sabitlərinə başlanğıc edə bilərik inşaatçılar. Enum, hər bir enum sabiti üçün çağırılan bir konstruktor ehtiva edə bilər. Enum konstruktorları varsayılan olaraq özəldirlər. Aşağıda, konstruktorlardan istifadə edərək Java enum sabitlərinə dəyərlərin başlanğıc edilməsi nümunəsi verilmişdir. Konstruktor daxilində başlatdığımız xüsusi sahəni istifadə edərək dəyərlərə çata bilərik.
public class Test { enum Speed { SLOW(15), MEDIUM(40), FAST(80); private int sp; private Speed(int sp) { this.sp = sp; } } public static void main(String[] args) { for(Speed s : Speed.values()) System.out.println(s + ": " + s.sp); } }
SLOW: 15 MEDIUM: 40 FAST: 80
Enum və metodlar
Enumun içərisində metodlar müəyyənləşdirə bilərik. Java-da bir enum həm sahələrə, həm də metodlara sahib olduqda, sabitləri sona qədər nöqtəli vergüllə bitirməliyik. Enumun içərisində normal və mücərrəd metodları müəyyən edə bilərik.
Aşağıda bir enum daxilində metodların elan edilməsi nümunəsi verilmişdir.
public class EnumMethods { enum Speed { SLOW(10), MEDIUM(40), FAST(80); private int sp; Speed(int sp){ this.sp = sp; } public int getSpeed() { return this.sp; } } public static void main(String[] args) { Speed s = Speed.SLOW; System.out.println(s + " :" + s.getSpeed()); Speed s2 = Speed.FAST; System.out.println(s2 + " :" + s2.getSpeed()); } }
SLOW :10 FAST :80
Java'da necə sayılacağını oxuduq. Sizə də maraqlı ola bilər EnumMap