প্রথমেই আসি this অপারেটর নিয়ে আলোচনায়। তার আগে আমরা নিচের প্রোগ্রামটি দেখিঃ
এখানে facebook নামক একটি ক্লাসে কিছু কোড লিখা হয়েছে। এবার আবার নিচের কোডটি দেখুন।
এবার কোড টি রান করালে নিচের মত আউটপুট দেখতে পারবেঃ
The value of x is: 0 value of y is:0 value of z is: 0
আসলে
আমরা যেই প্রোগ্রামটি তৈরি করেছি তার কাজ হলঃপ্রথমে facebook ক্লাস তার
জন্য একটি কন্সট্রাক্টর ডিক্লায়ার করেছে। এবং কন্সট্রাক্টর এ যেই
ভেরিএয়েবল গুলি আসছে তা প্রিন্ট করছে show_me() ফাংশন। আর Microsoft ক্লাস
facebook ক্লাসের একটি অব্জেক্ট তৈরি করেছে। অব্জেক্ট তৈরির সময়
প্যারামিটার হিসাবে কিছু ভ্যালু পাঠানো হয়েছে। পরে এই অব্জেক্ট এর
সাহায্যে show_me() ফাংশন কে কল করা হয়েছে। হিসাবে আউটপুট দেখানোর কথা
আমাদের যেই ভ্যালুগুলি আমরা প্যারামিটার হিসাবে অব্জেক্ট এর সাথে পাস করেছি
তা কিন্তু x,y,z তিনটির ভ্যলুই ০ দেখাচ্ছে। কারন টা কি বলতে পারবেন??
আসলে
এখানে facebook কন্সট্রাক্টরে আরগুমেন্ট হিসাবে যেই ভেরিয়েবল ব্যবহার করা
হয়েছে আবার লোকাল ভেরিয়েবলেও একি জিনিস ব্যাবহার করা হয়েছে। তাই
x=x,y=y,z=z বলতে কি বুঝানো হচ্ছে তা কন্সট্রাক্টর বুঝতে পারছেনা। তাই মান
হিসাবে Garbage ভ্যালু দেখচ্ছে।
এর থেকে পরিত্রান এর উপায় হল this অপারেটর এর ব্যবহার।এবার নিচের facebook ক্লাসের প্রোগ্রামটি দেখিঃ
দেখতেই পাচ্ছি যে কন্সট্রাক্টরে x,y,z এর মান লোকাল ভেরিয়েবল এ কিভাবে
বসানো হয়েছে। এখানে this.x বলতে বুঝানো হয়েছে যে এই ক্লাসের x সোজা কথায়
this বলতে বুঝায় এই ক্লাসের একটি রিপ্রেজেন্টেটিভ।ঠিক একি ভাবে this.y
বলতে বুঝায় এই ক্লাসের y.
আজ এ পর্যন্তই।সবাই ভাল থাকবেন।



No comments:
Post a Comment