در جلسه گذشته با StringBuilder و StringBuffer آشنا شدیم. در این جلسه میخواهیم با مبحث Enumeration آشنا شویم.
Enum ها مقادیر ثابتی هستند که در برنامه ها می تواند بسیار کاربردی باشند.
برای تعریف enum به جای نوشتن کلمه class از کلمه enum استفاده میکنیم. و درون {} مقادیری که مورد نیاز است را وارد میکنیم.
public enum Day {
SATURDAY, SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY;
}
در بالا ما اسمامی هفته را درون enum ذخیره کردیم.
درون enum ها میشود تابع سازنده و فیلد تعریف کرد.
نکته مهم: زمانی که تابع سازنده دارای ورودی باشد باید برای هر نمونه تعریف شده یک مقدار تعریف شود.
public enum Day {
SATURDAY(0),SUNDAY(1),MONDAY(2),TUESDAY(3),WEDNESDAY(4),THURSDAY(5),FRIDAY(6);
Day(int value) {
}
}
برای نگه داری مقدار هر نمونه از enum باید یک متغییر تعریف کرد و زمانی که صدا زده میشود(تابع سازنده اجرا میشود) مقدار آن enum را درون متغییر ذخیره کرد.
public enum Day {
SATURDAY(0),SUNDAY(1),MONDAY(2),TUESDAY(3),WEDNESDAY(4),THURSDAY(5),FRIDAY(6);
private int value;
Day(int value) {
this.value=value;
}
public int getValue(){
return value;
}
}
تابع getValue را برای اینکه درون کلاسها به مقدار فیلد value دسترسی داشته باشیم ایجاد کردیم.
public static void main(String[] args) {
System.out.println(Day.FRIDAY);
System.out.println(Day.MONDAY);
System.out.println(Day.SATURDAY.getValue());
System.out.println(Day.WEDNESDAY.getValue());
}
خروجی
FRIDAY
MONDAY
0
4
این متد تمام نمونههای enum را به صورت یک آرایه برمیگرداند.
Day[] day= Day.values();
System.out.println(day.length);
خروجی
7
این متد یک رشته دریافت میکند و درون enum آن رشته را جستجو میکند اگر نمونه ای با آن نام وجود داشته باشد آن را به عنوان خروجی برمیگرداند.
Day day= Day.valueOf("MONDAY");
System.out.println(day.getValue());
خروجی
2
سپاسگزاریم که همراه ما هستید
امیدواریم که این آموزش مورد توجه شما دوستان عزیز قرار گرفته باشد و بتواند شما را در راه رسیدن به اهدافتان کمک کند. برای دسترسی بیشتر به جلسات این دوره از آموزش جاوا پیشرفته کلیک کنید.
خوشحال میشویم هر گونه پیشنهاد یا انتقادی دراین زمینه بود برای ما در قسمت نظرات ارسال کنید.
عالی
ممنون از شما دوست عزیز