"হ্যালো, অ্যামিগো! আপনি ইতিমধ্যেই ইন্সট্যান্সফ অপারেটরের সাথে দেখা করেছেন। আজ আমি আপনাকে বলব কিভাবে এবং কোথায় এটি ব্যবহার করা যেতে পারে। instanceof একটি খুব সহজ এবং দক্ষ অপারেটর।"

"এটি একটি বিজ্ঞাপনের মত শোনাচ্ছে!"

"এটি সত্যিই খুব সহজ। এটি এভাবে ব্যবহার করা হয়: «বস্তু» দৃষ্টান্ত «শ্রেণী» ।"

এটি একটি বস্তু একটি নির্দিষ্ট শ্রেণীর একটি উদাহরণ কিনা তা পরীক্ষা করে। এটা ব্যাখ্যা করার চেয়ে সহজ। এই উদাহরণ দেখুন:

কোড বর্ণনা
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt সত্য হবে . ভেরিয়েবল o দ্বারা উল্লেখ করা বস্তুটি পূর্ণসংখ্যা শ্রেণীর একটি উদাহরণ।
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt মিথ্যা হবে । ভেরিয়েবল o দ্বারা উল্লেখ করা বস্তুটি পূর্ণসংখ্যা শ্রেণীর একটি উদাহরণ নয়। এটি একটি স্ট্রিং অবজেক্ট।
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS সত্য হবে । ভেরিয়েবল o দ্বারা উল্লেখ করা বস্তুটি FileInputStream ক্লাসের একটি উদাহরণ।

"হ্যাঁ, এটা খুব সহজ।"

"এই অপারেটরটি উত্তরাধিকারের জন্যও অ্যাকাউন্ট করে। এটি পরীক্ষা করে দেখুন।"

কোড বর্ণনা
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
এখানে আমাদের তিনটি শ্রেণির ঘোষণা রয়েছে: প্রাণী, বিড়াল এবং বাঘ। বিড়াল উত্তরাধিকারসূত্রে প্রাণী। এবং টাইগার উত্তরাধিকারসূত্রে ক্যাট পেয়েছে।
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat সত্য  হবে  .
টাইগার সত্যি  হবে  ।
প্রাণী সত্য  হবে  .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat মিথ্যা  হবে .
টাইগার মিথ্যা  হবে  ।
প্রাণী সত্য  হবে  .

এবং এমনকি ইন্টারফেস:

কোড বর্ণনা
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
দুটি ক্লাস তৈরি করুন: বিড়াল, টমক্যাট এবং চলন্ত ইন্টারফেস
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat সত্য  হবে  .
isMoveable সত্য  হবে  .
isTom সত্য  হবে  .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat সত্য  হবে  .
isMoveable মিথ্যা  হবে  .
isTom মিথ্যা  হবে  .

অপারেটরের দৃষ্টান্তটি এইরকম দেখাচ্ছে: B এর একটি উদাহরণ

অন্য কথায়, অপারেটরের ইন্সট্যান্স সত্যি হবে যদি:

1) ভেরিয়েবল একটি বি টাইপের একটি বস্তুর একটি রেফারেন্স সংরক্ষণ করে

2)  পরিবর্তনশীল একটি বস্তুর একটি রেফারেন্স সংরক্ষণ করে যার শ্রেণী  B উত্তরাধিকারসূত্রে প্রাপ্ত হয়

3)  পরিবর্তনশীল একটি বস্তুর একটি রেফারেন্স সংরক্ষণ করে যা ইন্টারফেস  B প্রয়োগ করে

অন্যথায়, অপারেটরের উদাহরণ মিথ্যা ফিরে আসবে ।

"বুঝলাম। তাহলে এটার দরকার কেন, ঋষি চাচা?"

"এলি আজকে সে সম্পর্কে আপনাকে বলতে যাচ্ছে। এটি সত্যিই একটি চমৎকার অপারেটর। আপনি আজ এটি সম্পর্কে নিশ্চিত হবেন।"