लोड हो रहा है...

Java का पहला प्रोग्राम

इस फ़ाइल को आप पहले चला चुके हैं। स्क्रीन पर mint आया था। यह पन्ना उसी फ़ाइल के साथ रुकता है और एक नया सवाल पूछता है: फ़ाइल के अंदर की कौन-सी पंक्ति ने वह शब्द लिखा, और कौन-सी पंक्तियों ने कुछ नहीं लिखा? Java दोबारा स्थापित नहीं करना है। पिछले पन्ने वाली वर्ज़न पंक्तियाँ जैसी थीं, वैसी ही रहने दीजिए। Mint.java खोलिए और उसे ऊपर से नीचे तक पढ़िए। जिस स्क्रीन को आप समझाने जा रहे हैं, वह अब भी एक पंक्ति की है, और वह पंक्ति mint है।

फ़ाइल में एक से ज़्यादा पंक्तियाँ हैं, इसलिए सबसे पहला अंदाज़ा यह बनता है कि फ़ाइल की हर पंक्ति स्क्रीन की एक पंक्ति बन जाती होगी। यह अंदाज़ा ग़लत है, और यह पूरा पन्ना बताता है कि क्यों। तीन पंक्तियाँ किसी चीज़ को नाम देती हैं, और उनमें से लिखती सिर्फ़ एक है। ब्रेस, यानी { और }, इन पंक्तियों को एक साथ बाँधते हैं। वे भी कुछ नहीं लिखते। जब आप फ़ाइल सामने रखकर उँगली से उस पंक्ति को छू सकें जो लिखती है, तब यह पन्ना पूरा हुआ। अगला पन्ना फ़ाइल में एक टिप्पणी जोड़ता है, जिसे स्क्रीन नहीं दिखाती। वह mint को नहीं बदलता।

पूरी फ़ाइल

java
public class Mint {
    public static void main(String[] args) {
        System.out.println("mint");
    }
}

पहली पंक्ति फ़ाइल को नाम देती है

पहली पंक्ति public class Mint है। इसे तीन शब्दों के रूप में पढ़िए, जिनमें से हर एक का अपना काम है। इसे ऐसा वाक्य मत समझिए जिसे स्क्रीन छापेगी। public का मतलब है कि दूसरा कोड इस फ़ाइल को इस्तेमाल कर सकता है। स्क्रीन पर public शब्द आपको नहीं दिखता। class का मतलब है कि यह फ़ाइल Java की एक नामी इकाई तय कर रही है। स्क्रीन पर class शब्द भी नहीं दिखता। Mint उस इकाई का नाम है। डिस्क पर फ़ाइल Mint.java इसलिए है कि यह नाम Mint है। इस पंक्ति का नाम बदलेंगे तो फ़ाइल का नाम भी साथ में बदलना होगा, नहीं तो javac फ़ाइल को मना कर देगा। यह नियम फ़ाइल के नाम का है, स्क्रीन का नहीं। पिछले पन्ने की स्क्रीन को फिर देखिए। स्क्रीन पर Mint नहीं है, mint है। बड़ा M और छोटा m एक ही शब्द नहीं हैं। पहली पंक्ति अपना नाम कभी स्क्रीन पर नहीं लिखती।

उस पंक्ति के आख़िर में एक खुलता ब्रेस है, {। उसका जोड़ीदार बंद होने वाला ब्रेस, }, फ़ाइल की आख़िरी पंक्ति है। इन दोनों ब्रेस के बीच जो कुछ है, वह class Mint का है। ब्रेस बाड़ की तरह हैं। वे Java को बताते हैं कि यह इकाई कहाँ शुरू होती है और कहाँ ख़त्म। बाड़ स्क्रीन के लिए कोई शब्द नहीं है। mint के पास आपको { या } नहीं दिखेगा। खुलता ब्रेस हटा देंगे तो फ़ाइल टूट जाएगी, और javac चुप रहने की जगह त्रुटि लिखेगा। वह त्रुटि इस पन्ने का विषय नहीं है। यहाँ दोनों ब्रेस बने रहते हैं, और स्क्रीन mint ही रहती है।

main वाली पंक्ति वहाँ है जहाँ से Java शुरू होता है

अगली पंक्ति public static void main(String[] args) है। जब पूछा जाए कि प्रोग्राम कहाँ से शुरू होता है, तो लोग इसी पंक्ति की ओर इशारा करते हैं, और शुरुआत के बारे में वे सही होते हैं। ग़लती तब होती है जब वे आगे कहते हैं कि स्क्रीन पर main दिखता है। जब आप java Mint टाइप करते हैं, तब Java इसी बनावट वाली पंक्ति को ढूँढ़ता है। चलना यहीं से शुरू होता है। शुरू करना और लिखना एक चीज़ नहीं हैं। इस पंक्ति के शब्द शुरू करने के निर्देश हैं। वे स्क्रीन के लिए शब्द नहीं हैं।

शब्दों को एक-एक करके लीजिए और हर एक को स्क्रीन से मिलाकर देखिए। public यहाँ भी यही कहता है कि इस पंक्ति को फ़ाइल के बाहर से शुरू किया जा सकता है। static का मतलब है कि Java इस पंक्ति को पहले कोई वस्तु बनाए बिना शुरू कर सकता है। वस्तुओं से आपकी अभी जान-पहचान नहीं हुई है, इसलिए आपको सिर्फ़ इतना जानना है कि इस पंक्ति पर static शब्द ज़रूरी है और वह छपता नहीं। void का मतलब है कि यह पंक्ति बुलाने वाले को कोई मान लौटाती नहीं। इस पन्ने पर कोई बुलाने वाला नहीं है, और void स्क्रीन पर नहीं है। main वह नाम है जिसे Java ढूँढ़ता है। नाम main ही होना चाहिए, इन्हीं चार अक्षरों में, वरना java Mint इस फ़ाइल को शुरू नहीं करेगा। फिर भी स्क्रीन पर ये चार अक्षर नहीं आते। String[] args उन शब्दों की जगह है जो आप प्रोग्राम के नाम के बाद टाइप कर सकते हैं। आपने कोई अतिरिक्त शब्द नहीं टाइप किया। आपने बस java Mint टाइप किया। इस बार args ख़ाली है, और न String स्क्रीन पर आता है न args।

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

अंदर वाली पंक्ति mint लिखती है

main वाली पंक्ति के अंदर, उसके अपने ब्रेस के बीच, एक और पंक्ति है। वह पंक्ति System.out.println("mint") है। स्क्रीन पर लिखने वाली पंक्ति यही है। फ़ाइल में यह थोड़ी भीतर खिसकाकर लिखी गई है, ताकि आप देख सकें कि यह main के अंदर बैठी है। यह खिसकाव ख़ाली जगहों से बना है। ख़ाली जगहें भी स्क्रीन पर नहीं लिखी जातीं। Java इस भीतरी पंक्ति को इसलिए चलाता है कि यह उस पंक्ति के अंदर है जहाँ से प्रोग्राम शुरू होता है। स्क्रीन उसी को इस्तेमाल करती है जो यह भीतरी पंक्ति लिखती है। बाहरी पंक्ति का नाम स्क्रीन के काम नहीं आता।

भीतरी पंक्ति को बाईं ओर से पढ़िए। System.out स्क्रीन है, वह जगह जहाँ पंक्तियाँ लिखी जाती हैं। println का मतलब है: यह लिखो, फिर पंक्ति ख़त्म करो। कोष्ठक के अंदर का हिस्सा वह है जो लिखा जाएगा। कोष्ठक के अंदर mint शब्द दोहरे उद्धरण चिह्नों के बीच बैठा है। ये चिह्न बताते हैं कि mint पाठ है। वे ख़ुद उस पाठ का हिस्सा नहीं हैं। मन ही मन उन्हें हटा दीजिए, तो जो शब्द बचता है वह mint है, और वही पूरी स्क्रीन है। पर फ़ाइल में उन्हें रहने दीजिए। उद्धरण चिह्नों के बिना javac mint को पाठ नहीं मानता। अंत का अर्धविराम Java के लिए पंक्ति पूरी करता है। स्क्रीन पर आपको अर्धविराम नहीं दिखता। आपको mint दिखता है, और उसके बाद पंक्ति इसलिए ख़त्म हो जाती है कि println ने उसे ख़त्म किया।

यह रही वह लिखने वाली पंक्ति अकेली, ताकि बाक़ी पंक्तियाँ उसे छिपा न सकें।

सिर्फ़ यही पंक्ति स्क्रीन पर लिखती है

java
System.out.println("mint");

कमांड java Mint में ऐसा कुछ नहीं है जो शब्द mint चुनता हो। कमांड सिर्फ़ फ़ाइल का नाम बताता है। शब्द उद्धरण चिह्नों से आता है। अगर उद्धरण चिह्नों में कोई और शब्द होता, तो स्क्रीन पर वही शब्द दिखता, पर यह पन्ना ऐसा नहीं करता। इस पन्ने में उद्धरण चिह्नों के बीच mint है, इसलिए स्क्रीन mint है। एक पंक्ति। दूसरी पंक्ति नहीं। स्क्रीन पर उद्धरण चिह्न नहीं। शब्द main नहीं। शब्द Mint नहीं।

📊 स्क्रीन पर किस पंक्ति से क्या आता है

पंक्ति स्क्रीन
public class Mint इस पंक्ति से कुछ नहीं
public static void main(String[] args) इस पंक्ति से कुछ नहीं
System.out.println("mint") mint

लोग क्या ग़लत पढ़ लेते हैं

सबसे आम चूक यह है कि लोग फ़ाइल को ऊपर से पढ़ते हैं और मान लेते हैं कि जो शब्द सबसे जाना-पहचाना है, वही आउटपुट है। main अहम दिखता है, और अहम है भी, क्योंकि उसके बिना Java फ़ाइल को शुरू ही नहीं करेगा। पर अहमियत आउटपुट नहीं होती। आप main वाली पंक्ति पर उँगली रख लें, तब भी लिखने वाली पंक्ति System.out.println("mint") ही रहती है। लेकिन लिखने वाली पंक्ति को ढक दें तो आप स्क्रीन को समझा नहीं सकते। दूसरी चूक यह कहना है कि स्क्रीन पर Mint आता है, क्योंकि फ़ाइल और class दोनों का नाम Mint है। स्क्रीन उस शब्द को लेती है जो उद्धरण चिह्नों के बीच है, और वह शब्द छोटे m से लिखा है। तीसरी चूक पंक्तियाँ गिनना है। फ़ाइल में कई पंक्तियाँ और कई ब्रेस दिखते हैं। स्क्रीन पर एक पंक्ति आती है। ब्रेस, public, static और void शब्द, main नाम और Mint नाम, ये सब चलाने के बाद भी फ़ाइल में बने रहते हैं। चलाना इन्हें मिटाता नहीं। और छापता भी नहीं।

आप इसे अपनी पिछली बार की दौड़ से जाँच सकते हैं। javac Mint.java ने कोई पंक्ति नहीं लिखी। उस चुप्पी का मतलब था कि फ़ाइल मंज़ूर हो गई, main वाली पंक्ति और ब्रेस समेत। java Mint ने mint लिखा। वह एक शब्द println वाली पंक्ति का काम है। अगर आप अभी उसी फ़ोल्डर से java Mint फिर चलाएँ, तो स्क्रीन फिर mint होगी। इस पन्ने पर फ़ाइल बदली नहीं है, इसलिए स्क्रीन बदल नहीं सकती।

अब आप System.out.println("mint") पर उँगली रखकर कह सकते हैं कि स्क्रीन इसी पंक्ति से आती है। आप public static void main(String[] args) पर उँगली रखकर कह सकते हैं कि Java यहीं से शुरू होता है और शब्द main स्क्रीन पर नहीं है। आप public class Mint पर उँगली रखकर कह सकते हैं कि यह नाम फ़ाइल से मेल खाता है, स्क्रीन से नहीं। अगला पन्ना फ़ाइल में एक टिप्पणी रखता है। वह टिप्पणी फ़ाइल पढ़ने वाले इंसान के लिए है। स्क्रीन फिर भी mint रहेगी, क्योंकि टिप्पणी कोई दूसरा println नहीं है।

स्क्रीन एक ही पंक्ति से आती है

स्क्रीन पर mint दिखता है। उस शब्द को System.out.println("mint") लिखता है। उद्धरण चिह्न स्क्रीन पर नहीं हैं। main वाली पंक्ति स्क्रीन पर नहीं है। पहली पंक्ति, public class Mint, स्क्रीन पर नहीं है। दूसरी पंक्ति नहीं है।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
6
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी