کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Java – کلاس Object در Java

آموزش Java – کلاس Object در جاوا

کلاس Object کلاس پدر تمامی کلاس ها در جاوا می باشد. به عبارت دیگر، بالاترین کلاس در سلسله مراتب وراثت کلاس Object است که تمامی کلاس های جاوا از آن مشتق می شوند.


کلاس Object برای شرایطی مورد استفاده قرار می گیرد که توسعه دهنده نوع آبجکت مورد نظر را نمی داند.


اگر به خاطر داشته باشید متغیر اشاره گر به کلاس پدر (آبجکت از جنس کلاس پدر) می تواند آبجکت کلاس فرزند را در خود جای داده و به آن اشاره کند که در مباحث قبلی از آن تحت عنوان upcasting یا تبدیل کلاس فرزند به پدر یاد کردیم.


یک مثال ساده را در نظر بگیرید. فرض کنید متدی به نام getObject() وجود دارد که در خروجی یک آّبجکت برمی گرداند. این آّبجکت می تواند از جنس کلاس Employee، Student و غیره ... باشد. می توان با استفاده از متغیری از جنس کلاس Object، آبجکت خروجی متد نام برده را ذخیره کرده و به آن اشاره کنیم. مثال:


Object obj=getObject();//we don't know what object will be returned from this method  

کلاس پایه ی Object تعدادی متد (قابلیت و رفتار) پرکاربرد و معمول را در اختیار تمامی کلاس هایی که از آن مشتق می شوند، قرار می دهد. از جمله ی این متدها می توان به متد مربوط به مقایسه، کپی و اطلاع رسانی به یک آبجکت نام برد.


آموزش Java

متدهای کلاس Object


متد مربوطه
شرح عملکرد
public final Class getClass()
کلاس آبجکت را برمی گرداند. از خروجی این متد می توان برای بازیابی metadata و اطلاعات بیشتر دربا ره ی این کلاس استفاده کرد.
public int hashCode()
شماره کد (hashcode) آبجکت هش یا رمزنگاری شده را برمی گرداند.
public boolean equals(Object obj)
دو آّبجکت را با هم مقایسه می کند.
protected Object clone() throws CloneNotSupportedException
یک کپی عینی از آبجکت ایجاد کرده و در خروجی برمی گرداند.
public String toString()
یک آبجکت را به رشته تبدیل کرده و آن رشته را در خروجی برمی گرداند.
public final void notify()
Thread (که در monitor یا قفل ناظر بر روی منبع مورد نظر در حال انتظار است) را بیدار کرده و به آن اجازه می دهد که به کار خود ادامه دهد.
public final void notifyAll()
تمامی thread هایی که در monitor (قفل اعمال شده بر روی منبع مورد نظر) در حالت انتظار هستند را بیدار کرده و پس از برداشتن قفل از روی منبع، به آن ها اجازه می دهد به کار خود ادامه دهند.
public final void wait(long timeout)throws InterruptedException
این تابع سبب می شود thread جاری تعداد مشخصی میلی ثانیه را صبر کرده و قفل اعمال شده بر روی آبجکت را بردارد تا thread دیگر به کار خود ادامه دهد و از منبع مورد نظر استفاده کند (توابع notify و notifyAll() را صدا بزند).
public final void wait(long timeout,int nanos)throws InterruptedException
سبب می شود thread جاری تعداد مشخصی میلی ثانیه و نانوثانیه صبر کند تا thread دیگری بیدار شود و به کار خود ادامه دهد (متد invoke() یا notifyAll() را صدا بزند)
public final void wait()throws InterruptedException
سبب می شود thread جاری صبر کرده و thread دیگری بیدار شود و به کار خود ادامه دهد (متد notify() یا notifyAll() را صدا بزند.)
protected void finalize()throws Throwable
این متد را مدیریت کننده ی حافظه یا garbage collector قبل از اینکه آبجکت مورد نظر را از حافظه حذف کند، صدا می زند.

در مباحث بعدی به تفصیل درباره ی متدهای فوق شرح خواهیم داد.

1396/07/10 7709 2038
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...