जब हम Java में क्लास के बारे में बात करते हैं तो हमारा क्या मतलब होता है? यह निश्चित रूप से स्कूल जैसी क्लास नहीं है, जिसमें छात्र और शिक्षक होते हैं। एक क्लास आपके कोड में एक ऑब्जेक्ट के लिए एक ब्लूप्रिंट है।
Java एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। इसका मतलब है कि इसमें कई फीचर्स शामिल हैं जो आपको पुन: प्रयोज्य कोड लिखने में मदद करते हैं। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सभी आकारों के प्रोग्राम्स के लिए उपयोगी है क्योंकि यह दोहराव को कम करने में मदद करता है, जो बदले में आपके कोड को अधिक पठनीय बनाता है।
इस गाइड में, हम Java में दो महत्वपूर्ण अवधारणाओं के बारे में बात करने जा रहे हैं: क्लास और ऑब्जेक्ट। हम चर्चा करेंगे कि वे कैसे काम करते हैं, और उदाहरणों के संदर्भ में आप उन्हें कैसे इम्प्लीमेंट कर सकते हैं।
Java क्लास क्या है?
एक क्लास एक ऑब्जेक्ट के लिए ब्लूप्रिंट की तरह है। जबकि एक बेडरूम के लिए ब्लूप्रिंट यह बता सकता है कि किस प्रकार के दरवाजे और खिड़कियां लगाई जा रही हैं, एक क्लास आपके प्रोग्राम को बताती है कि एक ऑब्जेक्ट किन मेथड्स और मानों को एक्सेस और स्टोर करने में सक्षम होना चाहिए।
क्लासेस उपयोगी हैं क्योंकि वे आपको एक विशेष प्रकार के डेटा के लिए एक बार संरचना घोषित करने की अनुमति देते हैं जिसे आप ऑब्जेक्ट्स घोषित करके कई बार संदर्भित कर सकते हैं।
आइए Employee नामक एक क्लास परिभाषित करें जिसमें एक वेरिएबल और दो मेथड्स हों:
public class Employee { boolean isOnVacation; public void startVacation() { isOnVacation = true; System.out.println("You are now on vacation."); } public void endVacation() { isOnVacation = false; System.out.println("You are not on vacation anymore."); } }
हमारे कोड में, हमने दो मेथड्स परिभाषित किए हैं: एक कर्मचारी की छुट्टी शुरू करने के लिए, और दूसरा कर्मचारी की छुट्टी समाप्त करने के लिए। हमने इस जानकारी को ट्रैक करने के लिए isOnVacation नामक एक बूलियन इंस्टेंस वेरिएबल घोषित किया है।
हमने अभी तक अपनी कर्मचारी क्लास के कोई ऑब्जेक्ट्स नहीं बनाए हैं। हमने केवल ब्लूप्रिंट की रूपरेखा तैयार की है जो बाद में परिभाषित करेगा कि वे ऑब्जेक्ट्स कैसे आकार लेंगे।
Java ऑब्जेक्ट क्या है?
एक ऑब्जेक्ट एक विशेष क्लास का इंस्टेंस है। आइए पहले के अपने Employee ब्लूप्रिंट का उपयोग करके एक ऑब्जेक्ट बनाएं। हम john नामक एक ऑब्जेक्ट बनाएंगे:
Employee john = new Employee();
यह कोड Employee क्लास का एक इंस्टेंस बनाता है। ध्यान दें कि हमने अपने क्लास के नाम के बाद दो पैरेंथेसिस जोड़े हैं, जो हमारे कोड को Employee क्लास को संदर्भित करने के लिए कहता है। new कीवर्ड हमारे कोड को उस क्लास का एक नया ऑब्जेक्ट बनाने के लिए कहता है।
अब, आइए हमारे ऑब्जेक्ट मेथड्स का उपयोग करें:
Employee john = new Employee(); john.startVacation(); john.endVacation();
आइए अपना प्रोग्राम चलाएं और देखें क्या होता है:
You are now on vacation. You are not on vacation anymore.
हमारा ऑब्जेक्ट उन दो मेथड्स को कॉल करता है जिन्हें हमने अपनी Employee क्लास में परिभाषित किया था। इससे उन मेथड्स के भीतर का कोड चलता है। जब हम john.startVacation() एक्जीक्यूट करते हैं, उदाहरण के लिए, isOnVacation बूलियन का मान true पर सेट हो जाता है, और संदेश "You are now on vacation." Java कंसोल पर प्रिंट होता है।
हालांकि हमने isOnVacation वेरिएबल को अपनी क्लास के अंदर परिभाषित किया है, हम किसी विशेष ऑब्जेक्ट में असाइन किए गए मान को एक्सेस कर सकते हैं। इस कोड पर विचार करें:
Employee john = new Employee(); john.startVacation(); john.endVacation(); System.out.println(john.isOnVacation);
यह कोड जॉन की छुट्टी शुरू और समाप्त करेगा - हमारे पिछले उदाहरण की तरह - और फिर isOnVacation वेरिएबल के मान को कंसोल पर प्रिंट करेगा:
You are now on vacation. You are not on vacation anymore. false
हमारे isOnVacation मेथड का मान false है।
Java कंस्ट्रक्टर्स
कंस्ट्रक्टर मेथड आपको क्लास में डेटा इनिशियलाइज़ करने की अनुमति देता है। ऊपर हमारे उदाहरण में, हमने अपनी क्लास के मुख्य बॉडी में एक वेरिएबल घोषित किया था लेकिन हमने इसे डिफ़ॉल्ट मान के साथ इनिशियलाइज़ नहीं किया था।
निम्न कोड पर विचार करें:
class Employee { boolean isOnVacation; public Employee() { isOnVacation = false; System.out.println("Initialized values."); } ... }
अब, आइए अपनी Employee क्लास का एक ऑब्जेक्ट बनाएं:
Employee john = new Employee(); john.startVacation();
जब हम अपना john ऑब्जेक्ट बनाते हैं, तो हमारा कंस्ट्रक्टर ऑटोमैटिकली चलेगा। यह मेथड आपको उन डिफ़ॉल्ट मानों को सेट करने की अनुमति देता है जिन्हें आप अपनी क्लास में रखना चाहते हैं। हमारा मेथड लौटाता है:
Initialized values. You are now on vacation.
एक्जीक्यूशन पर, हमारा कंस्ट्रक्टर isOnVacation के मान को false पर सेट करता है। यह तब हमारे कंसोल पर Initialized values प्रिंट करता है।
एकाधिक ऑब्जेक्ट्स बनाना
क्या होगा यदि हमारे दो कर्मचारी हैं? क्या आप अभी भी उसी क्लास का उपयोग कर सकते हैं? हाँ! यही क्लासेस उपयोग करने का लाभ है: आप उसी क्लास का उपयोग करके कई ऑब्जेक्ट्स घोषित कर सकते हैं।
निम्न मेन प्रोग्राम पर विचार करें:
Employee john = new Employee(); john.startVacation(); john.endVacation(); System.out.println(john.isOnVacation); Employee ian = new Employee(); ian.startVacation(); System.out.println(ian.isOnVacation);
आइए अपना कोड चलाएं:
Initialized values. You are now on vacation. You are not on vacation anymore. false Initialized values. You are now on vacation. true
हमने अपनी Employee क्लास के दो ऑब्जेक्ट्स बनाए हैं: john और ian। हमारे कोड में, हमने जॉन की छुट्टी शुरू और समाप्त की है। फिर, हमने इयान के लिए एक ऑब्जेक्ट बनाया और उसकी छुट्टी शुरू की।
जब हम john.isOnVacation का मान प्रिंट करते हैं, तो false लौटाया जाता है; जब हम इयान के ऑब्जेक्ट के लिए भी ऐसा ही करते हैं, तो true लौटाया जाता है। ऐसा इसलिए है क्योंकि हमारी क्लास का प्रत्येक ऑब्जेक्ट अलग है। वे उसी ब्लूप्रिंट का उपयोग करते हैं, लेकिन वे अपने स्वयं के मान स्टोर कर सकते हैं।
निष्कर्ष
क्लासेस और ऑब्जेक्ट्स ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की आधारशिला हैं। क्लासेस आपको ब्लूप्रिंट परिभाषित करने की अनुमति देती हैं, जिनसे आप फिर ऑब्जेक्ट्स परिभाषित कर सकते हैं।
क्या आप एक चुनौती के लिए तैयार हैं? एक प्रोग्राम बनाएं जिसमें एक क्लास हो जो ट्रैक करती है कि कोई छात्र अपना टेस्ट पास कर चुका है या नहीं। यह होना चाहिए:
- एक वेरिएबल स्टोर करें जो ट्रैक करे कि छात्र ने अपना टेस्ट पास किया है या नहीं।
- दो मेथड्स हों जो बदलें कि छात्र ने अपना टेस्ट पास किया है या नहीं।
- वैकल्पिक रूप से, आप एक "if" स्टेटमेंट का उपयोग यह कैलकुलेट करने के लिए कर सकते हैं कि छात्र का टेस्ट उनके न्यूमेरिकल ग्रेड के आधार पर पास/फेल के रूप में चिह्नित किया जाना चाहिए या नहीं।
अब आप एक विशेषज्ञ की तरह Java में क्लासेस और ऑब्जेक्ट्स के साथ काम करना शुरू करने के लिए तैयार हैं!