জাভা ডিফল্ড প্যারেন্ট ক্লাস এবং এর মেথডস


Posted on 3 Jun 2020, 15:19:01


জাভাতে সমস্ত ক্লাস একটা ক্লাসকে ইনহেরিট করে যার ফলে প্রতিটা জাভা ক্লাস এ কিছু কমন মেথড থাকে

Object ক্লাসকে জাভার অন্য সব ক্লাস ইনহেরিট করে। ফলে জাভাতে সব ক্লাসে নিচের মেথডগুলা  থাকে 

  • boolean equals(Object obj)
  • int hashCode()
  • String toString()
  • protected void finalize()
  • Class<?> getClass()
  • protected Object clone()
  • void notify()
  • void notifyAll()
  • void wait()
  • void wait(long timeout)
  • void wait(long timeout, int nanos)

equals()  এবং hashCode() কি এবং কেন ব্যাবহার করা হয়? 

  • equals মেথড ব্যাবহার করা হয় দুইটা অবজেক্ট এর একুলিটি চেক করার জন্য। দুইটা অবজেক্ট তখনি সমান হবে যদি equals ট্রু হয় এবং hashCode একই হেশ কোড জেনারেট করে। 
  • তাই যদি কখনো equals ওভার রাইড করা হয় তাহলে অবশ্যই অবশ্যই hashCode ওভার রাইড করতে হবে 


বাকি মেথড এর ব্যাখ্যা নিমরুপ

toString():  অনেক সময় আমাদের একটা অবজেক্টের অবস্থা দেখতে হয় বিভিন্ন কারণে। অবজেক্টের সব প্রপার্টি ঠিক মত বসছে কিনা।  অবজেক্ট ডিবাগ করার জন্য।  তাই একটা অবজেক্টের স্ট্রিং রিজরজেন্টেশন দেখার জন্য toString মেথড ওভাইরাইড করা হয়ে থাকে। 

finalize(): গারবেজ কালেক্টর যখন নিশ্চিত হয় যে একটা অবজেক্টের আর কোন রেফারেন্স নাই তখন ওই অবজেক্টের  finalize  মেথড কল করে. 

getClass(): একটা রানিং  অবজেক্টের ক্লাসকে পাওয়ার জন্য এই মেথড কল করা হয় 


void notify(): এই মেথড ব্যাবহার করা হয় অবজেক্টে একটা থ্রেডের ওয়েটিং থেকে বের করে আনার জন্য 


void notifyAll(): এই মেথড ব্যাবহার করা হয় অবজেক্টে সব  থ্রেডের ওয়েটিং থেকে বের করে আনার জন্য 


void wait(): কারেরন্ট থ্রেডকে ওয়েট করতে বলা হয় যতক্ষণ না অন্য থ্রেড এই অবজেক্টে notify বা notifyAll করে। 


void wait(long timeout): অনেকটা wait এর মতোই কিন্তু টাইম দেয়া আছে।  যদি কোন থ্রেড notify বা notifyAll না করে তবে টাইম শেষ হলে তার ওয়েট শেষ হয়ে যাবে।