Ads

Monday, March 23, 2015

জাভা প্রোগ্রামিং :: জাভাতে this অপারেটর এর ব্যবহার (টিউন-১২)

আসসালামু আলাইকুম,আশা করি সবাই ভাল আছেন। আজ বেশ অনেক দিন পর লিখতে বসলাম।পড়াশুনার চাপে লিখতে বস্তে পারছিলাম না।যাই হোক কাজের কথায় আশি।আজকে আমরা যে জিনিস গুলি শিখব তাহল this অপেরেটর এর ব্যবহার ।

প্রথমেই আসি this অপারেটর  নিয়ে আলোচনায়। তার আগে আমরা নিচের প্রোগ্রামটি দেখিঃ

public class facebook {
	int x;
	int y;
	int z;

	facebook(int x,int y,int z)
	{
		x=x;
		y=y;
		z=z;
	}
	void show_me()
	{
		System.out.println("The value of x is: "+x + " value of y is:" +y +" value of z is: "+z );
	}
}

এখানে facebook নামক একটি ক্লাসে কিছু কোড লিখা হয়েছে। এবার আবার নিচের কোডটি দেখুন।

public class microsoft {
	public static void main(String[] args)
	{

		facebook ob3=new facebook(10,15,20);

		ob3.show_me();
	}
}

এবার কোড টি রান করালে নিচের মত আউটপুট দেখতে পারবেঃ

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 ক্লাসের প্রোগ্রামটি দেখিঃ

public class facebook {
	int x;
	int y;
	int z;

	facebook(int x,int y,int z)
	{
		this.x=x;
		this.y=y;
		this.z=z;
	}
	void show_me()
	{
		System.out.println("The value of x is: "+x + " value of y is:" +y +" value of z is: "+z );
	}
}

দেখতেই পাচ্ছি যে কন্সট্রাক্টরে x,y,z এর মান লোকাল ভেরিয়েবল এ কিভাবে বসানো হয়েছে। এখানে this.x বলতে বুঝানো হয়েছে যে এই ক্লাসের x সোজা কথায় this বলতে বুঝায় এই ক্লাসের একটি রিপ্রেজেন্টেটিভ।ঠিক একি ভাবে this.y বলতে বুঝায় এই ক্লাসের y.

আজ এ পর্যন্তই।সবাই ভাল থাকবেন।

No comments:

Post a Comment