दिलचस्प पोस्ट
स्ट्रिंग में एकाधिक वर्ण बदलें आर में पुनरावृत्त मूल्यों का अनुक्रम जावा प्रतिबिंब: मैं कैसे एक जावा वर्ग के सभी भर्ती तरीकों को प्राप्त कर सकते हैं और उन्हें आह्वान कर सकते हैं उपयोगकर्ता के "मेरे दस्तावेज़" पथ को ढूंढना Django – एक अनुसूचित नौकरी सेट करें? पायथन प्रक्रिया पूल गैर-डेमोनिक? कंस्ट्रक्चर कहां हैं, जैसे 'नई छवि () `और` नया विकल्प ()', दस्तावेज? क्या कोई स्ट्रीमर अपने बेसस्ट्रीम बंद किए बिना बंद करने का कोई तरीका है? एक स्ट्रिंग में एक इनपुट स्प्रैड को पढ़ें / कन्वर्ट करें PYTHONPATH पर स्थायी रूप से एक निर्देशिका जोड़ें Html5 कैनवास में अंडाकार कैसे आकर्षित करें? बैच स्क्रिप्ट में दो नंबर की तुलना करना क्लास लाइब्रेरी से HTML एक्सचेंज SQLite3 डेटाबेस या डिस्क पूर्ण है / डेटाबेस डिस्क छवि दूषित है व्युत्पन्न कक्षाओं में कार्य के लिए C ++ "आभासी" कीवर्ड क्या ये ज़रूरी हैं?

क्या एक जावा फाइल में एक से अधिक वर्ग हैं?

जावा फ़ाइल में एक से अधिक वर्ग होने का क्या उद्देश्य है? मैं जावा के लिए नया हूँ

संपादित: यह एक सार्वजनिक वर्ग के भीतर एक आंतरिक वर्ग बनाकर हासिल किया जा सकता है, है ना?

वेब के समाधान से एकत्रित समाधान "क्या एक जावा फाइल में एक से अधिक वर्ग हैं?"

हाँ यह कर सकते हैं। हालांकि, केवल .java फ़ाइल के अनुसार एक सार्वजनिक शीर्ष-स्तरीय कक्षा हो सकती है, और सार्वजनिक शीर्ष-स्तरीय कक्षाओं का स्रोत फ़ाइल के समान नाम होना चाहिए।

एक स्रोत फ़ाइल में एकाधिक कक्षाएं शामिल करने का उद्देश्य मुख्य सार्वजनिक वर्ग के साथ संबंधित सहायता कार्यक्षमता (आंतरिक डेटा संरचनाएं, समर्थन कक्षाएं, आदि) को बंडल करना है ध्यान दें कि यह हमेशा ऐसा करने के लिए ठीक नहीं है – केवल प्रभाव आपके कोड की पठनीयता (या नहीं) पर है

यदि आप एक सार्वजनिक वर्ग को लागू करना चाहते हैं, तो आपको उसे उस फ़ाइल के रूप में उसी नाम के साथ एक फ़ाइल में कार्यान्वित करना होगा। एक एकल फाइल में एक सार्वजनिक और वैकल्पिक कुछ निजी वर्ग शामिल हो सकते हैं। यह उपयोगी है अगर कक्षाएं केवल आंतरिक रूप से सार्वजनिक वर्ग द्वारा उपयोग की जाती हैं इसके अतिरिक्त सार्वजनिक कक्षा में आंतरिक कक्षाएं भी शामिल हो सकती हैं।

यद्यपि एक स्रोत फ़ाइल में एक या एक से अधिक निजी वर्ग होना ठीक है, तो मैं कहूंगा कि इसके बजाय इनर और बेनामी क्लास का उपयोग करने के लिए और अधिक पठनीय है। उदाहरण के लिए किसी एक सार्वजनिक वर्ग के अंदर एक कम्पारेटर वर्ग को परिभाषित करने के लिए एक अज्ञात वर्ग का उपयोग कर सकते हैं:

  public static Comparator MyComparator = new Comparator() { public int compare(Object obj, Object anotherObj) { } }; 

सामान्य होने के लिए तुलनात्मक कक्षा को सामान्य रूप से एक अलग फ़ाइल की आवश्यकता होगी इस तरह से इसे क्लास के साथ बंडल किया गया है जो इसका उपयोग करता है।

हां, जितना चाहें उतना ही!

लेकिन, प्रत्येक फ़ाइल में केवल एक "सार्वजनिक" वर्ग

गुमनाम आंतरिक कक्षाएं के अलावा, एक अन्य उपयोग निजी आंतरिक कक्षाएं हैं जो एक सार्वजनिक इंटरफ़ेस को लागू करते हैं ( यह आलेख देखें )। बाहरी कक्षा सभी निजी क्षेत्रों और आंतरिक कक्षाओं के तरीकों का उपयोग कर सकती है।

इससे आपको दो कसकर युग्मित वर्गों, जैसे कि एक मॉडल और इसके दृश्य, के कार्यान्वयन को उजागर किए बिना बना सकते हैं। एक और उदाहरण एक संग्रह है और उसके इटरेटर

सामान्य तौर पर, प्रति फ़ाइल एक वर्ग होना चाहिए। यदि आप चीजों को इस तरह व्यवस्थित करते हैं, तो जब आप किसी क्लास की तलाश करते हैं, तो आप जानते हैं कि आपको उस नाम के साथ फ़ाइल की खोज करने की ज़रूरत है।

अपवाद तब होता है जब एक या एक से अधिक छोटे सहायक वर्गों का उपयोग करते हुए एक क्लास सबसे अच्छा किया जाता है। आमतौर पर कोड का पालन करना आसान होता है जब उन कक्षाएं एक ही फाइल में मौजूद होती हैं। उदाहरण के लिए, विधि कॉल के बीच कुछ डेटा को पास करने के लिए आपको एक छोटे 'ट्यूपल' आवरण वर्ग की आवश्यकता हो सकती है। एक और उदाहरण हैं 'कार्य' वर्ग को चलाने योग्य या कॉल करने योग्य। वे इतने छोटे हो सकते हैं कि वे अभिभावक वर्ग के साथ मिलकर सबसे अच्छे रूप से मिलते हैं और उन्हें बुलाते हैं।

ए। जावा फ़ाइल को एक संकलन इकाई कहा जाता है। प्रत्येक संकलन इकाई में शीर्ष-स्तरीय कक्षाओं और इंटरफेस की कोई भी संख्या हो सकती है। यदि कोई सार्वजनिक शीर्ष स्तर के प्रकार नहीं हैं तो संकलन इकाई को कुछ भी नाम दिया जा सकता है।

 //Multiple.java //preceding package and import statements class MyClass{...} interface Service{...} ... //No public classes or interfaces ... 

एक संकलन इकाई में केवल एक सार्वजनिक वर्ग / इंटरफ़ेस हो सकता है। सीयू को इस सार्वजनिक शीर्ष-स्तरीय प्रकार के रूप में नामित किया जाना चाहिए।

 //Test.java //named exactly as the public class Test public class Test{...} //!public class Operations{...} interface Selector{...} ... //Other non-public classes/interfaces 

मुख्य विधि के बारे में महत्वपूर्ण बिंदु – भाग 1

भाग 2

(भाग 2 में शामिल वर्गों और उनके पहुंच के स्तर के बारे में अंक)

हां, आप एक से अधिक सार्वजनिक वर्ग बना सकते हैं, लेकिन इसे नेस्टेड क्लास होना चाहिए।

 public class first { public static void main(String[] args) { // TODO Auto-generated method stub } public class demo1 { public class demo2 { } } } 

हां यह कर सकते हैं, लेकिन किसी भी पैकेज के भीतर केवल 1 सार्वजनिक वर्ग हो सकता है क्योंकि जावा कंपाइलर उस क्लास फ़ाइल को बनाते हैं, जिसका नाम समान वर्ग का है, इसलिए यदि उनकी 1 से अधिक सार्वजनिक वर्ग हैं तो इसका चयन करना मुश्किल होगा संकलक कि क्लास फ़ाइल का नाम क्या होना चाहिए।

मुझे लगता है कि यह ".java फ़ाइल प्रति केवल एक गैर-स्थिर टॉप-स्तर सार्वजनिक वर्ग" होनी चाहिए। यही है ना

हाँ 200% ,

उदाहरण:

 class A { void methodDeclaration() { System.out.println("!!!"); } } class B { public static void main(String[] args) { new A().methodDeclaration(); } } 

बदलता है … ऐसा ही एक उदाहरण एक अनाम वर्ग होगा (आप घटना श्रोता और इस तरह का उपयोग करते समय उन बहुत कुछ सामना करेंगे)।

यदि आप सिंगलटन को कार्यान्वित करना चाहते हैं, तो वह एक क्लास है जो आपके प्रोग्राम में एप्लिकेशन के निष्पादन के दौरान मेमोरी में केवल एक इंस्टेंस के साथ चलता है, फिर सिंगलटन को कार्यान्वित करने के तरीके में एक सार्वजनिक वर्ग के अंदर एक निजी स्टैटिक क्लास का घोंसला है । तब निजी क्षेत्र केवल खुद को निजी इन्स्टॉलेशन तक पहुंचने के लिए तत्काल इन्टरिशन करते हैं, जिसे कहा जाता है।

इस विकी लेख को देखें,

https://en.wikipedia.org/wiki/Singleton_pattern

अवधारणा पर चबा करने के लिए कुछ समय लगता है।

एक .java फ़ाइल में, केवल एक सार्वजनिक शीर्ष-स्तरीय वर्ग हो सकता है जिसका नाम फ़ाइल के समान है, लेकिन कई सार्वजनिक आंतरिक कक्षाएं हो सकती हैं, जिन्हें प्रत्येक को निर्यात किया जा सकता है और बाहरी वर्ग के क्षेत्रों / तरीकों तक पहुंच प्राप्त कर सकते हैं, उदाहरण के लिए AlertDialog.Builder ('सार्वजनिक स्थिर' द्वारा संशोधित) AlertDialog में ('सार्वजनिक' द्वारा संशोधित)

हाँ, आप एक से अधिक क्लास में हो सकते हैं। जावा फ़ाइल लेकिन आपने उनमें से एक को सार्वजनिक बना दिया है और सार्वजनिक वर्ग के नाम के रूप में एक ही नाम के साथ .java फ़ाइल को बचाने। जब आप .java फ़ाइल संकलित करेंगे, तो आपको .java फ़ाइल में परिभाषित प्रत्येक वर्ग के लिए अलग-अलग वर्ग फ़ाइलें मिल जाएंगी।

इसके अलावा एक में एक से अधिक क्लास को परिभाषित करने के लिए कई तरीके हैं। जावा फ़ाइल

  1. आंतरिक कक्षाओं की अवधारणा का उपयोग करें
  2. अनाम क्लासेस का संकल्पना का उपयोग करें

हाँ ! .java फ़ाइल में केवल एक सार्वजनिक वर्ग शामिल हो सकते हैं।

यदि आप चाहते हैं कि ये दो कक्षाएं सार्वजनिक हों तो उन्हें दो .जाव फ़ाइलें डालनी हैं: एजावा और बीजावा

हाँ, आप एक .java फ़ाइल के अंदर एक से अधिक वर्ग हो सकते हैं। उनमें से अधिकतर सार्वजनिक हो सकते हैं अन्य पैकेज-निजी हैं वे निजी या संरक्षित नहीं हो सकते यदि कोई सार्वजनिक है, तो फ़ाइल का उस वर्ग का नाम होना चाहिए। अन्यथा कुछ भी उस फ़ाइल को उसके नाम के रूप में दिया जा सकता है।

एक फ़ाइल के अंदर कई कक्षाएं होने का मतलब है कि ये कक्षाएं समान पैकेज में हैं। इसलिए किसी भी अन्य वर्ग जो उस पैकेज के अंदर हैं लेकिन उस फ़ाइल में भी उन वर्गों का उपयोग कर सकते हैं। इसके अलावा, जब वह पैकेज आयात किया जाता है, तो आयात करने वाला वर्ग उन्हें भी इस्तेमाल कर सकता है

अधिक विस्तृत जांच के लिए, आप यहां अपने ब्लॉग पोस्ट पर जा सकते हैं ।

एक फ़ाइल में केवल एक सार्वजनिक कक्षा शीर्ष स्तर का वर्ग हो सकता है उस सार्वजनिक वर्ग का वर्ग नाम होना चाहिए फ़ाइल का नाम। इसमें कई सार्वजनिक आंतरिक कक्षाएं हो सकती हैं।

आप एक ही फ़ाइल में कई कक्षाएं कर सकते हैं। किसी फ़ाइल में वर्ग दृश्यता के विभिन्न स्तरों की सीमा निम्नानुसार है:

शीर्ष स्तर की कक्षाएं:
1 सार्वजनिक कक्षा
0 निजी वर्ग
किसी भी संख्या में डिफ़ॉल्ट / संरक्षित वर्ग

आंतरिक वर्ग:
किसी भी दृश्यता के साथ आंतरिक कक्षाएं (डिफ़ॉल्ट, निजी, संरक्षित, सार्वजनिक)

अगर मैं गलत हूं कृपया मुझे सही।