Java Constructors
Java में, मेथड्स का उपयोग कोड के ब्लॉक्स को स्टोर करने के लिए किया जाता है जो एक विशिष्ट क्रिया करते हैं। जब आप मेथड्स के साथ काम कर रहे होते हैं, तो आप constructors नामक एक अवधारणा का सामना कर सकते हैं।
Constructors Java में ऑब्जेक्ट्स को इनिशियलाइज़ करने के लिए उपयोग किए जाने वाले विशेष मेथड्स हैं। Constructors तब कॉल किए जाते हैं जब किसी क्लास का ऑब्जेक्ट बनाया जाता है, और ऑब्जेक्ट के लिए प्रारंभिक मान सेट करने के लिए उपयोग किए जाते हैं।
यह ट्यूटोरियल उदाहरणों के साथ Java constructors की मूल बातों पर चर्चा करेगा और अपने कोड में constructors का उपयोग कैसे करें। इस ट्यूटोरियल को पढ़ने के अंत तक, आप Java constructors का उपयोग करके ऑब्जेक्ट्स को इनिशियलाइज़ करने में एक्सपर्ट होंगे।
Java Constructors
Constructors किसी नए बने ऑब्जेक्ट को प्रोग्राम में उपयोग किए जाने से पहले इनिशियलाइज़ करते हैं। इसलिए, उदाहरण के लिए, Supplier नामक एक कंस्ट्रक्टर सप्लायर के डिफ़ॉल्ट एट्रिब्यूट्स के साथ एक ऑब्जेक्ट बनाएगा।
Constructors का नाम उनकी क्लास के समान होता है और वे कोई मान वापस नहीं करते। यहाँ Java में कंस्ट्रक्टर का एक उदाहरण है:
class Supplier { Supplier() { // Code here } }
इस उदाहरण में, हमने Supplier नामक एक कंस्ट्रक्टर घोषित किया है, जिसका नाम हमारी क्लास के समान है। इसके अलावा, हमारे कंस्ट्रक्टर का कोई रिटर्न टाइप नहीं है—जैसे void—जो इसे अन्य प्रकार के मेथड्स से अलग करता है।
कंस्ट्रक्टर घोषित करते समय आपको दो नियम जानने की आवश्यकता है। पहला, कंस्ट्रक्टर का नाम उस क्लास के नाम से बिल्कुल मेल खाना चाहिए जिसमें कंस्ट्रक्टर घोषित किया गया है। दूसरा, कंस्ट्रक्टर्स मान वापस नहीं कर सकते।
Java Constructor कैसे बनाएं
Java constructors के दो प्रकार हैं: no-arg constructors और parameterized constructors। आइए दोनों प्रकारों का उपयोग करके कंस्ट्रक्टर बनाने का तरीका समझते हैं।
No-arg Constructors
मान लीजिए हम एक ग्रॉसरी स्टोर चला रहे हैं और हम एक प्रोग्राम बनाना चाहते हैं जो पनीर के लिए हमारे मुख्य सप्लायर के बारे में विवरण स्टोर करता है। इस प्रोग्राम में एक कंस्ट्रक्टर शामिल होना चाहिए जो सप्लायर की जानकारी स्टोर करता है, और उन मानों को कंसोल पर प्रिंट भी करना चाहिए।
यहाँ वह कोड है जिसका उपयोग हम इस प्रोग्राम को बनाने के लिए करेंगे:
class MainCheeseSupplier { private String name; private String address; private int discountRate; private String payDate; private MainCheeseSupplier() { name = "J. Acker Dairy"; address = "1600 Johnson Ave. San Francisco 94127"; discountRate = 2; payDate = "Last day of the month."; } public static void main(String[] args) { MainCheeseSupplier jadairy = new MainCheeseSupplier(); System.out.println("Name: " + jadairy.name); System.out.println("Address: " + jadairy.address); System.out.println("Discount rate: " + jadairy.discountRate); System.out.println("Pay date: " + jadairy.payDate); } }
हमारा कोड निम्न आउटपुट देता है:
Name: J. Acker Dairy Address: 1600 Johnson Ave. San Francisco 94127 Discount rate: 2 Pay date: Last day of the month.
सबसे पहले, हमने MainCheeseSupplier नामक एक क्लास परिभाषित की है जिसमें हमारे प्रोग्राम का कोड है। फिर हमने चार प्राइवेट वेरिएबल्स इनिशियलाइज़ किए—name, address, discountRate, और payDate—जिनका उपयोग हम अपने मुख्य पनीर सप्लायर के बारे में जानकारी स्टोर करने के लिए करते हैं।
एक बार जब हमने उन वेरिएबल्स को घोषित कर दिया, तो हम MainCheeseSupplier नामक एक कंस्ट्रक्टर बनाते हैं जो उन्हें डिफ़ॉल्ट मानों के साथ इनिशियलाइज़ करता है। फिर, हमारे मुख्य प्रोग्राम में, हम इस कोड का उपयोग करके अपने कंस्ट्रक्टर का एक इंस्टेंस इनिशियलाइज़ करते हैं:
MainCheeseSupplier jadairy = new MainCheeseSupplier();
यह कोड jadairy वेरिएबल को MainCheeseSupplier ऑब्जेक्ट का एक नया इंस्टेंस असाइन करता है। फिर, हम jadairy वेरिएबल और उस एट्रिब्यूट को संदर्भित करके jadairy में रखे प्रत्येक मान को कंसोल पर प्रिंट करते हैं जिसे हम एक्सेस करना चाहते हैं।
यह no-arg constructor का एक उदाहरण है। क्योंकि हमारा कंस्ट्रक्टर कोई पैरामीटर स्वीकार नहीं करता, हम इसे no-arg के रूप में संदर्भित करते हैं।
Parameterized Constructor
हालांकि, ऐसा मामला हो सकता है जहां आप कंस्ट्रक्टर के माध्यम से आर्गुमेंट्स पास करना चाहते हैं।
आइए ग्रॉसरी स्टोर पर वापस चलते हैं। मान लीजिए हम अपने मुख्य पनीर सप्लायर के विवरण के मानों को अपने मुख्य प्रोग्राम में परिभाषित करना चाहते हैं और जब मुख्य प्रोग्राम निष्पादित होना शुरू हो गया है तो उन्हें अपने कंस्ट्रक्टर में असाइन करना चाहते हैं।
हम ऐसा इसलिए करना चाह सकते हैं क्योंकि हम अलग-अलग मानों के साथ कई सप्लायर्स को इनिशियलाइज़ कर रहे हैं, या क्योंकि हम कंस्ट्रक्टर को विशिष्ट मान असाइन नहीं करना चाहते।
यदि हम कंस्ट्रक्टर के माध्यम से आर्गुमेंट्स पास करते हैं, तो हम इसे पैरामीटराइज़्ड कंस्ट्रक्टर कहते हैं।
हम पैरामीटर लिस्ट को कंस्ट्रक्टर के माध्यम से इस तरह पास कर सकते हैं:
class MainCheeseSupplier { String name; String address; int discountRate; String payDate; public MainCheeseSupplier(String supplierName, String supplierAddress, int supplierDiscountRate, String supplierPayDate) { name = supplierName; address = supplierAddress; discountRate = supplierDiscountRate; payDate = supplierPayDate; } public static void main(String[] args) { MainCheeseSupplier jadairy = new MainCheeseSupplier("J. Acker Dairy", "1600 Johnson Ave. San Francisco 94127", 2, "Last day of the month."); System.out.println("Name: " + jadairy.name); System.out.println("Address: " + jadairy.address); System.out.println("Discount rate: " + jadairy.discountRate); System.out.println("Pay date: " + jadairy.payDate); } }
हमारा कोड निम्न आउटपुट देता है:
Name: J. Acker Dairy Address: 1600 Johnson Ave. San Francisco 94127 Discount rate: 2 Pay date: Last day of the month.
जैसा कि आप देख सकते हैं, इस उदाहरण में हमारे कोड का आउटपुट हमारे पहले उदाहरण के समान है। हालांकि, हमारे कोड में एक बड़ा अंतर है: कंस्ट्रक्टर में ही हमारे कंस्ट्रक्टर के मानों को इनिशियलाइज़ करने के बजाय, हम उन्हें पैरामीटर्स के रूप में पास करते हैं जब हम कंस्ट्रक्टर का एक इंस्टेंस घोषित करते हैं।
उपरोक्त उदाहरण में, MainCheeseSupplier कंस्ट्रक्टर चार पैरामीटर्स स्वीकार करता है: supplierName, supplierAddress, supplierDiscountRate, और supplierPayDate। जब हम MainCheeseSupplier कंस्ट्रक्टर का एक इंस्टेंस इनिशियलाइज़ करते हैं, तो हम इन पैरामीटर्स के माध्यम से मान पास करते हैं, जिन्हें तब हमारे कंस्ट्रक्टर द्वारा पढ़ा जाता है। यहाँ वह कोड है जिसका उपयोग हम कंस्ट्रक्टर का एक इंस्टेंस इनिशियलाइज़ करने के लिए करते हैं:
MainCheeseSupplier jadairy = new MainCheeseSupplier("J. Acker Dairy", "1600 Johnson Ave. San Francisco 94127", 2, "Last day of the month.");
फिर, हम MainCheeseSupplier कंस्ट्रक्टर में स्टोर किए गए मानों की सामग्री प्रिंट करते हैं।
निष्कर्ष
Java constructors ऑब्जेक्ट्स को इनिशियलाइज़ करने के लिए उपयोग किए जाने वाले विशेष मेथड्स हैं। Constructors तब कॉल किए जाते हैं जब किसी क्लास का ऑब्जेक्ट बनाया जाता है और ऑब्जेक्ट के एट्रिब्यूट्स के लिए प्रारंभिक मान सेट करने के लिए उपयोग किए जा सकते हैं।
इस ट्यूटोरियल ने उदाहरणों के संदर्भ में चर्चा की कि Java में constructors कैसे बनाएं और उनके साथ कैसे काम करें। अब आप Java constructors का उपयोग एक्सपर्ट की तरह शुरू करने के लिए तैयार हैं!