কনস্ট্রাক্টর মেথডের মতোই কিন্তু এটি ক্লাসের অবজেক্ট তৈরি করার সময় আহ্বান করা হয়। এটি সাধারণত ক্লাসের ইনস্ট্যান্স ভেরিয়েবল ইনিশিয়ালাইজ করার জন্য ব্যবহৃত হয়। কনস্ট্রাক্টরের নাম ক্লাসের নামের সাথে মিলে থাকে এবং এর কোনো রিটার্ন টাইপ নেই।
জাভাতে ডিফল্ট কনস্ট্রাক্টর ক্লাসের ডেটা মেম্বারগুলকে তাদের ডিফল্ট ভ্যালুতে ইনিশিয়ালাইজ করে (যেমন: int-র জন্য 0, double-র জন্য 0.0 ইত্যাদি)। যদি ইউজার ক্লাসের জন্য কোনো এক্সপ্লিসিট কনস্ট্রাক্টর না লিখে, তবে জাভা কম্পাইলার স্বয়ংক্রিয়ভাবে এই ডিফল্ট কনস্ট্রাক্টরটি যোগ করে দেয়।
উদাহরণ: ডিফল্ট কনস্ট্রাক্টর
public class Sample {
int num;
public static void main(String args[]) {
System.out.println(new Sample().num);
}
}
উপরের প্রোগ্রাম রান করলে ডিফল্ট কনস্ট্রাক্টর num ভেরিয়েবলকে 0 দিয়ে ইনিশিয়ালাইজ করবে, ফলে আউটপুট হবে 0।
javap কমান্ড দিয়ে ডিফল্ট কনস্ট্রাক্টর দেখা
javap কমান্ড ক্লাসের ফিল্ড, কনস্ট্রাক্টর ও মেথড সম্পর্কে তথ্য দেখায়। কম্পাইল করার পর যদি javap Sample চালান, তবে কম্পাইলারের যোগ করা ডিফল্ট কনস্ট্রাক্টর দেখা যাবে:
D:\>javap Sample
Compiled from "Sample.java"
public class Sample {
int num;
public Sample();
public static void main(java.lang.String[]);
}
উদাহরণ: এক্সপ্লিসিট কনস্ট্রাক্টর সহ ক্লাস
public class Sample {
int num;
Sample() {
num = 100;
}
Sample(int num) {
this.num = num;
}
public static void main(String args[]) {
System.out.println(new Sample().num);
System.out.println(new Sample(1000).num);
}
}
আউটপুট
100
1000