একইভাবে আপনি যখন কোনও ডাটাবেসে কোনও টেবিলের নাম বা জাভাতে কোনও শ্রেণীর সংজ্ঞা দিচ্ছেন আপনি এনামগুলির জন্য একক ব্যবহার করেন এটিও সেরা বিকল্প option আপনি কীভাবে এটি ব্যবহার করতে যাচ্ছেন তা দেখুন।
আসুন একটি উদাহরণ লিখি:
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
}
এখন আপনি সত্যিই এনামের অর্থ দেখাচ্ছে। সাধারণত যে কোনও ডোমেইনে আপনি সন্ধান করতে যাচ্ছেন যে এনামের জন্য একক ব্যবহার করা সেরা বিকল্প, কারণ এনামের প্রতিটি ধ্রুবক কেবল একটি উপাদান।
আপনিও উল্লেখ। নেট। নেট মধ্যে একটি "পতাকা" এনামের অর্থ হ'ল আপনি যখন সেই এনামকে প্যারামিটার হিসাবে প্রত্যাশা করছেন তখন যা সত্যই আপনি পাবেন তা সেই এনামের উপাদানগুলির একটি তালিকা (পূর্ণসংখ্যা হিসাবে সঞ্চিত)।
// 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;
}
}
জাভা সহ এটি করার জন্য একটি সহজ এবং পরিষ্কার (যদিও এটি আরও মেমরি ব্যবহার করে) কেবলমাত্র একটি তালিকা ব্যবহার করা।