Tuesday, March 27, 2018

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং - ৩ঃ কনস্ট্রাক্টর



কোন কিছু Initilize করার জন্য বার বার setName, setAge কল করতে হচ্ছে। এরকম যদি ১০০ টা ভেরিয়েবল ইনিসিয়ালিজ করার দরকার পড়ে তাহলে কি তুমি বার বার set মেথড লিখবা? কখনোই না বরং এটা অনেক সময় সাপেক্ষও বটে! সেক্ষেত্রে আমাদের এমন কিছু একটার প্রয়োজন যেটায় অব্জেক্ট ক্রিয়েট করার সাথে সাথেই এগুলো বা মেন্ডেটরি জিনিসগুলো Initilize করে দিবে। সেজন্য আমরা Human ক্লাসের ভেতরেই একটা কনস্ট্রাক্টর লিখে দিবো-

কনস্ট্রাক্টরের বৈশিষ্ট্যঃ কনস্ট্রাক্টর অনেকটা ফাংশনের মত। তবে এর কোন রিটার্ন টাইপ থাকেনা এবং এর নাম ঐ ক্লাসের নাম অনুযায়ী হয়ে থাকে। নীচের প্রোগ্রামটি লক্ষ্য করিঃ

 public class Human {  
      private String name;  
      private int age;  
      public Human(String Name, int Age)  
      {  
           name = Name;  
           age = Age;  
      }  
 }  

মেইন ফাংশন থেকে এখন এইটুকু করে দিলেই কাজ শেষ-
 public class StartUp {  
      public static void main(String[] args) {  
           Human aHuman = new Human("Rakib", 23);  //creating object  
      }  
 }  

কনস্ট্রাক্টরের কাজই হল  প্রয়োজনীয় মেমরি তৈরী করে অব্জেক্টে পাঠিয়ে দেওয়া এবং ভেরিয়েবলগুলো ইনিসিয়ালাইজ করা। যদি প্রোগ্রামার কোন কনস্ট্রাক্টর না লিখে তাহলে সিস্টেম ডিফল্ট কন্সট্রাক্টর কল করে।

ডিফল্ট কন্সট্রাক্টরঃ আমরা যদি কোন কনস্ট্রাক্টর তৈরী না করি তাহলে সিস্টেম ডিফল কন্সট্রাক্টর ইউজ করে। ডিফল্ট কন্সট্রাক্টর হচ্ছে এরকম-

 public Human()  
      {  
      }  

new অপারেটরঃ এটা একটি জাভা অপারেটর। এই অপারেটরের সাহায্যেই কন্সট্রাক্টর অব্জেক্ট তৈরী করে। এটা দ্বারা কম্পাইলারকে বুঝানো হয় যে আমরা নতুন একটি অব্জকেট ক্রিয়েট করতে চাচ্ছি। 

2 comments: