Enumها

از ویکی‌کد
(تغییرمسیر از Enumها در جاوا)
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Java-menu.jpeg
خانه
متدها در جاوا
کلاس‌ها در جاوا
۱برنامه‌نویسی شیءگرایی
۲کلاس‌ها و اشیاء
۳خاصیت‌های کلاس
۴متدهای کلاس
۵سازنده‌ها
۶Modifier ها
۷کپسوله‌سازی
۸پکیج‌ها
۹ارث بری
۱۰چند ریختی
۱۱کلاس‌های داخلی
۱۲مفهوم انتزاعی
۱۳رابط‌ها
۱۴Enum ها
۱۵دریافت اطلاعات از کاربر
۱۶تاریخ و زمان
۱۷ArrayList
۱۸HashMap
۱۹کلاس‌های Wrapper
۲۰خطاهای جاوا
فایل‌ها در جاوا
مرجع جاوا
مثال‌های جاوا

یک enum یک «کلاس» مخصوص است که گروهی از ثابت‌ها (متغیرهای غیرقابل تغییر، همانند متغیرهای final) را نشان می‌دهد. [۱]

برای ساخت یک enum، از کلمه کلیدی enum (به جای class یا interface) استفاده کنید، و ثابت‌ها را با یک ویرگول , از یکدیگر جدا کنید. توجه داشته باشید که نام آنها را می‌بایست با حروف تمام بزرگ بنویسید:

مثال

1 enum Level {
2   LOW,
3   MEDIUM,
4   HIGH
5 }

شما می‌توانید به ثابت‌های enum به وسیله شیوه نوشتار نقطه . دسترسی پیدا کنید:

Level myVar = Level.MEDIUM;


مشاهدهٔ نتیجه

Enum (سرواژهٔ: Enumerations به معنای قابل شمارش)، «نوعی لیست بخصوص» در برنامه‌نویسی است.

Enumها درون یک کلاس

شما می‌توانید درون یک کلاس یک enum داشته باشید:

مثال

 1 public class MyClass {
 2   enum Level {
 3     LOW,
 4     MEDIUM,
 5     HIGH
 6   }
 7 
 8   public static void main(String[] args) {
 9     Level myVar = Level.MEDIUM; 
10     System.out.println(myVar);
11   }
12 }

خروجی برابر خواهد بود با:

Terminal.png Enum inside a Class


مشاهدهٔ نتیجه


Enum در تکه کد (به انگلیسی: Switch)

اغلب از Enumها در تکه کد switch برای پیداکردن مقادیر مرتبط استفاده می‌شود:

مثال

 1 enum Level {
 2   LOW,
 3   MEDIUM,
 4   HIGH
 5 }
 6 
 7 public class MyClass {
 8   public static void main(String[] args) {
 9     Level myVar = Level.MEDIUM;
10 
11     switch(myVar) {
12       case LOW:
13         System.out.println("Low level");
14         break;
15       case MEDIUM:
16          System.out.println("Medium level");
17         break;
18       case HIGH:
19         System.out.println("High level");
20         break;
21     }
22   }
23 }

خروجی برابر خواهد بود با:

Terminal.png Enum in a Switch Statement


مشاهدهٔ نتیجه


حلقه درون یک Enum

نوع enum متدی به نام values() دارد، که آرایه‌ای از تمام ثابت‌های enum را برمی‌گرداند. این متد زمانی که شما می‌خواهید درون یک enum حلقه ایجاد کرده و به وسیله آن در بین ثابت‌ها پیمایش کنید، بسیار کاربردی است:

مثال

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

خروجی برابر خواهد بود با:

Terminal.png Loop Through an Enum


مشاهدهٔ نتیجه


تفاوت بین Enumها و کلاس ها

یک enum می‌تواند همانند یک کلاس، خاصیت‌ها یا متدهایی داشته باشد. تنها تفاوتی که enumها دارند این است که ثابت‌ها از نوع public,staticو final هستند (غیرقابل تغییر - غیرقابل بازنویسی).

از یک enum نمی‌توان برای ساختن اشیاء استفاده کرد و نمی‌تواند از سایر کلاس‌ها ارث بری کند (کلاس‌های پدر را extend) کند (اما می‌تواند رابط‌ها (به انگلیسی: interface) را پیاده‌سازی کند).

چرا و چه زمانی می‌بایست از Enumها استفاده کنیم؟

زمانی که شما مقادیری مانند، ماه، روز، رنگ، شماره کارت و… که تغییر نمی‌کنند را دارید، از enumها استفاده می‌کنید.


منابع آموزشی