2011-11-19 15 views

उत्तर

32

पैकेज। वे एक ही पैकेज में अन्य कक्षाओं के लिए दृश्यमान हैं।

एफडब्ल्यूआईडब्ल्यू, मैं आमतौर पर इन पर अपने स्वयं के नो-ऑप @ पैकेज एनोटेशन का उपयोग करता हूं, बस यह स्पष्ट करने के लिए कि मुझे पता है कि मैं क्या कर रहा हूं - कि मैंने कुछ भूल नहीं पाया। भले ही यह डिफ़ॉल्ट है, फिर भी पैकेज की पहुंच को अन्य तीन संभावनाओं की तुलना में उच्च गुणवत्ता वाले कोड में कम उपयोग किया जाता है - एक बड़ा अपवाद:

इकाई परीक्षण की कुछ शैलियों में, यह पहुंचने में सक्षम होना वांछनीय है विधियों या फ़ील्ड जो आम तौर पर निजी होते हैं। पहुंच प्रदान करने का एक तरीका उन्हें पैकेज एक्सेस तक सेट करना है, और यूनिट टेस्ट क्लास को उसी पैकेज में रखना है (लेकिन आमतौर पर एक अलग "परीक्षण" निर्देशिका पेड़ में)। कुछ डेवलपर्स सोचते हैं कि यह खराब अभ्यास है - सामान्य रूप से, परीक्षणों में निजी (या पैकेज-टू-टेस्टिंग) विधियों का उपयोग करना बुरा होता है।

+4

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – LukeH

23

जावा में सार्वजनिक, संरक्षित, पैकेज (डिफ़ॉल्ट), और निजी दृश्यताएं हैं; सबसे अधिक से कम से कम दिखाई देने का आदेश दिया।

यदि आप इसे निर्दिष्ट नहीं करते हैं, तो डिफ़ॉल्ट रूप से दृश्यता पैकेज है।

package mytest.myvisibility; 

public class MyClass 
{ 
    public int myPublicInt; // visible to all 
    protected myProtectedInt; // visible to subclasses of MyClass and to other members of the mytest.myvisibility package 
    int myPackageInt; // visible only to other members of the mytest.myvisibility package 
    private int myPrivateInt; // visible only to MyClass objects. 
} 
+0

यही सच (ऊपर @LukeH द्वारा प्रदान की ओरेकल दस्तावेज़ नहीं देख) नहीं है। संरक्षित आइटम वर्तमान पैकेज में भी दिखाई दे रहे हैं। – Kloe2378231

+3

अपडेट किया गया - "पैकेज" दृश्यता पर विस्तारित, और वर्णन और कोड नमूने में सुसंगत दृश्यता का क्रम बनाया। –

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