কম্পিউটার টিউটোরিয়াল

জাভাতে ডিফল্ট কনস্ট্রাক্টর এবং প্যারামিটারাইজড কনস্ট্রাক্টরের পার্থক্য কী?


ডিফল্ট কনস্ট্রাক্টর

  • একটি ডিফল্ট কনস্ট্রাক্টর হলো একটি ০ আর্গুমেন্ট কনস্ট্রাক্টর যেটিতে সুপার ক্লাস কনস্ট্রাক্টরের নো-আর্গুমেন্ট কল থাকে।
  • নব निर्मিত অবজেক্টগুলোর ডিফল্ট ভ্যালু অ্যাসাইন করা হচ্ছে ডিফল্ট কনস্ট্রাক্টরের মূল দায়িত্ব।
  • প্রোগ্রামার যদি ক্লাসে কোনো কনস্ট্রাক্টর না লিখে, তবে কম্পাইলার কোডে ডিফল্ট কনস্ট্রাক্টর লিখে দেয়।
  • ডিফল্ট কনস্ট্রাক্টরের অ্যাক্সেস মডিফায়ার সবসময় ক্লাস মডিফায়ারের সমান কিন্তু এই নিয়ম শুধু "public" এবং "default" মডিফায়ারের জন্য প্রযোজ্য।

কবে কম্পাইলার ডিফল্ট কনস্ট্রাক্টর যোগ করে

  • কম্পাইলার কোডে ডিফল্ট কনস্ট্রাক্টর যোগ করে শুধু তখন প্রোগ্রামার কোডে কোনো কনস্ট্রাক্টর না লিখে।
  • যদি প্রোগ্রামার কোডে যেকোনো কনস্ট্রাক্টর লিখে, কম্পাইলার কোনো কনস্ট্রাক্টর যোগ করে না।
  • প্রতিটি ডিফল্ট কনস্ট্রাক্টর হলো ০ আর্গুমেন্ট কনস্ট্রাক্টর কিন্তু প্রতিটি ০ আর্গুমেন্ট কনস্ট্রাক্টর ডিফল্ট কনস্ট্রাক্টর নয়।

প্যারামিটারাইজড কনস্ট্রাক্টর

  • প্যারামিটারাইজড কনস্ট্রাক্টরগুলো হলো সেই কনস্ট্রাক্টরগুলো যেগুলোর নির্দিষ্ট সংখ্যক আর্গুমেন্ট পাস করতে হয়।
  • প্যারামিটারাইজড কনস্ট্রাক্টরের উদ্দেশ্য হলো প্রোগ্রামার ইচ্ছামতো নির্দিষ্ট ভ্যালুগুলো ডিফারেন্ট অবজেক্টের ইনস্ট্যান্স ভেরিয়েবলগুলোর অ্যাসাইন করা।
  • প্যারামিটারাইজড কনস্ট্রাক্টর প্রোগ্রামার দ্বারা এক্সপ্লিসিটলি লিখা হয়।
  • ডিফল্ট কনস্ট্রাক্টরের অ্যাক্সেস মডিফায়ার সবসময় ক্লাস মডিফায়ারের সমান কিন্তু এই নিয়ম শুধু "public" এবং "default" মডিফায়ারের জন্য প্রযোজ্য।

উদাহরণ

public class Student {
    int roll_no;
    String stu_name;
    Student(int i, String n) { // Parameterized constructor
        roll_no = i;
        stu_name = n;
    }
    void display() {
        System.out.println(roll_no+" "+stu_name);
    }
    public static void main(String args[]) {
        Student s1 = new Student(1,"Adithya");
        Student s2 = new Student(2,"Jai");
        s1.display();
        s2.display();
    }
}

উপরোক্ত প্রোগ্রামে, প্রোগ্রামার ২ প্যারামিটার সহ একটি প্যারামিটারাইজড কনস্ট্রাক্টর ডিফাইন করেছেন। এখন কম্পাইলার কোডে কোনো ডিফল্ট কনস্ট্রাক্টর যোগ করে না, এবং প্রোগ্রামারও কোনো ০ আর্গুমেন্ট কনস্ট্রাক্টর লিখেননি।

আউটপুট

1 Adithya
2 Jai
  1. জাভাতে JRadioButton এবং JCheckBox-এর পার্থক্য কী?

  2. জাভাতে JTextField এবং JTextArea-এর পার্থক্য কী?

  3. জাভাতে JFrame এবং JDialog-এর পার্থক্য কী?

  4. জাভাতে GridLayout এবং GridBagLayout-এর পার্থক্য কী?