किसी object को बनाते समय उसे initialize करने के लिए Constructors का उपयोग किया जाता है। यह एक method के समान है लेकिन ध्यान रहे की यह एक method नहीं है। हर बार जब new
कीवर्ड का उपयोग करके कोई object बनाया जाता है, तो कम से कम एक java constructor कॉल होता है।
किसी class के लिए constructor बनाना आवश्यक नहीं है। चूंकि सभी classes में डिफ़ॉल्ट रूप से constructors होते हैं, लेकिन यदि हम manual रूप से class constructor नहीं बनाये जाते हैं तो Java, automatically एक बना लेता है, और उसके बाद हम object attributes के लिए initial वैल्यू सेट नहीं कर सकते हैं।
Java Constructor बनाने के नियम
- Constructor का नाम class के नाम से मेल खाना चाहिए।
- एक Constructor के पास कोई explicit return type नहीं होना चाहिए (जैसे
void
)। - एक Java constructor कभी भी
abstract
,static
,final
औरsynchronized
नहीं हो सकता है
Types of Java Constructor
जावा में constructor दो प्रकार के होते हैं।
(a) No Argument (No-Arg) Constructor
(b) Parameterized Constructor
No Argument Constructor
एक constructor जिसमें कोई parameter नहीं होता है उसे efault constructor के रूप में जाना जाता है। यदि हम अपनी class में किसी भी constructor को implement नहीं करते हैं, तो जावा compiler उस class के लिए एक default constructor (No Argument Constructor) insert कर देता हैं। यह default वैल्यू के साथ किसी भी uninitialized instance variables को initializes करता है।
class MyClass {
// Creating a default constructor
MyClass() {
System.out.println("Default Constructor is created");
}
// Main method
public static void main(String[] args) {
// Calling constructor without any parameter
MyClass myObj = new MyClass();
}
}
// Result: Default Constructor is created
class MyClass {
// Creating a default constructor
MyClass() {
int x = 10;
System.out.println(x);
}
// Main method
public static void main(String[] args) {
// Calling constructor without any parameter
MyClass myObj = new MyClass();
}
}
// Result: 10
उद्धारण को समझते हैं
1st : उपरोक्त दोनों उदाहरणों में, हमने MyClass
class में no-arg constructor बनाया है।
2nd : हमने MyClass
को कोई parameters नहीं दिया है, यानि की हमने कोई भी वैल्यू का पास नहीं किया हैं।
3rd : लेकिन जब constructor को कॉल किया जाता है, तो यह object creation के समय अपने आप लागू हो जाता है।
Parameterized Constructor
जिस constructor में arguments (Parameters) होते हैं, उसे parameterized constructor के रूप में जाना जाता है। इसका उपयोग class की attributes को हमारे अपने वैल्यू (हमारे द्वारा assign वैल्यू) के साथ initialize करने के लिए किया जाता है।
public class MyClass {
int num;
// Creating a parameterized constructor
public MyClass(int x) {
num = x;
}
// Main method
public static void main(String[] args) {
// Calling constructor with integer type parameter
MyClass myObj = new MyClass(10);
System.out.println(myObj.num);
}
}
// Result: 10
उद्धारण को समझते हैं
1st : उपरोक्त दोनों उदाहरणों में, हमने पैरामीटर int x
के साथ एक parameterized constructor बनाया है।
2nd : Constructor के अंदर हम num को x (num = x) पर सेट करते हैं।
3rd : जब हम constructor को कॉल करते हैं, तो हम constructor को एक parameter (10) पास करता हैं।
Finally : अंत में, जब हम num
का वैल्यू प्रिंट करते हैं तो यह 10 हो जाता है।