-->

Constructor in java সম্পূর্ণ বাংলা ভাষায় শিখুন | Java Programming Part -10

3 minute read

 Constructor in java সম্পূর্ণ বাংলা ভাষায় শিখুন | Java Programming Part -10

Constructor in java
Constructor in java

Constructor

Class-র একটি member function হল Constructor। যে class-র ভিতর Constructor-র create করা হয়, সেই class-র নামেই Constructor-র নাম রাখা হয়। সাধারণভাবে, class-র ভিতরে function create করা হয়, একটি function-র নাম class-র নামে রাখা হল, আর এটাই construction। Constructor-র কোনো return type হয় না (এমনকি void-ও না )। সাধারণভাবে, সব function-র return type হয়, শুধু construction-র নয়। 
উদাহরণ:
public class Box
{
    private int length, width, height. //Variables
    public Box( ){...} //Constructor
}

আপনি যদি চান যখন function-টি run হয়, তখন কিছু value initialization করবেন। যথা-
    
public Box( )
{
    length = 10, width = 8, height = 4;
}
Construction রান তখনি হবে যখন class-র ভিতরে  main function থাকবে। চলুন তবে main function-টিকে create করে নিন । 
public class Box
{
    private int length, width, height.
    public Box( )
    {
        length = 10, width = 8, height = 4;
    }
    public static void main(String args[ ]){...}
}

এবার Class-র একটি object create করে নিন। 
public static void main(String args[ ])
{
    Box b1 = new Box( );
}

Class-র object create হলে, constructor call হয়। Constructor-র জন্য Object-র reference-র প্রয়োজন পরে না।

Constructor -কে কেন create করা হয়?

Constructor একটি বিশেষ function যা object-কে object-র মতো করে কাজ করার জন্য নিয়ন্ত্রণ করে। যেকোনো Object oriented program-এ 'object' বাস্তব পৃথিবীর entity-কে উপস্থাপন করে। 
উদাহরণ :
Box b1 = new Box( );
এই যে object create হয়েছে, এটি আপনার বাড়িতে কোনো বাক্সকে represent করে।  শুধু প্রয়োজন বাক্সটির  lengthwidth ও  height-কে initialization করা। 
অর্থাৎ, কোনো object-কে শুধু memory consumption করা নয় বরং object-র value সঠিকভাৱে initialize হতে হবে তবেই সেটি বাস্তব world-র সঙ্গে related করতে পারবে। আর value initialization-র কাজ করে constructor 

আমরা যে constructor create ও value initialize করেছি-
public Box( )
    {
        length = 10, width = 8, height = 4;
    }
Constructor -টি নিচের object-কে real world-র সঙ্গে connect করে। 
Box b1 = new Box( );

প্রশ্ন: প্রতিটি বক্সের জন্য কি আলাদা আলাদা construction create করতে হবে ?
প্রতিটি নির্দিষ্ট বস্তুর জন্য একটি constructor যথেষ্ট। ধরুন আপনার বাড়িতে তিনটি ঘর আছে এবং প্রতিটি ঘরের Length এবং Width আলাদা। 
একটি constructor দিয়ে তিনটি ঘরের Length এবং Width-কে represent করা যাবে। কিন্তু তিনটি object create করতে হবে। program দেখুন-

public class Room
{
    private int length, width;
    public Room( int l, int w)
    {
         length = l; 
         width = w;
    }
    public static void main(String args[ ])
    {
         Room rom1 = new Room(10,8);
         Room rom2 = new Room(8,7);
         Room rom3 = new Room(12,10);
    }
}

চলুন program-টি বোঝার চেষ্টা করি-
Length এবং width-এর জন্য দুটি variable create করা হয়েছে-
         private int length, width;

তিনটি ঘরের জন্য আলাদা তিনটি object create করা হয়েছে। সাথে length এবং width-র value-কে  pass করা হয়েছে। Value pass করার সময়, প্রথম value-টি length-র জন্য এবং দ্বিতীয়টি width-র জন্য নির্ধারণ করা হয়েছে।          
         Room rom1 = new Room(10,8);
         Room rom2 = new Room(8,7);
         Room rom3 = new Room(12,10);

একইভাবে constructor-র ভিতরে দুটি Intizar variable declare করা হয়েছে এগুলি কে argument বলে।এখানেও, প্রথম value-টি length-র জন্য এবং দ্বিতীয়টি width-র জন্য। Object create-র সময় যে value pass করা হয়েছে তা, argument-র ভিতরে assign হবে। (অর্থাৎ l = 10,8,12 এবং w = 8,7,10
        public Room( int l, int w){...}

Argument-র value, প্রথম যে Intizar variable declare করা হয়েছে সেখানে assign হবে। 
        public Room( int l, int w)
        {
             length = l;
             width = w;
        }    
এই পদ্ধতিকে বলে constructor ওভারলোডিং

এখন constructor-র আপনার বাড়ির তিনটি ঘরের length ও width-র value, private int length, width; ভিতরে assign করেছে । এখন length, width দিয়ে আপনি যেকোনো কাজ করতে পারেন। যেমন- Area নির্নীয়।