एक कंस्ट्रक्टर मेथड के समान होता है और यह क्लास के ऑब्जेक्ट बनाते समय इनवोक होता है। यह आमतौर पर क्लास के इंस्टेंस वेरिएबल्स को इनिशियलाइज़ करने के लिए उपयोग किया जाता है। कंस्ट्रक्टर्स का नाम उनकी क्लास के समान होता है और इनका कोई रिटर्न टाइप नहीं होता।
जावा में डिफॉल्ट कंस्ट्रक्टर क्लास के डेटा मेंबर्स को उनके डिफॉल्ट मानों जैसे 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 कमांड का उपयोग करके चलाते हैं, तो आप कंपाइलर द्वारा जोड़े गए डिफॉल्ट कंस्ट्रक्टर को देख सकते हैं।
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