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

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

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

Constructor Overloading in Java

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

कंस्ट्रक्टर ओवरलोडिंग क्या है?

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

कंस्ट्रक्टर ओवरलोडिंग का उपयोग क्यों करें?

कंस्ट्रक्टर ओवरलोडिंग कई कारणों से उपयोगी है:

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

कंस्ट्रक्टर ओवरलोडिंग का उदाहरण

आइए कर्मचारी वर्ग के एक सरल उदाहरण पर विचार करें कि व्यवहार में कंस्ट्रक्टर ओवरलोडिंग कैसे काम करती है:

public class Employee {
    private String name;
    private int id;
    private double salary;

    // Constructor 1: No parameters
    public Employee() {
        this.name = "Unknown";
        this.id = 0;
        this.salary = 0.0;
    }

    // Constructor 2: One parameter (name)
    public Employee(String name) {
        this.name = name;
        this.id = 0;
        this.salary = 0.0;
    }

    // Constructor 3: Two parameters (name and id)
    public Employee(String name, int id) {
        this.name = name;
        this.id = id;
        this.salary = 0.0;
    }

    // Constructor 4: Three parameters (name, id, and salary)
    public Employee(String name, int id, double salary) {
        this.name = name;
        this.id = id;
        this.salary = salary;
    }

    public void displayInfo() {
        System.out.println("Name: "   name   ", ID: "   id   ", Salary: "   salary);
    }
}

यह कैसे काम करता है?

उपरोक्त कर्मचारी वर्ग में:

  • कंस्ट्रक्टर 1 एक बिना तर्क वाला कंस्ट्रक्टर है जो नाम, आईडी और वेतन के लिए डिफ़ॉल्ट मान सेट करता है।
  • कन्स्ट्रक्टर 2 आपको आईडी और वेतन को 0 पर डिफॉल्ट करते हुए नाम सेट करने की अनुमति देता है।
  • कंस्ट्रक्टर 3 आपको नाम और आईडी दोनों सेट करने देता है, जबकि वेतन अभी भी 0 पर डिफ़ॉल्ट है।
  • कंस्ट्रक्टर 4 आपको तीनों फ़ील्ड सेट करने की सुविधा देता है: नाम, आईडी और वेतन।

उदाहरण

मुख्य वर्ग में इन कंस्ट्रक्टरों का उपयोग कैसे करें इसका एक उदाहरण यहां दिया गया है:

public class Main {
    public static void main(String[] args) {
        // Using the no-argument constructor
        Employee emp1 = new Employee();
        emp1.displayInfo(); // Output: Name: Unknown, ID: 0, Salary: 0.0

        // Using the constructor with one argument
        Employee emp2 = new Employee("Alice");
        emp2.displayInfo(); // Output: Name: Alice, ID: 0, Salary: 0.0

        // Using the constructor with two arguments
        Employee emp3 = new Employee("Bob", 123);
        emp3.displayInfo(); // Output: Name: Bob, ID: 123, Salary: 0.0

        // Using the constructor with three arguments
        Employee emp4 = new Employee("Charlie", 456, 50000.0);
        emp4.displayInfo(); // Output: Name: Charlie, ID: 456, Salary: 50000.0
    }
}

कंस्ट्रक्टर चेनिंग

जावा आपको इस() का उपयोग करके एक ही क्लास के भीतर एक कंस्ट्रक्टर को दूसरे से कॉल करने की अनुमति भी देता है। इसे कंस्ट्रक्टर चेनिंग के रूप में जाना जाता है और यह कोड का पुन: उपयोग करने के लिए उपयोगी है:

public Employee(String name) {
    this(name, 0, 0.0); // Calls the constructor with three parameters
}

इस उदाहरण में, एक पैरामीटर (नाम) वाला कंस्ट्रक्टर तीन पैरामीटर वाले कंस्ट्रक्टर को कॉल करता है, आईडी और वेतन के लिए डिफ़ॉल्ट मान प्रदान करता है।

याद करना

  1. ओवरलोडिंग नियम: कंस्ट्रक्टर्स को उनकी पैरामीटर सूची (संख्या, प्रकार, या दोनों) में भिन्न होना चाहिए। वे केवल रिटर्न प्रकार के आधार पर भिन्न नहीं हो सकते (कंस्ट्रक्टर के पास रिटर्न प्रकार नहीं होते हैं)।
  2. डिफ़ॉल्ट कंस्ट्रक्टर: यदि कोई कंस्ट्रक्टर परिभाषित नहीं है, तो जावा एक डिफॉल्ट नो-ऑर्गमेंट कंस्ट्रक्टर प्रदान करता है। हालाँकि, यदि आप किसी कंस्ट्रक्टर को परिभाषित करते हैं, तो डिफ़ॉल्ट कंस्ट्रक्टर प्रदान नहीं किया जाता है जब तक कि आप इसे स्पष्ट रूप से परिभाषित नहीं करते हैं।

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

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

निष्कर्ष

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/emleons/constructor-overloading-in-java-1c53?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3