Search Here

Saturday, April 26, 2014

জাভা প্রোগ্রামিং [পর্ব-১০] :: কন্সট্রাক্টর

আজকে আমরা জাভাতে ক্লাস এর কন্সট্রাক্টর নিয়ে আলাপ আলোচনা করব।
কন্সট্রাক্টর হল কোন ক্লাসের মেম্বার ভেরিয়েবল গুলোর মান বসানোর জন্য ব্যবহ্রত একটি ফাংশন। সাধারনত এর সাহায্যে মেম্বার ভেরিয়েবল এর মান বসানো হয়। আমরা যখন কোন ক্লাসের অব্জেক্ট তৈরি করি তখন আর কোন ফাংশন কল হয় না,কোন ভেরিয়েবল এ মান বসানো হয়না,শুধু কন্সট্রাক্টর কল হয় তাই এই কন্সট্রাক্টর এর মধ্যে ভেরিয়েবল গুলোর মান বসানো হয়।
কন্সট্রাক্টর একটা ফাংশন। শুধু অন্যান্য ফাংশন এর সাথে এর পার্থক্য হচ্ছে কন্সট্রাক্টর এর নাম অবশ্যই তার ক্লাসের নামে হবে। যেমন আপনার ক্লাস এর নাম যদি myclass হয় তাহলে আপনার কন্সট্রাক্টর এর নাম ও myclass হতে হবে।
এখন আসুন নিচের প্রোগ্রামটি দেখে নেইঃ
"
public class facebook {
    public String name;
    public facebook(String myname)
    {
        name=myname;
    }
   

    public void show_name()
    {
        System.out.printf("My name is %s \n"+name);
    }
}"
এখানে facebook নামক ক্লাস এর facebook নামক কন্সট্রাক্টর তৈরি করা হয়েছে।এবং সেখানে ভেরিয়েবল “name” এর মান বসানো হয়েছে।পরে আরেকটি মেথড Show_name() এর সাহায্যে এর মান  আউটপুট করা হয়েছে।
এবার আসুন ২য় আরেকটি ক্লাস এর প্রোগ্রাম এর দিকে লহ্ম্য করি যেখানে main() মেথড লেখা আছেঃ
"
public class microsoft {
    public static void main(String[] args)
    {
        facebook fb=new facebook("Avy");
        fb.show_name();
    }
} "
এখানে প্রথমে facebook ক্লাস এর একটি অব্জেক্ট তৈরি করা হয়েছে। খেয়াল করলে দেখবেন আমি এখানে অবজেকট তৈরির সময় প্যারামিটার হিসাবে আমার নাম দিয়েছি। এই মানটাই কন্সট্রাক্টর এর name ভেরিয়েবলে গিয়ে বসবে। ৬ষ্ঠ লাইনের দিকে তাকালে আমরা দেখতে পারব যে facebook ক্লাস এর যেই অবজেক্ট আমরা তৈরি করে ছিলাম তার সাহায্যে facebook ক্লাসের show_name()  মেথড কে কল করা হচ্ছে। এবার ২য় ক্লাস থেকে প্রোগ্রামকে রান করালে নিচের মত আউটপুট পাওয়া যাবেঃ
My name is Avy
আরেকটি কথা জেনে রাখা ভাল,আমরা যত গুলি ক্লাসই তৈরি করি না কেন আমাদের প্রোগ্রাম সবসময় রান করাতে হবে সেই ক্লাস থেকে যেখানে আমাদের main() মেথড আছে।যেমন আমাদের এখানে আছে microsoft ক্লাস এ তাই আমরা microsoft ক্লাস থেকে প্রোগ্রামকে রান করাবো।

No comments:

Post a Comment