2010-03-28 9 views
39

मैं अपने पैकेज में दो "संरक्षित" कक्षाएं प्राप्त करने में सक्षम होना चाहता हूं। यही है, मैं अपने पैकेज के बाहर फ़ाइलों को उनके रूप में देखने के लिए नहीं चाहता हूं - वे केवल पैकेज के भीतर आंतरिक उपयोग के लिए होंगे।कक्षाओं की रक्षा कैसे करें ताकि वे अपने पैकेज के बाहर दिखाई न दें

मैं यह कैसे कर सकता हूं?

उत्तर

73

बस सभी कीवर्ड छोड़ दें। डिफ़ॉल्ट दृश्यता package-private है, केवल पैकेज के भीतर देखने योग्य।

उदा .:

// class Foo is public 
public class Foo 
{ 
    final private Bar bar = ...; 
} 

// class Bar is package-private 
// (visible to all classes in the package, not visible outside the package) 
class Bar 
{ 
    ...; 
} 
+1

बिल्कुल। और खोजशब्द का अर्थ है कि यह केवल व्युत्पन्न प्रकार –

+1

@ ओस्कर द्वारा पहुंचा जा सकता है: ठीक है, तकनीकी रूप से ऐसा लगता है कि संरक्षित दिखने वाले प्रकार * पैकेज * के बाहर * और * सभी * प्रकार के द्वारा संरक्षित दिखते हैं। –

+1

निश्चित रूप से बार के पैकेज के बाहर कक्षाएं बार कक्षा को भी नहीं देख सकती हैं, इसलिए वे इसे विस्तारित नहीं कर सकते हैं। (क्या होता है यदि पैकेज के अंदर एक सार्वजनिक वर्ग इसे विस्तारित करता है ...?) –

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