Java enum


ULASHISH

Enumlar

enum — konstantalar (final o‘zgaruvchilar kabi o‘zgarmas o‘zgaruvchilar) guruhini ifodalovchi maxsus "sinf".

enum yaratish uchun (class yoki interface o‘rniga) enum kalit so‘zidan foydalaning va konstantalarni vergul bilan ajrating. E’tibor bering, ular katta harflarda yozilishi kerak:

Misol

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

enum konstantalariga nuqta sintaksisi orqali murojaat qilishingiz mumkin:

Level myVar = Level.MEDIUM;
O‘zingiz sinab ko‘ring »

Enum — "enumerations" so‘zining qisqartmasi bo‘lib, "aniq sanab o‘tilgan" degan ma’noni anglatadi.


Sinf ichidagi enum

enum’ni sinf ichida ham e’lon qilishingiz mumkin:

Misol

public class Main {
  enum Level {
    LOW,
    MEDIUM,
    HIGH
  }

  public static void main(String[] args) {
    Level myVar = Level.MEDIUM; 
    System.out.println(myVar);
  }
}

Natija quyidagicha bo‘ladi:

MEDIUM
O‘zingiz sinab ko‘ring »

switch operatorida enum

Enumlar ko‘pincha mos qiymatlarni tekshirish uchun switch operatorlarida ishlatiladi:

Misol

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

public class Main {
  public static void main(String[] args) {
    Level myVar = Level.MEDIUM;

    switch(myVar) {
      case LOW:
        System.out.println("Low level");
        break;
      case MEDIUM:
         System.out.println("Medium level");
        break;
      case HIGH:
        System.out.println("High level");
        break;
    }
  }
}

Natija quyidagicha bo‘ladi:

Medium level
O‘zingiz sinab ko‘ring »


Enum bo‘ylab sikl

Enum tipida barcha enum konstantalari massivini qaytaradigan values() metodi bor. Bu metod enum konstantalari bo‘ylab sikl bajarmoqchi bo‘lganingizda foydali:

Misol

for (Level myVar : Level.values()) {
  System.out.println(myVar);
}

Natija quyidagicha bo‘ladi:

LOW
MEDIUM
HIGH
O‘zingiz sinab ko‘ring »

Enumlar va sinflar o‘rtasidagi farq

enum ham xuddi class kabi atribut va metodlarga ega bo‘lishi mumkin. Yagona farq shundaki, enum konstantalari public, static va final bo‘ladi (o‘zgarmas — qayta yozib bo‘lmaydi).

enum yordamida obyekt yaratib bo‘lmaydi va u boshqa sinflarni kengaytira (extends) olmaydi (lekin interfeyslarni amalga oshira oladi).

Nima uchun va qachon enumlardan foydalanish kerak?

O‘zgarmasligini biladigan qiymatlaringiz bo‘lganda, masalan, oy kunlari, hafta kunlari, ranglar, karta dastasi va h.k. uchun enumlardan foydalaning.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!