2013-10-12 9 views
13
में एक क्लास के भीतर

जब जावा में एक वर्ग के अंदर एक enum की घोषणा मैं इन 2 दृष्टिकोण को देखा है:निजी enum स्थान जावा

1)

public class MyClass { 

    private enum MyEnum { 
     A, B, C; 
    } 

    /* Static fields */ 

    /* Instance variables */ 

    /* Methods */ 
} 

2)

public class MyClass { 

    /* Static fields */ 

    /* Instance variables */ 

    /* Methods */ 

    private enum MyEnum { 
     A, B, C; 
    } 
} 

सबसे ज्यादा इस्तेमाल कौन सा है? क्या इसके लिए कोई सम्मेलन है?

+0

यदि आप इसे अलग-अलग रखते हैं तो क्या कोई समस्या है? – Rupesh

+0

@ रुपेश मैं सिर्फ यह जानना चाहता हूं कि इसके लिए कोई सम्मेलन है या यदि यह व्यक्तिगत वरीयता का मामला है। – miviclin

+0

बिलकुल नहीं और सुरक्षित पक्ष पर रहने के लिए 'मुझे नहीं पता'। – Rupesh

उत्तर

16

आम तौर पर जावा में, नेस्टेड डेटा प्रकार (उदा। कक्षाएं, एनम्स) फ़ाइल के नीचे जाते हैं।

हालांकि, आपके द्वारा पोस्ट किए गए जैसे छोटे, निजी enums (जो फ़ील्ड की तरह अधिक महसूस करते हैं) के लिए, मैं # 1 के साथ जाऊंगा।

लंबे समय के लिए, मैं या तो # 2 के साथ जाऊंगा या उन्हें एक अलग फ़ाइल में रखूंगा।

0

इसके लिए कोई सम्मेलन नहीं किया गया है, लेकिन मैंने जो देखा है, उदाहरण 1 का उपयोग अक्सर किया जाता है। मैं व्यक्तिगत रूप से उन्हें भी इस तरह से रखता हूं।

0

जावा में typedef कथन (सी और सी ++ में) नहीं है। जावा में नए प्रकार घोषित करने के लिए, आप एक नई कक्षा घोषित करते हैं; तो चर के उस वर्ग के प्रकार के रूप में घोषित किया जा सकता है। जावा भी फॉरवर्ड संदर्भ का उपयोग करता है, जावा कंपाइलर सी कंपाइलर से अधिक स्मार्ट है, जिसमें यह परिभाषित होने से पहले विधियों को लागू करने की अनुमति देता है। यह प्रोग्राम फ़ाइल में परिभाषित करने से पहले हेडर फ़ाइल में फ़ंक्शंस घोषित करने की आवश्यकता को समाप्त करता है, जैसा कि सी

पर मैं कहीं भी enum रख सकता हूं और इसे कहीं से भी एक्सेस कर सकता हूं। उदाहरण देखें।

class CheckEnum{ 

    private void method1() { 
     System.out.println(enumTest.test1);  
    }  
    private enum enumTest{ 
     test1 
    }  
    private void method2() { 
     System.out.println(enumTest.test1); 
    } 
} 

मैं जाँच कर ली है और दोनों विधि method1 और method2enumTest की पहुंच है।

0

उनमें से किसी के साथ कुछ भी गलत नहीं है। यह राय का विषय है लेकिन मैं # 1 जाऊंगा।

संबंधित मुद्दे