oruji.github.io
oruji.github.ioPersian Tutorials
ویرایش: 1396/11/14 16:41
A A

Enum در جاوا (Java)

در این آموزش از کتاب برخط جاوا، چند مثال ساده و کاربردی از enum در جاوا (Java) را نشان خواهیم داد، از نوع Enum زمانی که برنامه شما حاوی مقادیر ثابت و بدون تغییر هستند استفاده می کنیم، مانند فصل های سال، عملیات ماشین حساب و وضعیت کاربر و غیره.

Enum پایه

public enum UserStatus { PENDING, ACTIVE, INACTIVE, DELETED; }

استفاده

public class Test { public static void main(String[] args) { //ACTIVE System.out.println(UserStatus.ACTIVE); } }

Enum به همراه فیلد Intance

public enum WhoisRIR { ARIN("whois.arin.net"), RIPE("whois.ripe.net"), APNIC("whois.apnic.net"), AFRINIC("whois.afrinic.net"), LACNIC("whois.lacnic.net"), JPNIC("whois.nic.ad.jp"), KRNIC("whois.nic.or.kr"), CNNIC("ipwhois.cnnic.cn"), UNKNOWN(""); private String url; WhoisRIR(String url) { this.url = url; } public String url() { return url; } }

استفاده

public class Test { public static void main(String[] args) { //whois.arin.net System.out.println(WhoisRIR.ARIN.url()); } }

Enum به همراه تابع و کمی منطق

public enum Operation { PLUS, MINUS, TIMES, DIVIDE; double calculate(double x, double y) { switch (this) { case PLUS: return x y; case MINUS: return x - y; case TIMES: return x * y; case DIVIDE: return x / y; default: throw new AssertionError("Unknown operations " this); } } }

استفاده

public class Test { public static void main(String[] args) { double result = Operation.PLUS.calculate(1, 2); System.out.println(result); //3.0 } }

نحوه استفاده از Enum در جاوا (Java)

استفاده در یک حلقه

public class Test { public static void main(String[] args) { for (UserStatus status : UserStatus.values()) { System.out.println(status); } } }

خروجی

PENDING ACTIVE INACTIVE DELETED

برای مقایسه مقادیر Enum با استفاده از عملگر ==

public class Test { public static void main(String[] args) { WhoisRIR rir = WhoisRIR.APNIC; if(rir == WhoisRIR.APNIC) { System.out.println("This is APNIC : " rir.url()); } } }

خروجی

This is APNIC : whois.apnic.net

در switch case

public class Test { public static void main(String[] args) { WhoisRIR rir = WhoisRIR.RIPE; switch (rir) { case ARIN: System.out.println("This is ARIN"); break; case APNIC: System.out.println("This is APNIC"); break; case RIPE: System.out.println("This is RIPE"); break; default: throw new AssertionError("Unknown RIR " rir); } } }

خروجی

public class Test { public static void main(String[] args) { //enum valueOf uppercase Operation op = Operation.valueOf("times".toUpperCase()); System.out.println(op.calculate(10, 3)); } }

خروجی

30.0

منابع

  1. Oracle Doc – Enum Types