जब आप कोई छोटी Python स्क्रिप्ट चलाते हैं, तो Python फ़ाइल को ऊपर से नीचे तक एग्जीक्यूट करता है, और इसकी शुरुआत पहले टॉप-लेवल स्टेटमेंट से होती है। Java में भी वैसा ही अनुभव पाने के लिए, आप कुछ स्टेटमेंट लिखते हैं, लेकिन Java में उन्हें एक क्लास के अंदर होना ज़रूरी है, और एग्जीक्यूशन main नाम के एक खास मेथड से शुरू होता है।
मान लीजिए कि स्क्रिप्ट 3 रेडियस वाले सर्कल के एरिया जैसी कोई वैल्यू कैलकुलेट करती है और उसे प्रिंट करती है। Python में, आप इसे सीधे टॉप लेवल पर लिख सकते हैं, लेकिन Java में सबसे छोटे बराबर प्रोग्राम में एक अंतर होता है जिसे आप तुरंत देख लेंगे। Java में कुछ भी चलाने से पहले अतिरिक्त स्ट्रक्चर की ज़रूरत होती है।
देखें कि Python का टॉप-लेवल वर्शन, 3 रेडियस वाले उसी काम के लिए Java के class और main वाले वर्शन से कैसे मेल खाता है।
वह अतिरिक्त स्ट्रक्चर सिर्फ़ सजावट के लिए नहीं है। Java रनटाइम को एक नाम वाले शुरुआती पॉइंट की ज़रूरत होती है, और वह इसे एक क्लास लोड करके और एक खास सिग्नेचर वाले मेथड को कॉल करके ढूँढ़ता है।
शुरुआती पॉइंट को तय करने वाले सिंटैक्स के हिस्सों को पहचानकर शुरुआत करें।
class ClassName {
public static void main(String[] args) {
// स्टेटमेंट्स
}
}
क्लास एक नाम वाला कंटेनर है जिसका इस्तेमाल Java कोड को ग्रुप करने के लिए करता है, और Java आपके स्टेटमेंट्स को चलाने से पहले उस कंटेनर को लोड करता है। main मेथड एंट्री पॉइंट है, String[] args कमांड लाइन आर्गुमेंट्स का एक ऐरे है, ब्रेसेस {} ब्लॉक्स को तय करते हैं, और ज़्यादातर स्टेटमेंट्स सेमीकोलन ; पर खत्म होते हैं ताकि कंपाइलर देख सके कि हर स्टेटमेंट कहाँ रुकता है।
Java System.out.println(...) के ज़रिए भी प्रिंट करता है, जो रनटाइम द्वारा मैनेज किए जाने वाले स्टैंडर्ड आउटपुट स्ट्रीम पर println को कॉल करता है। इससे प्रिंटिंग, Python के बिल्ट-इन print का इस्तेमाल करने के बजाय किसी ऑब्जेक्ट पर मेथड कॉल करने जैसा लगता है।
Java फ़ाइल के स्ट्रक्चर को देखें और पता लगाएँ कि एग्जीक्यूशन कहाँ से शुरू होता है और ब्लॉक्स कैसे नेस्ट होते हैं।
एक बार जब आप main को पहचान लेते हैं, तो आप ठीक-ठीक अनुमान लगा सकते हैं कि क्या चलेगा। रनटाइम main के अंदर पहले स्टेटमेंट से शुरू होता है और क्रम से आगे बढ़ता है, ठीक Python की तरह, लेकिन सिर्फ़ उस मेथड की बॉडी के अंदर।
इस उदाहरण में के लिए 3 का इस्तेमाल करके एक अनुमानित मान लिया गया है, ताकि कैलकुलेशन इंटीजर्स में ही रहे।