সেরা প্রোগ্রামিং জাভা প্রোগ্রামিং [পর্ব-১২] :: জাভাতে this অপারেটর এর ব্যবহার

টিউন বিভাগ জাভা
প্রকাশিত

সেরা প্রোগ্রামিং জাভা প্রোগ্রামিং

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

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

<pre>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 );
	}
}</pre>

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

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

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

		ob3.show_me();
	}
}</pre>

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

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

<pre>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 );
	}
}</pre>

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

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

Level 0

আমি wahid63। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 16 টি টিউন ও 40 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

besh valo, ami java valoi practice kore jachhi….. apnar sahajjer jonno dhonno-bad.

Level 0

আপনার টিউনগুলোর জন্য ধন্যবাদ। আপনার এক নং দুই নং টিউন দেখে আপনার দেয়া এড্রেস থেকে আমি ইনস্টল করলাম jdk-7u17-windows-i586_2।এবং eclipse-java-helios-SR2-win32 আমি অফিস থেকে সংগ্রহ করেছি। jdk সেটআপ দিলাম ।এড রিমুভ প্রগরামে- java 7 Update 17 and Java SE development Kit 7 Update 17 lদুইটি প্রগরাম ইনস্টল হয়েছে দেখায়। কমান্ড প্রমোট থেকে জাভা লিখলে এরর দেখায় মানে জাভা লিখলে যে রকম আপনি দেখিয়েছিলেন সেরকম আসে না ।তারমানে কি আমি জেডিকে সেটআপ দিতে পারিনি? নাকি eclips টা আপডেটেট না? eclips সেট আপ দিতে গেলে বলে A Java Runtime Environment(JRE) or Java evelopmet Kit must be Available in order to Run Eclipse. No Java virtual machine was found after Searching the following Locations: শুধু কি সেটআপ দিতে না পারার জন্য আপনার এত সুন্দর টিউন গলো আমি ফলো করতে পারব না? তাই আপনার হেল্প চাই।দরকার হলে অপারেটিং সিস্টেম নতুন করে সেট আপ দিব।আমার পিসি কনফিগারেশন হলো কোর টু ডু ২.৮০ গি হার্জ। রেম 4 জিবি।৩২ বিট ও এস।

    Level 0

    @S Rahman: ভাই প্রথমেই আপনাকে ধন্যবাদ জানিয়ে নিচ্ছি। আপনার jdk ইন্সটল এর পর আপনাকে ইনভাইরন্মেন্ট ভেরিয়েবল এর পাথ ঠিক করতে হবে। এর জন্য আপনাকে আমার ২য় টিউনটি দেখতে হবে। আর যদি তাতেও না হয় তাহলে আপনাকে আবার jdk আনইন্সটল দিয়ে আবার ইন্সটল দিন। হয়ে যাবে ইনশাল্লাহ।আর eclipse একটু কস্ট করে eclipse classic টা নামিয়ে নিন।আর eclipse একটা জীপ ফাইল তাই ইন্সটল দেয়ার কিছু নাই।,শুধু আঞ্জিপ করলেই হবে…

Level 0

thanks bro java sekhanor jonno amon akjon shikkhok chassilam apni onek upokar korlen chalea jan bhi amra onek upokrito hocchi.

আচ্ছা ভাই ‘pre’ term ta kno r kivabe nicchen ???