"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा में कंस्ट्रक्टर्स में महारत हासिल करना: प्रकार और उदाहरण

जावा में कंस्ट्रक्टर्स में महारत हासिल करना: प्रकार और उदाहरण

2024-11-07 को प्रकाशित
ब्राउज़ करें:929

Mastering Constructors in Java: Types and Examples

जावा में गोता लगाते समय, आपके सामने आने वाली मूलभूत अवधारणाओं में से एक कंस्ट्रक्टर्स है। ऑब्जेक्ट कैसे बनाए और आरंभ किए जाते हैं, इसमें कंस्ट्रक्टर महत्वपूर्ण भूमिका निभाते हैं। इस पोस्ट में, आप व्यावहारिक उदाहरणों के साथ जावा में कंस्ट्रक्टर्स, उनके महत्व, विभिन्न प्रकारों और उपयोग की स्पष्ट समझ प्राप्त करेंगे।

आप विभिन्न तरीकों से ऑब्जेक्ट को आरंभ करने और ऑब्जेक्ट निर्माण को संभालने में कंस्ट्रक्टर की भूमिका का भी पता लगाएंगे। तो, आइए गोता लगाएँ!

जावा में कंस्ट्रक्टर क्या हैं?

जावा में, एक कंस्ट्रक्टर किसी ऑब्जेक्ट के बनने पर उसे इनिशियलाइज़ करने के लिए उपयोग किया जाने वाला कोड का एक ब्लॉक होता है। यह ऑब्जेक्ट निर्माण के समय ऑब्जेक्ट की प्रारंभिक स्थिति को सेट करते हुए स्वचालित रूप से लागू हो जाता है। यदि किसी क्लास में कोई कंस्ट्रक्टर स्पष्ट रूप से परिभाषित नहीं है, तो जावा डिफ़ॉल्ट कंस्ट्रक्टर को कॉल करेगा।

कंस्ट्रक्टर नियमित तरीकों से दो महत्वपूर्ण तरीकों से भिन्न होते हैं:

  1. क्लास के समान नाम: एक कंस्ट्रक्टर का वही नाम होना चाहिए जो उस क्लास का है।
  2. कोई रिटर्न प्रकार नहीं: कंस्ट्रक्टर कोई मान नहीं लौटाते, यहां तक ​​कि शून्य भी नहीं।
  3. स्वचालित रूप से कॉल किया जाता है: जब नए कीवर्ड का उपयोग करके कोई ऑब्जेक्ट बनाया जाता है तो कंस्ट्रक्टर स्वचालित रूप से लागू हो जाता है, जिससे आपको इसे स्पष्ट रूप से कॉल करने की आवश्यकता से राहत मिलती है।

जावा में कंस्ट्रक्टर्स महत्वपूर्ण क्यों हैं?

कंस्ट्रक्टर आवश्यक हैं क्योंकि वे नई वस्तुओं को सुसंगत तरीके से आरंभ करने के लिए रूपरेखा प्रदान करते हैं। वे सुनिश्चित करते हैं कि प्रत्येक वस्तु वैध, सार्थक डेटा से शुरू होती है, जिससे किसी वस्तु की उसके पूरे जीवनचक्र में स्थिति को प्रबंधित करना आसान हो जाता है।

एक बार जब आप कंस्ट्रक्टर्स को समझ लेते हैं, तो आप इस बात की सराहना करेंगे कि जब कोई ऑब्जेक्ट नए कीवर्ड का उपयोग करके बनाया जाता है तो वे स्वचालित रूप से लागू हो जाते हैं।

जावा में कंस्ट्रक्टर के प्रकार

जावा में तीन मुख्य प्रकार के कंस्ट्रक्टर हैं:

  • नो-आर्ग्युमेंट कंस्ट्रक्टर
  • पैरामीटरयुक्त कंस्ट्रक्टर
  • डिफ़ॉल्ट कंस्ट्रक्टर

आइए प्रत्येक को विस्तार से बताएं।

1. नो-आर्ग्युमेंट कंस्ट्रक्टर

नो-आर्ग्युमेंट कंस्ट्रक्टर एक कंस्ट्रक्टर है जो कोई पैरामीटर नहीं लेता है। यह ऑब्जेक्ट को डिफ़ॉल्ट मानों के साथ या कंस्ट्रक्टर के भीतर परिभाषित मानों के साथ प्रारंभ करता है।

उदाहरण:
class Rectangle {
    double length;
    double breadth;

    // No-argument constructor
    Rectangle() {
        length = 15.5;
        breadth = 10.67;
    }

    double calculateArea() {
        return length * breadth;
    }
}

class Main {
    public static void main(String[] args) {
        Rectangle myRectangle = new Rectangle();  // No-argument constructor is invoked
        double area = myRectangle.calculateArea();
        System.out.println("The area of the Rectangle: "   area);
    }
}

आउटपुट: आयत का क्षेत्रफल 165.385 है।

यहाँ, जब एक रेक्टेंगल ऑब्जेक्ट बनाया जाता है, तो नो-आर्ग्युमेंट कंस्ट्रक्टर डिफ़ॉल्ट मानों के साथ लंबाई और चौड़ाई को आरंभ करता है।

2. पैरामीटरयुक्त कंस्ट्रक्टर

एक पैरामीटरयुक्त कंस्ट्रक्टर आपको विशिष्ट मानों के साथ किसी ऑब्जेक्ट को प्रारंभ करने के लिए तर्क पारित करने की अनुमति देता है। यह लचीलापन आपको विभिन्न प्रारंभिक स्थितियों के साथ कई ऑब्जेक्ट बनाने में सक्षम बनाता है।

उदाहरण:
class Rectangle {
    double length;
    double breadth;

    // Parameterized constructor
    Rectangle(double l, double b) {
        length = l;
        breadth = b;
    }

    double calculateArea() {
        return length * breadth;
    }
}

class Main {
    public static void main(String[] args) {
        Rectangle myRectangle = new Rectangle(20, 30);  // Parameterized constructor is invoked
        double area = myRectangle.calculateArea();
        System.out.println("The area of the Rectangle: "   area);
    }
}

आउटपुट: आयत का क्षेत्रफल 600.0 है।

यहां, पैरामीटरयुक्त कंस्ट्रक्टर लंबाई और चौड़ाई को तर्क के रूप में स्वीकार करता है, जिससे हमें प्रत्येक ऑब्जेक्ट के लिए कस्टम मान सेट करने की अनुमति मिलती है।

3. डिफ़ॉल्ट कंस्ट्रक्टर

यदि किसी क्लास में कोई कंस्ट्रक्टर परिभाषित नहीं है, तो जावा एक डिफ़ॉल्ट कंस्ट्रक्टर प्रदान करता है। यह कंस्ट्रक्टर इंस्टेंस वेरिएबल्स को डिफ़ॉल्ट मानों के साथ आरंभ करता है (उदाहरण के लिए, ऑब्जेक्ट के लिए शून्य, संख्याओं के लिए 0)।

उदाहरण:
class Circle {
    double radius;

    double calculateArea() {
        return Math.PI * radius * radius;
    }
}

class Main {
    public static void main(String[] args) {
        Circle myCircle = new Circle();  // Default constructor is invoked
        System.out.println("Radius: "   myCircle.radius);  // Output will be 0.0, the default value
    }
}

चूंकि सर्कल क्लास किसी भी कंस्ट्रक्टर को स्पष्ट रूप से परिभाषित नहीं करता है, जावा एक डिफ़ॉल्ट प्रदान करता है जो त्रिज्या को 0.0 से प्रारंभ करता है।

जावा में कंस्ट्रक्टर ओवरलोडिंग

जावा कंस्ट्रक्टर ओवरलोडिंग की अनुमति देता है, जहां एक क्लास में अलग-अलग तर्क सूचियों के साथ कई कंस्ट्रक्टर हो सकते हैं। प्रत्येक कंस्ट्रक्टर पारित मापदंडों के आधार पर एक अद्वितीय कार्य करता है।

उदाहरण:
class Student {
    String name;
    int age;

    // No-argument constructor
    Student() {
        name = "Unknown";
        age = 0;
    }

    // Parameterized constructor
    Student(String n, int a) {
        name = n;
        age = a;
    }

    void displayInfo() {
        System.out.println("Name: "   name   ", Age: "   age);
    }
}

class Main {
    public static void main(String[] args) {
        Student student1 = new Student();  // Calls no-argument constructor
        Student student2 = new Student("Alice", 20);  // Calls parameterized constructor

        student1.displayInfo();  // Output: Name: Unknown, Age: 0
        student2.displayInfo();  // Output: Name: Alice, Age: 20
    }
}

इस मामले में, क्लास स्टूडेंट के पास दो कंस्ट्रक्टर हैं: एक जिसमें कोई तर्क नहीं है और दूसरा पैरामीटर (नाम और उम्र) के साथ है। ऑब्जेक्ट बनाते समय पारित किए गए तर्कों की संख्या और प्रकार के आधार पर जावा उनके बीच अंतर करता है।

कंस्ट्रक्टर्स में यह कीवर्ड

जावा में, इस कीवर्ड का उपयोग क्लास के वर्तमान उदाहरण को संदर्भित करने के लिए किया जाता है। यह तब उपयोगी होता है जब कंस्ट्रक्टर पैरामीटर के नाम इंस्टेंस वेरिएबल के समान होते हैं, जिससे अस्पष्टता से बचने में मदद मिलती है।

उदाहरण:
class Employee {
    String name;
    double salary;

    // Parameterized constructor
    Employee(String name, double salary) {
        this.name = name;  // 'this' refers to the current object's instance variable
        this.salary = salary;
    }

    void display() {
        System.out.println("Employee Name: "   name);
        System.out.println("Salary: "   salary);
    }
}

class Main {
    public static void main(String[] args) {
        Employee emp = new Employee("John", 50000);  // Using parameterized constructor
        emp.display();
    }
}

इस उदाहरण में, this.name इंस्टेंस वेरिएबल को संदर्भित करता है, जबकि इसके बिना नाम कंस्ट्रक्टर को दिए गए पैरामीटर को संदर्भित करता है।

कंस्ट्रक्टर बनाम विधि: क्या अंतर है?

कंस्ट्रक्टर तरीका
कक्षा के समान नाम होना चाहिए कोई भी नाम हो सकता है
कोई रिटर्न प्रकार नहीं (यहां तक ​​कि शून्य भी नहीं) रिटर्न प्रकार होना चाहिए
ऑब्जेक्ट बनने पर स्वचालित रूप से लागू हो जाता है प्रोग्रामर द्वारा स्पष्ट रूप से कॉल किया गया
वस्तुओं को प्रारंभ करने के लिए उपयोग किया जाता है कार्य या गणना करने के लिए उपयोग किया जाता है

कंस्ट्रक्टर्स के साथ चुनौतियां

अपनी खूबियों के बावजूद, जावा में कंस्ट्रक्टर कुछ चुनौतियों के साथ आते हैं:

  1. मान वापस नहीं कर सकते: कंस्ट्रक्टर कुछ भी वापस नहीं कर सकते, जो कुछ स्थितियों में उनके उपयोग को सीमित कर सकता है।
  2. कोई इनहेरिटेंस नहीं: कंस्ट्रक्टर्स को इनहेरिट नहीं किया जा सकता, जिसके लिए उपवर्गों में अतिरिक्त कंस्ट्रक्टर परिभाषाओं की आवश्यकता हो सकती है।

निष्कर्ष

कंस्ट्रक्टर जावा प्रोग्रामिंग का एक मूलभूत हिस्सा हैं। वे सुनिश्चित करते हैं कि वस्तुओं को उचित मूल्यों के साथ आरंभ किया गया है और ओवरलोडिंग के माध्यम से लचीलापन प्रदान करते हैं। जावा में महारत हासिल करने के लिए यह समझना महत्वपूर्ण है कि कंस्ट्रक्टर का प्रभावी ढंग से उपयोग कैसे किया जाए, चाहे वह बिना तर्क वाला हो, पैरामीटरयुक्त हो या डिफ़ॉल्ट हो।

आप कैसे हैं? आप किस प्रकार के कंस्ट्रक्टर का उपयोग करना पसंद करते हैं?

टिप्पणियों में अपने विचार और कोड स्निपेट साझा करें! यदि आपको यह लेख उपयोगी लगा, तो कृपया इसे ❤️ दें और अधिक जावा-संबंधित सामग्री के लिए मुझे फ़ॉलो करें!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/nenyasha/mastering-constructors-in-java-types-and-examples-11ne?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3