2010-07-16 17 views
5

में enum चर घोषित करें मुझे कक्षा के सदस्य के रूप में एक enum चर घोषित करने की आवश्यकता है और इसके लिए एक सेटर और गेटर को जावा बीन की तरह परिभाषित करने की आवश्यकता है। कुछ इस तरह -जावा बीन

public class Vehicle { 
private String id; 
private String name; 
enum color { 
    RED, GREEN, ANY; 
} 
// setter and getters 
} 

अब, मैं लाल, हरे या कुछ अन्य वर्ग से किसी भी रूप में रंग संपत्ति सेट करना चाहते हैं और उसके अनुसार निर्णय लेने के लिए चाहते हैं।

+0

यह कोई सवाल नहीं है! :) –

उत्तर

13

enum सार्वजनिक किये जाने की है जाएगा बाहर की दुनिया से देखा जाना चाहिए:

public class Vehicle { 
    private String id; 
    private String name; 

    public enum Color { 
     RED, GREEN, ANY; 
    }; 

    private Color color;  

    public Color getColor(){ 
     return color; 
    } 

    public void setColor(Color color){ 
     this.color = color; 
    } 

    } 

फिर पैकेज के बाहर से आप कर सकते हैं:

vehicle.setColor(Vehicle.Color.GREEN); 

अगर आप केवल Vehicle के समान पैकेज के अंदर वाहन का उपयोग करने की आवश्यकता है। आप enum घोषणा से public हटा सकते हैं।

+0

मान लीजिए कि आप एनम उपयोग पर अच्छे हैं, क्या आप इस लिंक में मेरी मदद कर सकते हैं: http: //stackoverflow.com/q/14252822/1503130 – Prateek

2

यदि आप अपने color enum के साथ काम करना चाहते हैं, तो आपको अपनी घोषणा से अधिक व्यापक रूप से साझा करना होगा। public वाहन में enum color के सामने सबसे आसान हो सकता है।

अगला, आपको enum के प्रकार का एक क्षेत्र घोषित करने की आवश्यकता है। मेरा सुझाव है कि आप color से Color पर enum का नाम बदलें, क्योंकि यह मूल रूप से एक वर्ग है। फिर आप अपने क्षेत्र के साथ एक क्षेत्र घोषित कर सकते हैं: private Color color

enum और विशेष रूप से इसके किसी अन्य वर्ग से इसके स्थिरांक का उपयोग करने के लिए, आपको यह पता होना चाहिए कि enum वाहन में घोंसला है। आप सभी के नाम अर्हता प्राप्त करने की आवश्यकता है, तो:

Vehicle.Color myColor = Vehicle.Color.RED; 

Bakkal कृपया लिखा है मैं किस बारे में बात कर रहा था की बहुत प्रदर्शित करने के लिए कोड। विवरण के लिए उसका जवाब देखें!

+0

यह आपसे मिलकर अच्छा है :) – bakkal

+2

मुझे पूरा यकीन नहीं था तस्वीर और आप को अपमानित नहीं करना चाहते थे;) –

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