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

क्या हम Java में टॉप लेवल क्लास को प्रोटेक्टेड या प्राइवेट घोषित कर सकते हैं?

नहीं, हम टॉप-लेवल क्लास को प्राइवेट या प्रोटेक्टेड घोषित नहीं कर सकते। यह या तो पब्लिक या डिफ़ॉल्ट (कोई मॉडिफायर) हो सकती है। यदि इसमें मॉडिफायर नहीं है, तो इसे डिफ़ॉल्ट एक्सेस माना जाता है।

सिंटैक्स

// एक टॉप लेवल क्लास 
public class TopLevelClassTest { 
    // क्लास बॉडी 
}
  • यदि टॉप-लेवल क्लास को प्राइवेट घोषित किया जाता है तो कंपाइलर शिकायत करेगा कि मॉडिफायर प्राइवेट यहाँ अनुमत नहीं है। इसका अर्थ है कि टॉप-लेवल क्लास प्राइवेट नहीं हो सकती, वही प्रोटेक्टेड एक्सेस स्पेसिफायर पर भी लागू होता है।
  • प्रोटेक्टेड का अर्थ है कि मेंबर को उसी पैकेज में किसी भी क्लास द्वारा और सबक्लास द्वारा एक्सेस किया जा सकता है भले ही वे दूसरे पैकेज में हों।
  • टॉप-लेवल क्लासेज में केवल पब्लिक, एब्स्ट्रैक्ट और फाइनल मॉडिफायर्स हो सकते हैं, और कोई क्लास मॉडिफायर परिभाषित न करना भी संभव है। इसे डिफ़ॉल्ट/पैकेज एक्सेसिबिलिटी कहा जाता है।
  • हम इनर क्लासेस को प्राइवेट या प्रोटेक्टेड घोषित कर सकते हैं, लेकिन आउटर क्लासेस में यह अनुमत नहीं है।
  • एक Java सोर्स फ़ाइल में एक से अधिक टॉप-लेवल क्लास परिभाषित की जा सकती हैं, लेकिन अधिकतम एक पब्लिक टॉप-लेवल क्लास घोषणा हो सकती है। फ़ाइल का नाम पब्लिक क्लास के नाम से मेल खाना चाहिए।

क्लास को प्रोटेक्टेड के रूप में घोषित करना

उदाहरण

protected class ProtectedClassTest { 
    int i = 10; 
    void show() { 
        System.out.println("Declare top-level class as protected"); 
    } 
} 

public class Test { 
    public static void main(String args[]) { 
        ProtectedClassTest pc = new ProtectedClassTest(); 
        System.out.println(pc.i); 
        pc.show(); 
        System.out.println("Main class declaration as public"); 
    } 
}

ऊपर के उदाहरण में, हम क्लास को प्रोटेक्टेड घोषित कर सकते हैं, यह एरर थ्रो करेगा कि मॉडिफायर प्रोटेक्टेड यहाँ अनुमत नहीं है। इसलिए उपरोक्त कोड निष्पादित नहीं होता।

आउटपुट

modifier protected not allowed here

क्लास को प्राइवेट के रूप में घोषित करना

उदाहरण

private class PrivateClassTest { 
    int x = 20; 
    void show() { 
        System.out.println("Declare top-level class as private"); 
    } 
} 

public class Test { 
    public static void main(String args[]) { 
        PrivateClassTest pc = new PrivateClassTest(); 
        System.out.println(pc.x); 
        pc.show(); 
        System.out.println("Main class declaration as public"); 
    } 
}

ऊपर के उदाहरण में, हम क्लास को प्राइवेट घोषित कर सकते हैं, यह एरर थ्रो करेगा कि मॉडिफायर प्राइवेट यहाँ अनुमत नहीं है। इसलिए उपरोक्त कोड निष्पादित नहीं होता।

आउटपुट

modifier private not allowed here
  1. क्या Java में Enum किसी क्लास को एक्सटेंड कर सकता है? क्या Java में Enum किसी क्लास को एक्सटेंड कर सकता है?

    नहीं, Java में सभी एनम अंतर्निहित रूप से java.lang.Enum को एक्सटेंड करते हैं। चूंकि Java बहु-विरासत का समर्थन नहीं करता, एनम किसी अन्य क्लास को एक्सटेंड नहीं कर सकते।त्रुटि उदाहरणclass Sample { } enum Scooters extends Sample { } // संकलन त्रुटिसंकलन त्रुटिEnumExample.java:5: error: { expected enum

  1. - क्या हम Java में प्रोटेक्टेड मेथड को ओवरराइड कर सकते हैं?

    हाँ, सुपरक्लास के प्रोटेक्टेड मेथड को सबक्लास द्वारा ओवरराइड किया जा सकता है। यदि सुपरक्लास मेथड प्रोटेक्टेड है, तो सबक्लास ओवरराइड मेथड में प्रोटेक्टेड या पब्लिक (लेकिन डिफ़ॉल्ट या प्राइवेट नहीं) हो सकता है जिसका अर्थ है कि सबक्लास ओवरराइड मेथड में कमजोर एक्सेस स्पेसिफायर नहीं हो सकता।उदाहरणclass A

  1. Java में JTextField में पैडिंग कैसे जोड़ें? Java में JTextField में पैडिंग कैसे जोड़ें?

    JTextField JTextComponent क्लास का सबक्लास है और यह सबसे महत्वपूर्ण घटकों में से एक है जो उपयोगकर्ता को सिंगल-लाइन फॉर्मेट में टेक्स्ट मान इनपुट करने की अनुमति देता है। JTextField क्लास ActionListener इंटरफेस जनरेट करेगा जब हम इसके अंदर कुछ इनपुट दर्ज करने का प्रयास करते हैं। JTextField क्लास के महत