"हाय, अमीगो!"
"नमस्ते!"
"आज हम ऑब्जेक्ट क्लास का अध्ययन करने जा रहे हैं।
आप पहले ही इसका सामना कर चुके हैं, और आप जानते हैं कि ऑब्जेक्ट सभी वर्गों के लिए आधार वर्ग है। इसमें व्यावहारिक रूप से कोई डेटा नहीं है, लेकिन इसकी कई विधियाँ हैं।"
"इसे विधियों की आवश्यकता क्यों है? क्या कोई वास्तव में ऑब्जेक्ट क्लास के उदाहरण बनाता है?"
"इसे इस तरह से देखें: ऑब्जेक्ट क्लास में विधियाँ सभी वर्गों में समान हैं। दूसरे शब्दों में, जावा के रचनाकारों ने कई विधियों की पहचान की, जो उनकी राय में, प्रत्येक वर्ग में होनी चाहिए और उन्हें ऑब्जेक्ट क्लास में जोड़ दिया।"
"और जब बहुरूपता (व्युत्पन्न वर्गों में वस्तु वर्ग के तरीकों को ओवरराइड करने की क्षमता) के साथ जोड़ा जाता है, तो यह एक बहुत शक्तिशाली उपकरण बन जाता है।"
"आइए देखें कि ये तरीके क्या हैं:"
तरीका | विवरण |
---|---|
|
वस्तु का एक स्ट्रिंग प्रतिनिधित्व रिटर्न करता है। |
|
वस्तुओं की तुलना करने के लिए उपयोग की जाने वाली विधियों की एक जोड़ी। |
|
एक विशेष वस्तु लौटाता है जो वर्तमान वर्ग का वर्णन करता है। |
|
विभिन्न धागों से किसी वस्तु तक पहुँच को नियंत्रित करने के तरीके। थ्रेड सिंक्रोनाइज़ेशन के लिए। |
|
यह विधि आपको देशी गैर-जावा संसाधनों को रिलीज़ करने देती है: फ़ाइलें, स्ट्रीम आदि बंद करें। |
|
यह विधि आपको किसी ऑब्जेक्ट को क्लोन करने देती है: ऑब्जेक्ट का डुप्लिकेट बनाता है। |
"इन विधियों को 6 समूहों में विभाजित किया जा सकता है। आप उनमें से कुछ से पहले से ही परिचित हैं, और हम बाद के पाठों में बाकी से परिचित होंगे।"
"किसी कारण से, मुझे यहाँ कुछ भी उपयोगी नहीं दिख रहा है।"
"अमीगो! यदि ये तरीके महत्वपूर्ण नहीं होते, तो वे उन्हें हर एक वस्तु में नहीं जोड़ते! इसलिए, मैं आपको सलाह दूंगा कि ये क्या हैं और इनकी आवश्यकता क्यों है, इस पर अधिक ध्यान दें। यदि वे आपको महत्वहीन लगते हैं , तो आप या तो कुछ नहीं समझ पाए या कुछ ठीक से समझ नहीं पाए।"
"ठीक है। मैं ध्यान से सुनूंगा।"
"चलिए toString() विधि से शुरू करते हैं।
"यह विधि आपको किसी वस्तु का पाठ विवरण प्राप्त करने देती है। वस्तु वर्ग में इसका कार्यान्वयन बहुत सरल है:"
return getClass().getName() + "@" + Integer.toHexString(hashCode());
"getClass () और हैशकोड () भी ऑब्जेक्ट क्लास के तरीके हैं।
इस विधि को कॉल करने से आमतौर पर इस तरह का परिणाम मिलता है:"
java.lang.Object@12F456
"और ऐसा विवरण क्या अच्छा है?"
"यह विवरण आपको उस वस्तु के वर्ग को जानने देता है जिस पर विधि को बुलाया गया था। आप वस्तुओं के बीच अंतर भी कर सकते हैं; अलग-अलग वस्तुओं में @ प्रतीक के बाद अलग-अलग अंक होंगे।"
"लेकिन इस पद्धति का वास्तविक मूल्य कहीं और है। अधिक विस्तृत या उपयुक्त वस्तु विवरण वापस करने के लिए इस विधि को किसी भी वर्ग में अधिलेखित किया जा सकता है।"
"लेकिन वहाँ अधिक है। क्योंकि आप प्रत्येक वस्तु का एक पाठ प्रतिनिधित्व प्राप्त कर सकते हैं, जावा ने आपके लिए वस्तुओं में 'जोड़ने' के लिए समर्थन लागू करना संभव बना दिया है। इसे देखें:
"
कोड | वास्तव में क्या होता है |
---|---|
|
|
|
|
|
|
"हाँ, मैं इसे नियमित रूप से उपयोग करता हूँ। विशेष रूप से जब मैं एक प्रोग्राम लिख रहा हूँ या बग की तलाश कर रहा हूँ। यह एक उपयोगी ऑपरेशन है।"
GO TO FULL VERSION