জাভা কন্সট্রাক্টর - Java Constructor Bangla

জাভা কন্সট্রাক্টর - Java Constructor Bangla

জাভা কন্সট্রাক্টর (constructor) কাকে বলে?
কন্সট্রাক্টর হলো এক ধরণের বিশেষ ফাংশন যা ক্লাসের নাম অনুযায়ী রাখা হয়।


কন্সট্রাক্টর নিয়ে কিছু কথা :
১. ক্লাসে অবজেক্ট তৈরী করার কন্সট্রাক্টর এ ডাক পরে।
২. প্ৰত্যেক জাভা ক্লাসে কন্সট্রাক্টর থাকে।
৩. ভ্যারিয়েবলের মান ক্লাসে না দেয়া থাকলে, কন্সট্রাক্টর সেই ভ্যারিয়েবলের অবজেক্ট তৈরির সময় নিজেই মান দিয়ে দেয়।
৪. কন্সট্রাক্টর এ কোনো রিটার্ন টাইপ থাকতে পারবে না এমনকি "Void" ও লেখা যাবে না।
৫. অবজেক্ট বানানোর সঙ্গে সঙ্গে কন্সট্রাক্টর স্বয়ংক্রিয়ভাবে কল হয়ে যায়।

java-constructor-bangla-p1


class cat {
    
    int age; String color;
    /*নিচের ক্যাট ফাংশনটি হলো কন্সট্রাক্টর (constructor)*/
    cat(){
          age=1;  color="white"; 
       }
    void output()
    {
        System.out.println("age="+age+" And color="+color);
    }
   }

class pat
{
    public static void main(String[] args)
    {
    cat ref=new cat();
    ref.output();
/*দেখার বিষয়, ref অবজেক্ট দিয়ে cat() ফাংশনকে কল করা হয়নি কিন্তু output() ফাংশনকে কল করা হয়েছে। */
    }
}



java-constructor-bangla-p2

কন্সট্রাক্টর চার ধরণের হয়ে থাকে
১. ডিফল্ট কন্সট্রাক্টর
২. প্যারামিটারজিয়েড কন্সট্রাক্টর
৩. কপি কন্সট্রাক্টর
৪. প্রাইভেট কন্সট্রাক্টর


ডিফল্ট কন্সট্রাক্টর : যে কন্সট্রাক্টর ফাংশনে কোনো প্যারামিটার থাকে না তাকে ডিফল্ট কন্সট্রাক্টর বলা হয়। যেমন :
java-default-constructor-bangla


public class X {
    int age; String color; boolean c;
    X(){
          age=10;  color="Red"; c=true;
          System.out.println("age="+age+" And color="+color+" "+c);
       }
     void output()
    {
        System.out.println("age="+age+" And color="+color+" "+c);
    }
}
class Y{
     public static void main(String[] args)
    {
    X ref=new X();
    ref.output();
    }
}


java-constructor-bangla-p7

প্যারামিটারজিয়েড কন্সট্রাক্টর : যে কন্সট্রাক্টরে এক বা একাধিক প্যারামিটার দেওয়া যায় তাকে প্যারামিটারজিয়েড কন্সট্রাক্টর বলে।

java-Parameterized-constructor-bangla


public class para {
     int age1,age2; 
     para(int a, int b){
          age1=a;  age2=b;
          
       }
     void output()
    {
        System.out.println("age1="+age1+" And age2="+age2);
    }
    
}
class B{
     public static void main(String[] args)
    {
    para ref=new para(2,3);
    ref.output();
    }
}




java-Parameterized-constructor-bangla-output

কপি কন্সট্রাক্ট: আমরা যখন কন্সট্রাক্টরে প্যারামিটার হিসাবে অবজেক্ট কে পাঠাই তখন তাকে কপি কন্সট্রাক্টর বলা হয়। যেমন :

java-Parameterized-constructor-bangla-output



public class cop {
    int a; String b;
    cop()
    {
        a=1971; b="Bangladesh";
        System.out.println(a+" in "+b);
    }
    cop(cop ref)
    {
        int y=ref.a;
        String x=ref.b;
        System.out.println(y+" in "+x);
    }
    
}
class Co{
     public static void main(String[] args)
    {
    cop r=new cop();
    cop r2=new cop(r);
    }
}



java-default-constructor-bangla-output

প্রাইভেট কন্সট্রাক্টর: কন্সট্রাক্টর ডিফল্ট ভাবে পাবলিক অবস্থায় থাকলেও আমরা কন্সট্রাক্টর প্রাইভেট করতে পারি। প্রাইভেট কন্সট্রাক্টরকে বাইরের ক্লাস গুলো এর থেকে কোনো কিছু করার অনুমতি পাইনা।

java-private-constructor-bangla


public class priv {
    int a; String b;
    private priv(){
        a=1952; b="Bangladesh";
         System.out.println(a+" in "+b);        
    }
   public static void main(String[] args)
    {
    priv p=new priv();
    }
}
/*n ot allow othaer class*/
//class Co1{
//     public static void main(String[] args)
//    {
//    priv p=new priv();
//    }
//}



java-constructor-bangla-p8