2010-08-25 12 views
7

जावा में कोई सार तत्व है? मैंने कन्स्ट्रक्टर में इस सार चर को काम किया है, लेकिन मुझे लगता है कि कन्स्ट्रक्टर समर्थन स्थिर चर .pls मेरे संदेह को स्पष्ट करता हैजावा में कोई सार तत्व है?

+3

एक चर हो सकता है तो 'abstract', बस क्या आपको लगता है कि साधन करते हैं? शायद आपको अपनी प्रेरणा की जांच करनी चाहिए। – polygenelubricants

उत्तर

19

जावा में केवल कक्षाएं और विधियां अमूर्त हो सकती हैं। परिवर्तनीय घोषणा नहीं कर सकते हैं। हालांकि आप परिवर्तनीय घोषणाएं कर सकते हैं जिनके प्रकार सार हैं।

public abstract class MyClass { // allowed 
    public abstract myMethod(); // allowed 
    public MyClass instance; // allowed 

    public abstract MyClass instance; // NOT ALLOWED!! 
} 
+0

मैं जावा शुरुआत कर रहा हूं। यह कैसे अनुमति है। >> सार्वजनिक MyClass उदाहरण; // अनुमति दी क्या यह एक अमूर्त वर्ग का उदाहरण नहीं बना रहा है? – goldenmean

+2

@goldenmean यह अभी तक स्थापित नहीं है। सार्वजनिक MyClass उदाहरण = नया MyClass() त्रुटियों को फेंक देगा। (यदि MyClass सार है) –

7

भाषा specifacation सूचियों चर के 7 प्रकार:: - एक वर्ग घोषणा भीतर स्थिर के रूप में घोषित

  • उदाहरण चर - एक वर्ग घोषणा के भीतर घोषित

    1. वर्ग चर उदाहरण देखें स्थिर कीवर्ड
    2. सरणी घटक -की तरहजब हम की तरह एक सरणी बनाने int[] i= new int[5]
    3. विधि पैरामीटर - नाम तर्क मान एक विधि के लिए पारित
    4. निर्माता मापदंडों - नाम तर्क मान एक निर्माता के लिए पारित
    5. अपवाद-हैंडलर पैरामीटर - बनाए गए प्रत्येक समय अपवाद पकड़ा गया है
    6. स्थानीय चर - एक ब्लॉक में घोषित ({ }) या कथन

    आप एक निर्माता में (# 4 को छोड़कर) सभी चर प्रकार का उपयोग कर सकते हैं:

    class Demo { 
        static int demo1 = 0;    // class variable 
        int[] demo2 = new int[5];   // instance variable 
        Demo(int demo3) {     // constructor parameter 
        try { 
         int demo4 =      // local variable 
            demo2[2];   // array component 
        } catch(RuntimeException demo5) { // exception-handler parameter 
        } 
        demo2 = new int[]{Demo.demo1}; // using class and instance variable 
                 // in a constructor 
        } 
        int method(int demo6) {    // method parameter 
        } 
    } 
    

    abstract कीवर्ड चर घोषणा के लिए अनुमति नहीं है।

  • 0

    अमूर्त कीवर्ड का उपयोग किए बिना जावा में अमूर्त चर को परिभाषित करने के 2 तरीके हैं।

    1 तरीका: सार कक्षा में एक पैरामिट्रीकृत निर्माता को परिभाषित करें, कुछ की तरह:

    public abstract class TransactionManager { 
        private String separator; 
    
        public TransactionManager(String separator) { 
         this.separator = separator; 
        } 
    } 
    

    जब एक अमूर्त वर्ग में एक parametrized निर्माता को परिभाषित करने, उपवर्गों अपने स्वयं के निर्माताओं को परिभाषित करने और कॉल करने के लिए मजबूर किया जाता है सुपर कन्स्ट्रक्टर, इसलिए SEPARATOR पास कर रहा है।

    2 रास्ता:

    public abstract class TransactionManager { 
        public abstract String getSeparator(); 
    } 
    

    इस तरह SEPARATOR संपत्ति के मूल्य प्रत्येक ठोस वर्ग से परिभाषित किया जा को सौंपा जाता है: गेटर विधि, की तरह कुछ के रूप में संपत्ति को परिभाषित करें।

    स्रोत: Define an abstract property in java

    0

    सार जावा कक्षाएं, तरीकों लेकिन नहीं चर के लिए लागू में एक गैर-पहुँच संशोधक है।इसका उपयोग अमूर्त उन्मुख प्रोग्रामिंग के खंभे में से एक है जो अमूर्तता प्राप्त करने के लिए किया जाता है।

    +0

    क्या आपके पास अपने उत्तर में कुछ नया है जिसका पिछले जवाबों में उल्लेख नहीं किया गया है? –

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