Java में क्लास
क्लास एक नाम वाला टाइप है जिसे आप .java फ़ाइल में घोषित करते हैं। public class Badge को Badge.java नाम की फ़ाइल में रखें। उस टाइप के अंदर छोटा static मेथड show लिखें जो ready प्रिंट करे। दूसरी फ़ाइल Desk.java में public class Desk रखें जिसका main Badge.show(); कॉल करे। दोनों फ़ाइलें कंपाइल करें, फिर java Desk चलाएँ। स्क्रीन एक लाइन दिखाए: ready। यहाँ रिकर्शन से उल्टी गिनती नहीं कर रहे। आप अपने फ़ाइल में एक टाइप नाम दे रहे हैं और उस टाइप के मेथड से प्रिंट करवा रहे हैं। यही दूसरा नाम वाला टाइप — ऐसी क्लास जो केवल शुरू करने वाली फ़ाइल नहीं — इस पेज का पाठ है।
टाइप अपनी फ़ाइल में रहता है
मेथड पेजों तक लगभग हर डेमो main और सहायक मेथड एक ही public class में रखता था। वह अभी भी काम करता है। यह पेज जानबूझकर दूसरी public class जोड़ता है। Badge एक टाइप नाम है। उसे शुरू होने वाला प्रोग्राम होना ज़रूरी नहीं। Desk वह प्रोग्राम है जो शुरू होता है। हर public class ऐसी फ़ाइल में बैठती है जिसका नाम क्लास नाम से ठीक मेल खाए, बड़े अक्षरों समेत।
पहले Badge.java बनाएँ। टाइप की पहली लाइन public class Badge है। इस फ़ाइल में public class Desk न लिखें। यहाँ पुराना Ladder या Gate क्लास नाम न छोड़ें। कंपाइलर public class नाम को फ़ाइल नाम से बाँधता है। अगर फ़ाइल Badge.java है और लाइन public class Ladder कहे तो javac मना कर देता है।
Badge के ब्रेसेस के अंदर static void show() लिखें। बॉडी एक प्रिंट है: System.out.println("ready");। इस पेज पर void रखें। मेथड कोई संख्या नहीं लौटाता। केवल एक शब्द लिखता है। इस पेज पर Badge.java में main नहीं है। यह जानबूझकर है। क्लास शुरू करने वाली क्लास बने बिना भी मेथड रख सकती है।
कंपाइल से पहले Badge.java सेव करें। पहला बॉक्स वाला प्रोग्राम अकेली वही फ़ाइल है।
public class Badge {
static void show() {
System.out.println("ready");
}
}
Desk शुरू करता है; Badge प्रिंट करता है
उसी फ़ोल्डर में दूसरी फ़ाइल बनाएँ: Desk.java। उसकी public class लाइन public class Desk है। main के अंदर एक कॉल लिखें: Badge.show();। वह कॉल टाइप Badge नाम लेती है, फिर बिंदु, फिर मेथड show। जब तक show Desk में भी न हो, Desk के अंदर अकेला show(); न लिखें। इस पेज पर show Badge का है, इसलिए कॉल टाइप नाम साथ रखती है।
public class Desk {
public static void main(String[] args) {
Badge.show();
}
}
दोनों फ़ाइलें एक ही फ़ोल्डर में हों ताकि javac उन्हें साथ देखे। उस फ़ोल्डर से javac Badge.java Desk.java चलाएँ। पहले Badge.java फिर Desk.java भी कंपाइल कर सकते हैं; फ़ाइलें पूरी हों तो दोनों क्रम काम करते हैं। जब कोष्ठक, ब्रेसेस और सेमीकोलन मेल खाते हैं तो javac अपनी कोई लाइन नहीं लिखता। फिर java Desk चलाएँ — java Desk.java नहीं, और java Badge भी नहीं। रन कमांड से .java अंत हटाएँ। वह क्लास शुरू करें जिसमें main है। ये दोनों तरह की कमांड Windows और macOS पर काम करती हैं।
प्रोग्राम एक लाइन प्रिंट करके रुके: ready। आपको टाइप करने के लिए नहीं पूछना चाहिए। अगर टर्मिनल कीबोर्ड इनपुट का इंतज़ार करे तो पुराने अभ्यास की nextLine कॉल अभी किसी फ़ाइल में है। उसे हटाएँ और Desk में Badge.show(); व Badge में show मेथड रखें।
रन को एक बार देखें। Java Desk.main से शुरू होती है। कॉल Badge.show() टाइप Badge के मेथड में जाती है। वह मेथड ready प्रिंट करता है और लौटता है। फिर Desk खत्म होता है। स्क्रीन पर शब्द Badge से आया, स्वयं Desk के अंदर लिखे println से नहीं। यही विभाजन बात है: एक क्लास प्रोग्राम शुरू करती है; दूसरी क्लास सहायक रखती है।
फ़ाइल नाम और public class मेल खाने चाहिए
जोड़ी को एक बार छोटी तालिका में पढ़ें। हर public class का एक फ़ाइल नाम होता है।
📊 file, public class, role
| फ़ाइल | public class | इस पेज पर भूमिका |
|---|---|---|
Badge.java |
Badge |
टाइप जो show रखता है |
Desk.java |
Desk |
प्रोग्राम जो main रखता है |
अगर फ़ाइल का नाम छोटे b से badge.java कर दें और लाइन अभी भी public class Badge कहे, कुछ सिस्टम असंगति को त्रुटि मानते हैं। इस शुरुआती आकार पर दोनों जगह बड़ा B रखें। अगर एक ही फ़ाइल में public class Badge और public class Desk रखें तो javac मना करता है: प्रति फ़ाइल एक public class। उसी फ़ाइल में private सहायक क्लास बाद के कोर्स के लिए। यहाँ दो public फ़ाइलें रखें।
आम गलती यह है कि क्योंकि अभी Badge.java लिखा है इसलिए java Badge चला दें। इस पेज पर उस क्लास में main नहीं, इसलिए रन शुरू नहीं होता। java Desk चलाएँ। दूसरी गलती जब show केवल Badge पर हो तो Desk में बिना Badge. उपसर्ग के show(); लिखना। तब कंपाइलर Desk में show खोजता है और नहीं पाता।
बचे रिकर्शन डेमो फ़ोल्डर भ्रमित कर सकते हैं। जो फ़ाइल अभी भी Ladder.java है और जिसमें down(3) है वह दूसरा प्रोग्राम है। दो-फ़ाइल आकार सीखते हुए इस पाठ का फ़ोल्डर Badge.java और Desk.java पर रखें। यहाँ down की ज़रूरत नहीं।
पहले टाइप कंपाइल करें, फिर स्टार्टर
कंपाइल कदम छोटे टुकड़ों में अभ्यास कर सकते हैं। पहले केवल टाइप कंपाइल करें: javac Badge.java। वह कमांड Badge जाँचती है भले अभी कुछ शुरू न हुआ हो। क्लास फ़ाइल बिना main के कंपाइल हो सकती है। फिर स्टार्टर कंपाइल करें: javac Desk.java। अगर उसी फ़ोल्डर में Badge पहले से कंपाइल है तो Desk कॉल में नाम Badge हल कर सकता है। अंत में java Desk चलाएँ और एक लाइन ready की पुष्टि करें।
अगर javac Desk.java कहे कि प्रतीक Badge नहीं मिला, तीन बातें जाँचें। फ़ोल्डर में Desk.java के पास Badge.java या कंपाइल की गई Badge क्लास होनी चाहिए। कॉल में Badge टाइप जैसे ही बड़े अक्षरों से लिखा होना चाहिए। बिंदु के बाद मेथड नाम show होना चाहिए, Badge के हेडर से मेल खाता।
Desk में System.out.println("Badge"); लिखना शब्द Badge प्रिंट करता है। टाइप पर मेथड नहीं कॉल करता। जब Badge में रहने वाला प्रिंट चाहिए तो Badge.show(); रखें।
यह पेज अभी क्या नहीं करता
यह पेज new Badge() नहीं लिखता। क्लास से ऑब्जेक्ट बनाना अगला पेज है। यहाँ कॉल Badge.show() है — स्वयं टाइप नाम पर static मेथड। अभी badge पर फ़ील्ड भी नहीं रखते। फ़ील्ड इस मॉड्यूल में बाद के पेज के लिए। अब काम केवल अपने फ़ाइल में नाम वाला टाइप, मेल खाती public class लाइन, और वह कॉल है जो उस टाइप नाम का उपयोग करे।
show के अंदर प्रिंट शब्द को set कर दोनों फ़ाइलें फिर कंपाइल कर सकते हैं (या कम से कम Badge.java, फिर Desk फिर चलाएँ)। स्क्रीन Badge में रखी स्ट्रिंग का पालन करे। Desk वही कॉल रखता है। विभाजन देखने का दूसरा तरीका: टाइप का मेथड बदलें, स्टार्टर की कॉल रखें।
objects से पहले
आप Badge.java में public class Badge घोषित कर सकते हैं, अंदर static void show() रख सकते हैं, और Desk.main से Badge.show(); कॉल कर सकते हैं। फ़ाइल नाम और public class नाम मेल खाते हैं। टाइप और स्टार्टर कंपाइल करें, फिर java Desk चलाएँ। स्क्रीन वह लाइन दिखाती है जो show प्रिंट करता है। क्लास वही नाम वाला टाइप है। अगला पेज objects है; वहाँ आप new से क्लास से एक मान बनाते हैं।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी