सर्व ऑब्जेक्ट क्लास पद्धती, तसेच toString() पद्धतीवर अधिक - 1

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

"हाय!"

"आज आपण ऑब्जेक्ट क्लासचा अभ्यास करणार आहोत.
तुम्हाला ते आधीच आले आहे, आणि तुम्हाला माहिती आहे की ऑब्जेक्ट हा सर्व वर्गांसाठी बेस क्लास आहे. यात व्यावहारिकदृष्ट्या कोणताही डेटा नाही, परंतु त्यात अनेक पद्धती आहेत."

"त्याला पद्धतींची गरज का आहे? वस्तु वर्गाची उदाहरणे कोणी तयार करतात का?"

"याकडे या प्रकारे पहा: ऑब्जेक्ट क्लासमधील पद्धती सर्व वर्गांमध्ये समान आहेत. दुसऱ्या शब्दांत, Java च्या निर्मात्यांनी अनेक पद्धती ओळखल्या ज्या त्यांच्या मते, प्रत्येक वर्गात असायला हव्यात आणि त्या ऑब्जेक्ट क्लासमध्ये जोडल्या."

"आणि पॉलीमॉर्फिझम (व्युत्पन्न वर्गांमध्ये ऑब्जेक्ट क्लासच्या पद्धती ओव्हरराइड करण्याची क्षमता) सह एकत्रित केल्यावर, हे एक अतिशय शक्तिशाली साधन बनते."

"या पद्धती काय आहेत ते पाहूया:"

पद्धत वर्णन
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() आणि hashCode() या देखील ऑब्जेक्ट क्लासच्या पद्धती आहेत.
या पद्धतीला कॉल केल्याने सामान्यत: असे परिणाम मिळतात:"

java.lang.Object@12F456

"आणि असे वर्णन काय चांगले आहे?"

"हे वर्णन तुम्हाला ऑब्जेक्टच्या क्लासची माहिती देते ज्यावर पद्धत कॉल केली गेली होती. तुम्ही ऑब्जेक्ट्समध्ये फरक देखील करू शकता; @ चिन्हानंतर वेगवेगळ्या ऑब्जेक्ट्समध्ये भिन्न अंक असतील."

"परंतु या पद्धतीचे खरे मूल्य इतरत्र आहे. अधिक तपशीलवार किंवा योग्य वस्तूचे वर्णन परत करण्यासाठी ही पद्धत कोणत्याही वर्गात अधिलिखित केली जाऊ शकते."

"परंतु बरेच काही आहे. कारण तुम्हाला प्रत्येक ऑब्जेक्टचे मजकूर प्रतिनिधित्व मिळू शकते, Java ने तुम्हाला ऑब्जेक्ट्समध्ये 'स्ट्रिंग्स' जोडण्यासाठी समर्थन लागू करणे शक्य केले आहे. ते पहा
:"

कोड खरोखर काय होते
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);

"हो, मी हे नियमितपणे वापरतो. विशेषत: जेव्हा मी प्रोग्राम लिहित असतो किंवा बग शोधत असतो. हे एक उपयुक्त ऑपरेशन आहे."