उदाहरण:
public class Outer {
public interface Bar {
Bar get();
}
}
बार एक नेस्टेड इंटरफेस है। नेस्टेड इंटरफेस डिफ़ॉल्ट रूप से स्थिर हैं, तो आप के रूप में अच्छी लिख सकते हैं:
public class Outer {
public static interface Bar {
Bar get();
}
}
अब, इस संदर्भ में क्या मतलब है कि स्थिर इंटरफ़ेस एक स्थिर सदस्य, वर्ग के एक सदस्य अर्थात है।
साथ ही आप वर्गों के साथ ऐसा कर सकते हैं:
public class Tree {
private static class Node {
}
}
यहाँ, नोड यहां तक कि निजी है, जिसका अर्थ यह पेड़ के भीतर ही दिखाई दे। तो, इसका क्या फायदा है? नोड को सार्वजनिक कक्षा क्यों नहीं बनाते? बेहतर encapsulation की वजह से। सबसे पहले, नोड पेड़ का कार्यान्वयन विवरण है, इसलिए आप इसे दिखाना नहीं चाहते हैं। दूसरा, यदि आप सार्वजनिक एपीआई के माध्यम से नोड का पर्दाफाश करते हैं, तो कुछ क्लाइंट (प्रोग्रामर) इसका इस्तेमाल अपने कोड में कर सकते हैं। अब, इस वर्ग पर उनकी कठोर निर्भरता है। यदि किसी बिंदु पर आप अपने पेड़ का प्रतिनिधित्व बदलना चाहते हैं, और आप नोड क्लास को बदल/हटाते हैं, तो क्लाइंट कोड टूट सकता है। और अंतिम लेकिन कम से कम नहीं, आपका सार्वजनिक एपीआई छोटा हो जाता है, जो भी वांछनीय है।
तो, स्थिर सदस्य वर्ग/इंटरफेस का उपयोग कब करें? अधिकतर, यदि आप किसी प्रकार की समग्र वस्तु (जैसे पेड़, या एक लिंक्ड लिस्ट) बनाते हैं या जब वर्ग केवल बाहरी वर्ग के संदर्भ में समझ में आता है।
stackoverflow सवालों के बारे में है ... आपके सवाल का क्या है? –