در جاوا، کلاس Object ریشه سلسلهمراتب کلاسها است.
هر کلاسی در جاوا بهطور ضمنی (اگر بهصورت صریح از کلاس دیگری ارثبری نکند)، از کلاس java.lang.Object ارث میبرد.
این یعنی همه اشیاء جاوا به متدهای تعریفشده در کلاس Object دسترسی دارند.
در بستهبندی java.lang تعریف شده است.
تمام کلاسهای جاوا بهصورت مستقیم یا غیرمستقیم از Object ارث میبرند.
مجموعهای از متدهای پایهای را فراهم میکند که همه اشیاء به ارث میبرند.
کلاس Object شامل ۱۱ متد از پیش تعریف شده است.
i. toString():
شیء را به یک رشته (String) تبدیل میکند.
میتوان آن را بازنویسی (Override) کرد تا اطلاعات معنادارتری ارائه دهد.
ii. hashCode():
یک عدد صحیح یکتا (hash code) برای شیء بازمیگرداند.
در مجموعههایی مانند HashMap برای بازیابی سریع استفاده میشود.
iii. equals(Object obj):
شیء فعلی را با شیء داده شده برای برابری مقایسه میکند.
میتوان برای تعریف مقایسههای سفارشی بازنویسی کرد.
iv. clone():
یک کپی از شیء فعلی ایجاد میکند.
برای کارکرد صحیح باید اینترفیس Cloneable پیادهسازی شده باشد.
v. finalize():
درست قبل از جمعآوری زباله (garbage collection) شیء فراخوانی میشود.
برای پاکسازی استفاده میشود، اما معمولاً استفاده از آن توصیه نمیشود.
vi. getClass():
شیء کلاس (Class object) مربوط به شیء را بازمیگرداند.
برای عملیات Reflection کاربرد دارد.
vii. notify():
یک رشته (thread) که در انتظار مانیتور این شیء است را بیدار میکند.
viii. notifyAll():
تمام رشتههایی که در انتظار مانیتور این شیء هستند را بیدار میکند.
ix. wait():
باعث میشود رشته فعلی منتظر بماند تا رشته دیگری notify() یا notifyAll() را فراخوانی کند.
x. wait(long timeout):
باعث میشود رشته فعلی به مدت زمان مشخصی یا تا زمان بیدار شدن، منتظر بماند.
xi. wait(long timeout, int nanos):
مشابه wait با تایماوت طولانیتر است، اما دقت زمان انتظار را با نانوثانیه افزایش میدهد.
⚡️ @javapro_ir✈️ @group_javapro