उसी तरह जब आप किसी डेटाबेस या जावा में किसी वर्ग के नाम में तालिका नाम को परिभाषित कर रहे हैं, तो आप एनम के लिए एकवचन का उपयोग करते हैं यह भी सबसे अच्छा विकल्प है। बस यह देखें कि आप इसका उपयोग कैसे करने जा रहे हैं।
एक उदाहरण लिखते हैं:
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
class Appointment {
private Day day;
public void setDay(Day day) {
this.day = day;
}
}
विलक्षण रूप में आप स्पष्ट रूप से दिन की विशेषता को देखते हैं। "दिन" सप्ताह के दिन यह नियुक्ति होने जा रही है। अन्यथा विधि के हस्ताक्षर सेटडे (दिन दिन) हो जाते थे और निश्चित रूप से बहुत से लोग सोच रहे होंगे कि क्या नियुक्ति एक दिन से अधिक हो सकती है।
यदि आप किसी कंपनी में काम करते हैं, तो 48 घंटे की शिफ्ट में आप कुछ इस तरह परिभाषित कर सकते हैं:
public enum Days {
MONDAY_TUESDAY, WEDNESDAY_THURSDAY, FRIDAY_SATURDAY
}
इस तरह आप उन दिनों को निर्धारित कर सकते हैं जो आप काम करने जा रहे हैं। लेकिन फिर भी यह अजीब लगेगा और एक बेहतर विकल्प है और विलक्षण रूप का उपयोग करना है:
public enum Shift {
MONDAY_TUESDAY, WEDNESDAY_THURSDAY, FRIDAY_SATURDAY
}
अब आप वास्तव में enum का अर्थ दिखा रहे हैं। आमतौर पर किसी भी डोमेन में आप यह पता लगाने जा रहे हैं कि एनम के लिए एकवचन का उपयोग करना सबसे अच्छा विकल्प है क्योंकि एनम में प्रत्येक स्थिर एक तत्व है।
आप .NET का भी जिक्र करें। .NET में एक "झंडे" enum का अर्थ है कि जब आप उस Enum को एक पैरामीटर के रूप में उम्मीद कर रहे हैं कि आपको वास्तव में क्या मिलता है तो उस enum के तत्वों की एक सूची है (एक पूर्णांक के रूप में संग्रहीत)।
// Define an Enum with FlagsAttribute.
[FlagsAttribute]
enum MultiHue : short
{
Black = 0,
Red = 1,
Green = 2,
Blue = 4
};
public void setMultiHue(MultiHue hues);
आप जावा में भी ऐसा कर सकते हैं, लेकिन एनम अभी भी विलक्षण होगी:
public enum Hue {
BLACK, RED, GREEN, BLUE;
private final Integer hue;
Hue() {
this.hue = 1 << this.ordinal();
}
public Integer toFlag() {
return this.hue;
}
}
public class MultiHue {
private Integer hues = 0;
public void addHue(Hue hue) {
this.hues |= hue.toFlag();
}
public boolean hasHue(Hue hue) {
return (this.hues & hue.toFlag()) != 0;
}
}
जावा के साथ ऐसा करने के लिए एक आसान और स्पष्ट (हालांकि यह अधिक मेमोरी का उपयोग करता है) केवल एक सूची का उपयोग करना है।