सभी ऑब्जेक्ट क्लास विधियाँ, साथ ही toString () विधि - 1 पर अधिक

"हाय, अमीगो!"

"नमस्ते!"

"आज हम ऑब्जेक्ट क्लास का अध्ययन करने जा रहे हैं।
आप पहले ही इसका सामना कर चुके हैं, और आप जानते हैं कि ऑब्जेक्ट सभी वर्गों के लिए आधार वर्ग है। इसमें व्यावहारिक रूप से कोई डेटा नहीं है, लेकिन इसकी कई विधियाँ हैं।"

"इसे विधियों की आवश्यकता क्यों है? क्या कोई वास्तव में ऑब्जेक्ट क्लास के उदाहरण बनाता है?"

"इसे इस तरह से देखें: ऑब्जेक्ट क्लास में विधियाँ सभी वर्गों में समान हैं। दूसरे शब्दों में, जावा के रचनाकारों ने कई विधियों की पहचान की, जो उनकी राय में, प्रत्येक वर्ग में होनी चाहिए और उन्हें ऑब्जेक्ट क्लास में जोड़ दिया।"

"और जब बहुरूपता (व्युत्पन्न वर्गों में वस्तु वर्ग के तरीकों को ओवरराइड करने की क्षमता) के साथ जोड़ा जाता है, तो यह एक बहुत शक्तिशाली उपकरण बन जाता है।"

"आइए देखें कि ये तरीके क्या हैं:"

तरीका विवरण
public String toString()
वस्तु का एक स्ट्रिंग प्रतिनिधित्व रिटर्न करता है।
public native int hashCode()
public boolean equals(Object obj)
वस्तुओं की तुलना करने के लिए उपयोग की जाने वाली विधियों की एक जोड़ी।
public final native Class getClass()
एक विशेष वस्तु लौटाता है जो वर्तमान वर्ग का वर्णन करता है।
public final native void notify()
public final native void notifyAll()
public final native void wait(long timeout)
public final void wait(long timeout, intnanos)
public final void wait()
विभिन्न धागों से किसी वस्तु तक पहुँच को नियंत्रित करने के तरीके। थ्रेड सिंक्रोनाइज़ेशन के लिए।
protected void finalize()
यह विधि आपको देशी गैर-जावा संसाधनों को रिलीज़ करने देती है: फ़ाइलें, स्ट्रीम आदि बंद करें।
protected native Object clone()
यह विधि आपको किसी ऑब्जेक्ट को क्लोन करने देती है: ऑब्जेक्ट का डुप्लिकेट बनाता है।

"इन विधियों को 6 समूहों में विभाजित किया जा सकता है। आप उनमें से कुछ से पहले से ही परिचित हैं, और हम बाद के पाठों में बाकी से परिचित होंगे।"

"किसी कारण से, मुझे यहाँ कुछ भी उपयोगी नहीं दिख रहा है।"

"अमीगो! यदि ये तरीके महत्वपूर्ण नहीं होते, तो वे उन्हें हर एक वस्तु में नहीं जोड़ते! इसलिए, मैं आपको सलाह दूंगा कि ये क्या हैं और इनकी आवश्यकता क्यों है, इस पर अधिक ध्यान दें। यदि वे आपको महत्वहीन लगते हैं , तो आप या तो कुछ नहीं समझ पाए या कुछ ठीक से समझ नहीं पाए।"

"ठीक है। मैं ध्यान से सुनूंगा।"

"चलिए toString() विधि से शुरू करते हैं।

"यह विधि आपको किसी वस्तु का पाठ विवरण प्राप्त करने देती है। वस्तु वर्ग में इसका कार्यान्वयन बहुत सरल है:"

return getClass().getName() + "@" + Integer.toHexString(hashCode());

"getClass () और हैशकोड () भी ऑब्जेक्ट क्लास के तरीके हैं।
इस विधि को कॉल करने से आमतौर पर इस तरह का परिणाम मिलता है:"

java.lang.Object@12F456

"और ऐसा विवरण क्या अच्छा है?"

"यह विवरण आपको उस वस्तु के वर्ग को जानने देता है जिस पर विधि को बुलाया गया था। आप वस्तुओं के बीच अंतर भी कर सकते हैं; अलग-अलग वस्तुओं में @ प्रतीक के बाद अलग-अलग अंक होंगे।"

"लेकिन इस पद्धति का वास्तविक मूल्य कहीं और है। अधिक विस्तृत या उपयुक्त वस्तु विवरण वापस करने के लिए इस विधि को किसी भी वर्ग में अधिलेखित किया जा सकता है।"

"लेकिन वहाँ अधिक है। क्योंकि आप प्रत्येक वस्तु का एक पाठ प्रतिनिधित्व प्राप्त कर सकते हैं, जावा ने आपके लिए वस्तुओं में 'जोड़ने' के लिए समर्थन लागू करना संभव बना दिया है। इसे देखें:
"

कोड वास्तव में क्या होता है
int age = 18;
System.out.println("Age is " + age);

String s = String.valueOf(18);
String result = "Age is " + s;
System.out.println(result);
Student st = new Student("Vincent");
System.out.println("Student is " + st);

Student st = new Student("Vincent");
String result = "Student is " + st.toString();
System.out.println(result);
Car car = new Porsche();
System.out.println("My car is " + car);

Car car = new Porsche();
String result = "My car is " + car.toString();
System.out.println(result);

"हाँ, मैं इसे नियमित रूप से उपयोग करता हूँ। विशेष रूप से जब मैं एक प्रोग्राम लिख रहा हूँ या बग की तलाश कर रहा हूँ। यह एक उपयोगी ऑपरेशन है।"