जावा में, निजी चर पूरे वर्ग के लिए दिखाई देते हैं। उन्हें स्थिर तरीकों से और उसी वर्ग के अन्य उदाहरणों से एक्सेस किया जा सकता है।
यह, उदाहरण के लिए, कारखाने के तरीकों में उपयोगी है । एक फ़ैक्टरी विधि आमतौर पर किसी ऑब्जेक्ट के लिए इनिशियलाइज़ेशन करती है जो इतने जटिल होते हैं कि आप उन्हें एप्लिकेशन कोड पर छोड़ना नहीं चाहते हैं। आरंभीकरण करने के लिए, फैक्ट्री पद्धति को अक्सर उन क्लास-इन्टर्नल तक पहुँच की आवश्यकता होती है जिन्हें आप उजागर नहीं करना चाहते हैं। सीधे निजी चर का उपयोग करने में सक्षम होने के नाते आपके जीवन को बहुत आसान बना देता है।
हालाँकि, जब आप किसी वर्ग के कार्यान्वयन के विवरण को स्थिर तरीकों से या उस वर्ग के अन्य उदाहरणों से भी छुपाना चाहेंगे, तो आप इसका अनुसरण कर सकते हैं निजी वर्ग के डेटा पैटर्न । एक वर्ग के सभी निजी चर को एक निजी आंतरिक वर्ग में रखें और किसी भी गेटर्स को व्यवस्थित करें या उस आंतरिक वर्ग के गेटर्स और बसने वालों को व्यवस्थित करें।
एक अन्य विकल्प वर्ग के लिए एक इंटरफ़ेस को परिभाषित करना है जो वर्ग के सभी सार्वजनिक तरीकों की घोषणा करता है और फिर केवल उस इंटरफ़ेस के तहत कक्षा का संदर्भ देता है जहां भी संभव हो। इंटरफ़ेस-प्रकार के संदर्भ का उपयोग इंटरफ़ेस में घोषित की गई किसी भी चीज़ को सीधे एक्सेस करने के लिए नहीं किया जा सकता है, कोई फर्क नहीं पड़ता जहां (प्रतिबिंब के अलावा, निश्चित रूप से)। जब आप एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा का उपयोग करते हैं, जिसमें कोई इंटरफेस नहीं होता है (जैसे कि C ++, उदाहरण के लिए), तो उन्हें एक एब्सट्रैक्ट बेस-क्लास के साथ सिम्युलेट किया जा सकता है जो वास्तविक वर्ग द्वारा विरासत में मिला है।
interface ITest {
public int getA();
}
class Test implements ITest {
private int a = 5;
public int getA() { return a; } // implementation of method declared in interface
public static void main(){
ITest t = new Test();
t.a = 1; // syntax error: Interface ITest has no "a"
System.out.println(t.getA()); // calls Test.getA, visible because ITest declares it
}
}
equals
कि किसी अन्य उदाहरण के निजी क्षेत्रों की जांच करना है। (टिप्पणी के रूप में पोस्टिंग, जैसा कि यह संक्षिप्त है, और इस दृष्टिकोण के