जावा में किसी विधि का डिफ़ॉल्ट स्कोप क्या है?


166

यदि मैं टाइप करता हूं:

 void doThis(){
     System.out.println("Hello Stackoverflow.");
 }

डिफ़ॉल्ट स्कोप क्या है doThis()?

जनता? संरक्षित? निजी?

जवाबों:


264

डिफ़ॉल्ट स्कोप पैकेज-प्राइवेट है। एक ही पैकेज के सभी वर्ग विधि / क्षेत्र / वर्ग तक पहुंच सकते हैं। पैकेज-प्राइवेट संरक्षित और सार्वजनिक स्कोपों ​​की तुलना में कठोर है, लेकिन निजी दायरे की तुलना में अधिक अनुमत है।

अधिक जानकारी:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html


2
"पैकेज-डिफॉल्ट सख्त है ..."
रीनाल्डोलुकमैन

7
यह भी ध्यान देने योग्य है कि "पैकेज-प्राइवेट" बाहरी इकाई परीक्षण के तरीकों को उजागर करते समय उपयोग करने के लिए एक अच्छा स्कोप है।
गैरी रोवे

1
अगर ऐसा है, तो जब तक आप लाइब्रेरी या ऐसी कोई चीज़ नहीं बना रहे हैं, जहाँ से उपयोगकर्ताओं को उनके कोड के लिए कार्यक्षमता मिल रही है, तब कुछ सार्वजनिक करना आवश्यक क्यों होगा?
डैनियल

2
@ user3858162 अधिकांश गैर-तुच्छ अनुप्रयोगों को कई पैकेजों में व्यवस्थित किया जाता है, इस स्थिति में अन्य पैकेजों से कॉलिंग के तरीकों के लिए सार्वजनिक गुंजाइश की आवश्यकता होती है।
एस्को लुओटोला

19

पैकेज प्राइवेट के रूप में परिभाषित किसी भी चीज को क्लास द्वारा ही एक्सेस किया जा सकता है, उसी पैकेज के अंदर अन्य क्लासेस, लेकिन पैकेज के बाहर नहीं, और सब-क्लास द्वारा नहीं।

एक्सेस लेवल मॉडिफ़ायर की एक आसान तालिका के लिए यह पृष्ठ देखें ...


9

एक्सेस मॉडिफायर के बिना, एक क्लास मेंबर पूरे पैकेज में पहुंच सकता है, जिसमें यह घोषित किया गया है। आप जावा लैंग्वेज स्पेसिफिकेशन, .6.6 से अधिक जान सकते हैं

एक इंटरफ़ेस के सदस्य हमेशा सार्वजनिक रूप से सुलभ होते हैं, चाहे स्पष्ट रूप से घोषित किया गया हो या नहीं।


5

डिफ़ॉल्ट स्कोप "डिफ़ॉल्ट" है। यह अजीब है - अधिक जानकारी के लिए ये संदर्भ देखें ।


3
वास्तव में यह नहीं है: यह पैकेज-निजी है
मौरिस पेरी

2
मैं अपना उत्तर हटा नहीं सकता क्योंकि इसे स्वीकार कर लिया गया है। मैं @ Esko के उत्तर के साथ जाने के लिए जो को प्रोत्साहित करता हूँ!
माइकल हरेन

1
दूसरा लिंक टूट गया है (और btw यह याद
रखना

1

जावा 8 अब एक इंटरफेस के अंदर ही डिफ़ॉल्ट स्कोप (और स्टैटिक) के साथ तरीकों को लागू करने की अनुमति देता है ।


0

यदि आप अपने तरीके में कोई संशोधन नहीं कर रहे हैं तो डिफ़ॉल्ट रूप से यह डिफ़ॉल्ट संशोधक होगा जिसमें पैकेज के भीतर गुंजाइश है।
अधिक जानकारी के लिए आप http://wiki.answers.com/Q/What_is_default_access_specifier_in_Java का उल्लेख कर सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.