அனைத்து ஆப்ஜெக்ட் கிளாஸ் முறைகளும், மேலும் 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() மற்றும் hashCode() ஆகியவையும் ஆப்ஜெக்ட் வகுப்பின் முறைகள் ஆகும்.
இந்த முறையை அழைப்பது பொதுவாக இது போன்ற முடிவை உருவாக்கும்:"

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);

"ஆமாம், நான் இதைத் தொடர்ந்து பயன்படுத்துகிறேன். குறிப்பாக நான் ஒரு நிரலை எழுதும்போது அல்லது பிழைகளைத் தேடும்போது. இது ஒரு பயனுள்ள செயல்பாடு."