ऐक्सेस स्पेसिफायर्स (Access Specifiers)

ऐक्सेस स्पेसिफायर्स से यह निर्धारित होता है कि किसी क्लास को या उसके मैम्बर्स को अन्य क्लास में प्रयोग किया जा सकता है अथवा नहीं। इन ऐक्सेस स्पेसिफायर्स को जावा में ऐक्सेस माॅडिफायर्स भी कहते हैं। जावा में मुख्यतः निम्न प्रकार के ऐक्सेस स्पेसिफायर्स होते हैं -

  • public ऐक्सेस स्पेसिफायर्स
  • private ऐक्सेस स्पेसिफायर्स
  • protected ऐक्सेस स्पेसिफायर्स
  • friendly ऐक्सेस स्पेसिफायर्स

public ऐक्सेस स्पेसिफायर्स

पब्लिक मैम्बर्स का निम्न स्थानों पर प्रयोग किया जा सकता है -

  • उसी क्लास में जहां इन्हें डिफाइन किया गया है।
  • उसी पैकेज की चाईल्ड क्लास में।
  • उसी पैकेज की अन्य क्लासों में।
  • दूसरे पैकेज की चाईल्ड क्लास में।
  • दूसरे पैकेज की अन्य क्लास में।

पब्लिक मैम्बर्स को निम्नानुसार डिक्लेअर किया जाता है -

public int x;
public void Demo( )
{
  ..........
  ..........
}

private ऐक्सेस स्पेसिफायर्स

प्राइवेट मैम्बर्स उसी क्लास में प्रयोग किया जा सकता है जहां इन्हें डिफाइन किया गया है। प्राइवेट मैम्बर्स को निम्नानुसार डिक्लेअर किया जाता है -

private int x;

protected ऐक्सेस स्पेसिफायर्स

प्रोटेक्टेड मैम्बर्स का निम्न स्थानों पर प्रयोग किया जा सकता है -

  • उसी क्लास में जहां इन्हें डिफाइन किया गया है।
  • उसी पैकेज की चाईल्ड क्लास में।
  • उसी पैकेज की अन्य क्लासों में।
  • दूसरे पैकेज की चाईल्ड क्लास में।

प्रोटेक्टेड मैम्बर्स को निम्नानुसार डिक्लेअर किया जाता है -

protected int x;

friendly ऐक्सेस स्पेसिफायर्स

यह डिफाॅल्ट ऐक्सेस स्पेसिफायर्स होते हैं। फ्रेंड्ली प्रोटेक्टेड मैम्बर्स का निम्न स्थानों पर प्रयोग किया जा सकता है-

  • उसी क्लास में जहां इन्हें डिफाइन किया गया है।
  • उसी पैकेज की चाईल्ड क्लास में।
  • उसी पैकेज की अन्य क्लासों में।

ऐक्सेस स्पेसिफायर्स को उदाहरण के माध्यम से समझने के लिए दो पैकेज animal तथा bird का उदाहरण लेते हैं, जिसमें क्लासेज निम्नानुसार हैंः

package animal package bird
class Elephant

class Horse
{
  public void eat() { … }
}
class Eagle

class Pigeon

उपरोक्त भ्वतेम क्लास में eat() नाम से एक मैथड है, जिसके आधार पर आगे यह समझाया जा रहा है कि इस eat() मैथड को कौनसे पैकेज की कौनसी क्लास प्रयोग में ले पाएगी।

यह मानते हैं कि eat() मैथड पब्लिक मैथड हैः

  • इसे समान पैकेज की क्लासेज के माध्यम से प्रयेाग में लिया जा सकता है, अतः समान पैकेज की Elephant क्लास इसे प्रयोग में ले सकती है।
  • इसे अन्य पैकेज की क्लासेज के माध्यम से भी प्रयेाग में लिया जा सकता है, अतः bird पैकेज की Pigeon तथा Eagle क्लासेेज भी इसे प्रयोग में ले सकती है।

पब्लिक स्पेसिफायर को पब्लिक पार्क के रूप में समझा जा सकता है, जिसे कोई भी प्रयोग में ले सकता है। इसी प्रकार पब्लिक मैंबर को किसी भी पैकेज की किसी भी क्लास के माध्यम से प्रयोग किया जा सकता है।

यह मानते हैं कि eat() मैथड प्रोटेक्टेड मैथड हैः

  • इसे भी पब्लिक की भांति ही समान पैकेज की क्लासेज के माध्यम से प्रयेाग में लिया जा सकता है, अतः समान पैकेज की Elephant क्लास इसे प्रयोग में ले सकती है।
  • इसे अन्य पैकेज की सब क्लासेज के माध्यम से प्रयेाग में लिया जा सकता है, अतः यदि Pigeon क्लास Horse क्लास को इनहेरिट करती है, तो ही उसे Pigeon क्लास में प्रयोग में किया जा सकता है।

प्रोटेक्टेट स्पेसिफायर सिर्फ अन्य पैकेज की क्लासेज पर रोक लगाता है, समान पैकेज की सभी क्लासेज ऐसे मैंबर को प्रयोग में ले सकती है।

यह मानते हैं कि eat() मैथड डिफाॅल्ट मैथड है।

डिफाॅल्ट स्पेसिफायर तब कहलाता है जबकि किसी भी एक्सेस स्पेसिफायर का प्रयोग नहीं किया जाता है। यह भी ध्यान रखना चाहिए की डिफाॅल्ट स्पेसिफायर पब्लिक नहीं होता है, इसके अपने नियम है।

  • इसे भी पब्लिक की भांति ही समान पैकेज की क्लासेज के माध्यम से प्रयेाग में लिया जा सकता है, अतः समान पैकेज की Elephant क्लास इसे प्रयोग में ले सकती है।
  • इसे अन्य पैकेज की क्लासेज के माध्यम से eat() मैथड का प्रयोग असंभव है। अतः यह कहा जा सकता है कि Pigeon क्लास इसे प्रयोग में नहीं ले सकती है।

चूंकि डिफाॅल्ट स्पेसिफायर के माध्यम से सिर्फ समान क्लास में ही संबंधित मैंबर का प्रयोग संभव हो पाता है, अतः इसे पैकेज लेवल एक्सेस स्पेसिफायर भी कहा जाता है। यह भी ध्यान दें कि यहां default कीवर्ड का प्रयोग नहीं किया जाता है, क्योंकि default कीवर्ड का प्रयोग switch स्टेटमेंट में किया जाता है।

यह मानते हैं कि eat() मैथड प्राइवेट मैथड है।

जब किसी मैंबर को प्राइवेट डिक्लेयर कर दिया जाता है, तो उसका आशय होता है कि इसे समान क्लास के अलावा कहीं भी प्रयोग में नहीं लिया जा सकता है। यहां तक कि समान पैकेज की अन्य क्लास भी ऐसे मैंबर को प्रयोग नहीं कर सकती है।

सुझाव / कमेंट