Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java 9 में इंटरफेस में प्राइवेट मेथड्स की आवश्यकता क्यों है?

डिफ़ॉल्ट मेथड्स में कोड पुन: उपयोग की समस्या

एक इंटरफेस डिफ़ॉल्ट मेथड्स का समर्थन करता है Java 8 संस्करण से। कभी-कभी ये डिफ़ॉल्ट मेथड्स कोड रख सकते हैं जो कई मेथड्स में सामान्य हो सकता है। उन स्थितियों में, हम एक और डिफ़ॉल्ट मेथड लिख सकते हैं और कोड पुन: उपयोग कर सकते हैं। जब सामान्य कोड गोपनीय होता है तो उन्हें डिफ़ॉल्ट मेथड्स में रखना उचित नहीं है क्योंकि उस इंटरफेस को कार्यान्वित करने वाली सभी क्लासेस सभी डिफ़ॉल्ट मेथड्स तक पहुंच सकती हैं।

एक इंटरफेस में प्राइवेट मेथड्स हो सकते हैं Java 9 संस्करण से। ये मेथड्स केवल क्लास/इंटरफेस के अंदर दिखाई देते हैं, इसलिए गोपनीय कोड के लिए प्राइवेट मेथड्स का उपयोग करने की सिफारिश की जाती है। इंटरफेस में प्राइवेट मेथड्स जोड़ने के पीछे यही कारण है।

सिंटैक्स

private void methodName() {
    // some statements code
}

उदाहरण

interface Operation {
    default void addition() {
        System.out.println("default method addition");
    }
    default void multiply() {
        division();
        System.out.println("default method multiply");
    }
    private void division() {
        // private method
        System.out.println("private method division");
    }
}

class PrivateMethodTest implements Operation {
    public static void main(String args[]) {
        PrivateMethodTest test = new PrivateMethodTest();
        test.multiply();
    }
}

आउटपुट

private method division
default method multiply

प्राइवेट इंटरफेस मेथड्स आंतरिक कार्यान्वयन विवरण को एनकैप्सुलेट करते हैं जबकि डिफ़ॉल्ट मेथड्स के माध्यम से कोड पुन: उपयोग की अनुमति देते हैं।

  1. - Java में नेस्टेड इंटरफेस (Nested Interface)

    हम किसी अन्य इंटरफेस या क्लास के अंदर एक इंटरफेस घोषित कर सकते हैं। ऐसे इंटरफेस को नेस्टेड इंटरफेस (Nested Interface) कहा जाता है। नेस्टेड इंटरफेस को नियंत्रित करने वाले निम्नलिखित नियम हैं: एक इंटरफेस के भीतर घोषित नेस्टेड इंटरफेस public होना चाहिए। एक क्लास के भीतर घोषित नेस्टेड इंटरफेस का कोई

  1. - Java 8 में इंटरफेस में डिफ़ॉल्ट मेथड्स

    Java 8 इंटरफेस में डिफ़ॉल्ट मेथड कार्यान्वयन की एक नई अवधारणा पेश करता है। यह क्षमता बैकवर्ड कम्पैटिबिलिटी के लिए जोड़ी गई है ताकि पुराने इंटरफेस Java 8 की लैम्ब्डा एक्सप्रेशन क्षमता का लाभ उठा सकें। उदाहरण के लिए, List या Collection इंटरफेस में forEach मेथड डिक्लेरेशन नहीं है। इस तरह के मेथड को ज

  1. - Java में इंटरफेस (Interface)

    एक इंटरफेस Java में एक रेफरेंस टाइप है। यह एक क्लास के समान है। यह एब्स्ट्रैक्ट मेथड्स का एक संग्रह है। एक क्लास इंटरफेस को इम्प्लीमेंट करती है, जिससे इंटरफेस के एब्स्ट्रैक्ट मेथड्स विरासत में मिलते हैं। एब्स्ट्रैक्ट मेथड्स के साथ, एक इंटरफेस में कॉन्स्टेंट्स, डिफ़ॉल्ट मेथड्स, स्टेटिक मेथड्स, और न