Constructors
Constructor क्या है
Constructor एक ख़ास method है जो object new से बनते ही अपने-आप चलता है। इसका काम object की शुरुआती values set करना है। इसका नाम class जैसा और कोई return type नहीं होता।
Default constructor
class Student {
String name;
Student() { // default constructor
name = "Unknown";
}
}
// इस्तेमाल:
Student s = new Student();
System.out.println(s.name);
No-argument constructor default values set करता है। अगर आप कोई constructor न लिखें, Java एक अदृश्य खाली देता है ताकि new फिर भी चले।
Parameterised constructor
class Student {
String name;
int marks;
Student(String n, int m) { // parameterised
name = n;
marks = m;
}
}
// इस्तेमाल:
Student s = new Student("Aman", 75);
System.out.println(s.name + " " + s.marks);
Parameterised constructor values लेता है ताकि आप बनाते समय object को custom data के साथ set कर सकें। यह object बनाकर बाद में हर field set करने से साफ़ है।
Constructor overloading
class Box {
int w, h;
Box() { w = 1; h = 1; } // default size
Box(int side) { w = side; h = side; } // square
Box(int w, int h) { this.w = w; this.h = h; } // custom
}
अलग parameters वाले कई constructors होना overloading है। Java आपके arguments से मेल खाता चुनता है — new Box(), new Box(5), या new Box(4, 6)।
this() call करना
class Box {
int w, h;
Box() {
this(1, 1); // दूसरा constructor call करो
}
Box(int w, int h) {
this.w = w; this.h = h;
}
}
this() उसी class का दूसरा constructor call करता है, तो एक दूसरे का setup दोबारा इस्तेमाल कर सकता है, code दोहराने के बजाय। यह constructor की पहली line होनी चाहिए।
Constructor बनाम method
| बात | Constructor | Method |
|---|---|---|
| नाम | Class जैसा | कोई भी नाम |
| Return type | कोई नहीं | ज़रूरी (या void) |
| कब चलता है | new पर अपने-आप | जब आप call करें |
| मक़सद | Object set करना | काम करना |
आम गलतियाँ
- Return type जोड़ना। Constructor का कोई नहीं होता — जोड़ना इसे method बना देता है।
- गलत नाम। Constructor बिल्कुल class नाम से मेल खाना चाहिए।
- Default खोना। कोई constructor जोड़ें तो मुफ़्त default चला जाता है — ज़रूरत हो तो वापस जोड़िए।
this()पहले नहीं।this()call constructor का पहला statement होना चाहिए।
सारांश
- Constructor object बनते ही अपने-आप चलता है।
- इसका नाम class जैसा और कोई return type नहीं।
- Default कोई arguments नहीं लेता; parameterised values लेता है।
- Overloading अलग parameters वाले कई constructors देता है।
this()दूसरा constructor call करके उसका setup दोबारा इस्तेमाल करता है।
आगे, सीखिए this और super, या code दोबारा इस्तेमाल कीजिए inheritance से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Java में constructor क्या है?
new से बनते ही अपने-आप चलता है। यह object की शुरुआती values set करता है। इसका नाम class जैसा होता है और कोई return type नहीं।Default और parameterised constructor में क्या अंतर है?
new Student("Aman", 18)।Constructor overloading क्या है?
Constructor का कोई return type क्यों नहीं होता?
Constructor में this() क्या करता है?
this() उसी class का दूसरा constructor call करता है। यह एक constructor को दूसरे का setup code दोबारा इस्तेमाल करने देता है, दोहराव बचाकर। यह constructor का पहला statement होना चाहिए।