العودة إلى الدورة

فهم واستخدام التعدادات (Enums)

إتقان لغة Java: من الصفر إلى مطور محترف (رحلة من 50 درساً)

الدرس 32: فهم واستخدام التعدادات (Enums)

الـ تعداد (Enum) هو نوع فئة خاص يُستخدم لتعريف مجموعة ثابتة من الثوابت. وهي أكثر أماناً وتعبيرية بكثير من استخدام ثوابت الأعداد الصحيحة العادية.

1. تعريف Enum الأساسي

تضمن التعدادات أمان النوع (type safety)، مما يعني أن المتغير المصرح عنه كنوع Enum يمكنه فقط أخذ إحدى قيم الثوابت المحددة.

java public enum DayOfWeek { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }

// الاستخدام: DayOfWeek today = DayOfWeek.MONDAY;

// مقارنة آمنة: if (today == DayOfWeek.FRIDAY) { System.out.println("It's Friday!"); }

// تعمل التعدادات بشكل مثالي مع جمل switch: switch (today) { case SATURDAY, SUNDAY -> System.out.println("Weekend!"); default -> System.out.println("Work day."); }

2. التعدادات كفئات محسنة

في Java، التعدادات هي فئات كاملة. يمكن أن تحتوي على منشئات، وحقول، ودوال، مما يسمح لك بربط سلوك أو بيانات بكل ثابت.

java public enum CoffeeSize { SMALL(8), MEDIUM(12), LARGE(16);

private final int ounces;

// يجب أن يكون المنشئ خاصاً private
CoffeeSize(int ounces) {
    this.ounces = ounces;
}

public int getOunces() {
    return ounces;
}

}

// الاستخدام: CoffeeSize myCoffee = CoffeeSize.MEDIUM; System.out.println("Size: " + myCoffee.getOunces() + " oz.");

دوال Enum القياسية: ترث جميع التعدادات دوالاً مثل name() (تعيد اسم الثابت كنص) و ordinal() (تعيد فهرس الثابت، بدءاً من 0).