जावा 9 ने इंटरफेस में प्राइवेट मेथड की नई सुविधा जोड़ी। प्राइवेट मेथड को प्राइवेट मॉडिफायर का उपयोग करके परिभाषित किया जा सकता है। हम जावा 9 से इंटरफेस में प्राइवेट और प्राइवेट स्टेटिक मेथड दोनों जोड़ सकते हैं।
इंटरफेस में प्राइवेट मेथड के नियम:
- एक प्राइवेट मेथड का इंटरफेस में बॉडी होता है मतलब हम इसे सामान्य एब्सट्रैक्ट मेथड के रूप में घोषित नहीं कर सकते जैसा कि आमतौर पर इंटरफेस में करते हैं। यदि हम बॉडी के बिना प्राइवेट मेथड घोषित करने का प्रयास करते हैं तो यह एरर फेंक सकता है कि "इस मेथड को सेमीकॉलन के बजाय बॉडी की आवश्यकता है"।
- हम इंटरफेस में प्राइवेट और एब्सट्रैक्ट मॉडिफायर दोनों का एक साथ उपयोग नहीं कर सकते।
- यदि हम इंटरफेस में स्टेटिक मेथड से प्राइवेट मेथड एक्सेस करना चाहते हैं तो उस मेथड को प्राइवेट स्टेटिक मेथड के रूप में घोषित किया जा सकता है क्योंकि हम नॉन-स्टेटिक मेथड का स्टेटिक रेफरेंस नहीं बना सकते।
- एक प्राइवेट स्टेटिक मेथड का उपयोग नॉन-स्टेटिक संदर्भ से किया जाता है मतलब इसे इंटरफेस में डिफ़ॉल्ट मेथड से इनवोक किया जा सकता है।
सिंटैक्स
interface{ private methodName(parameters) { // some statements } }
उदाहरण
interface TestInterface {
default void methodOne() {
System.out.println("This is a Default method One...");
printValues(); // प्राइवेट मेथड कॉल करना
}
default void methodTwo() {
System.out.println("This is a Default method Two...");
printValues(); // प्राइवेट मेथड कॉल करना...
}
private void printValues() { // इंटरफेस में प्राइवेट मेथड
System.out.println("methodOne() called");
System.out.println("methodTwo() called");
}
}
public class PrivateMethodInterfaceTest implements TestInterface {
public static void main(String[] args) {
TestInterface instance = new PrivateMethodInterfaceTest();
instance.methodOne();
instance.methodTwo();
}
}
आउटपुट
This is a Default method One... methodOne() called methodTwo() called This is a Default method Two... methodOne() called methodTwo() called