CodeGym /Java Blog /यादृच्छिक /जावा मध्ये कन्स्ट्रक्टर चेनिंग
John Squirrels
पातळी 41
San Francisco

जावा मध्ये कन्स्ट्रक्टर चेनिंग

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले

कन्स्ट्रक्टर चेनिंग म्हणजे काय?

Java मधील कन्स्ट्रक्टर ही एक विशिष्ट पद्धत आहे जी क्लासच्या ऑब्जेक्ट तयार करण्यासाठी वापरली जाते. प्रत्येक वेळी क्लासचा ऑब्जेक्ट तयार केल्यावर कन्स्ट्रक्टरला बोलावले जाते. हे निर्मितीच्या वेळी ऑब्जेक्टच्या गुणधर्मांना मूल्ये नियुक्त करण्यासाठी वापरले जाऊ शकते. वेगवेगळ्या पॅरामीटर सूचीसह Java वर्गात अनेक कन्स्ट्रक्टर असू शकतात. कन्स्ट्रक्टर चेनिंगचा वापर ऑब्जेक्ट निर्मितीच्या वेळी एकाच वर्ग/पालक वर्गाच्या कन्स्ट्रक्टरच्या वेगवेगळ्या अंमलबजावणीसाठी केला जातो.

Java मध्ये कन्स्ट्रक्टर चेनिंग कसे लागू केले जाते?

कन्स्ट्रक्टरला कसे कॉल करायचे यावर आधारित कन्स्ट्रक्टर चेन करण्याचे दोन मार्ग आहेत. ते खालीलप्रमाणे आहेत.
  • हा() कीवर्ड वापरून - समान वर्गाच्या कन्स्ट्रक्टरला कॉल करण्यासाठी
  • सुपर() कीवर्ड वापरणे - पालक वर्गाच्या कन्स्ट्रक्टरला कॉल करण्यासाठी
हे पुढील उदाहरणांमध्ये स्पष्ट केले आहे.जावामधील कन्स्ट्रक्टर चेनिंग - १

कन्स्ट्रक्टर चेनिंग उदाहरण # 1 - या() कीवर्डचा वापर करून कन्स्ट्रक्टर चेन केले जातात

DerivedClass साठी आम्ही चार कन्स्ट्रक्टर घोषित केले आहेत. एक कोणताही युक्तिवाद नसलेला आणि इतर तीन भिन्न युक्तिवादांसह. प्रत्येक कन्स्ट्रक्टरमध्ये, हा() कीवर्ड त्याच वर्गाच्या पुढील कन्स्ट्रक्टरला कॉल करण्यासाठी वापरला जातो.

package com.tutorialwriting.constchaining;
 
public class DerivedClass{
 
    String firstName;
    String country;
    int age;
 
    public DerivedClass() {
        // calling one argument constructor
        this("Maggie");
    }
 
    public DerivedClass(String firstName) {
        // calling two argument constructor
        this(firstName, 15);
    }
 
    public DerivedClass(String firstName, int age) {
        // calling three argument constructor
        this(firstName, age, "Australia");
    }
 
    public DerivedClass(String firstName, int age, String country) {
        this.firstName = firstName;
        this.age = age;
        this.country = country;
    }
 
    void displayValues() {
        System.out.println("First Name : " + firstName);
        System.out.println("Country : " + country);
        System.out.println("Age : " + age);
    }
 
    public static void main(String args[]) {
        DerivedClass object = new DerivedClass();
        object.displayValues();
    }
}
अंमलबजावणीचे आउटपुटजावा मध्ये कन्स्ट्रक्टर चेनिंग - 2

कन्स्ट्रक्टर चेनिंग उदाहरण #2 - सुपर() कीवर्ड वापरून कन्स्ट्रक्टर चेन केले जातात

येथे, चाइल्ड क्लास सुपर() कीवर्ड वापरून पालक वर्गाच्या रचनाकारांना कॉल करतो . बेसक्लासमध्ये तीन कन्स्ट्रक्टर आहेत. कोणताही आर्ग्युमेंट नसलेला कन्स्ट्रक्टर हे() वापरून बेसक्लासच्या तीन-आर्ग्युमेंट-कन्स्ट्रक्टरपैकी एकाला कॉल करतो .

package com.tutorialwriting.constchaining;
 
public class BaseClass {
 
    public BaseClass() {
        //calling a three argument constructor of the same class
        this("Male", "English", "1989/11/10");
        System.out.println("I'm executed third!!!");
    }
 
    public BaseClass(String firstName, String surname, int idNo) {
        System.out.println("I'm executed first!");
        System.out.println("First name : " + firstName);
        System.out.println("Surname : " + surname);
        System.out.println("ID Number : " + idNo);
    }
 
    public BaseClass(String gender, String nationality, String birthDate) {
        System.out.println("I'm executed second!!");
        System.out.println("Gender : " + gender);
        System.out.println("Nationality : " + nationality);
        System.out.println("Birth Date : " + birthDate);
    }
 
}
DerivedClass मध्ये दोन कन्स्ट्रक्टर आहेत, प्रत्येक सुपर() वापरून सुपर क्लासच्या वेगवेगळ्या कन्स्ट्रक्टरना कॉल करतो .

package com.tutorialwriting.constchaining;
 
public class DerivedClass extends BaseClass {
 
    public DerivedClass() {
        //calling no argument constructor of the super class
        super();
    }
 
    public DerivedClass(String firstName, String surname, int idNo) {
        //calling three argument constructor of the super class
        super(firstName, surname, idNo);
    }
 
    public static void main(String args[]) {
        DerivedClass object2 = new DerivedClass("Paul", "Wilson", 123456);
        DerivedClass object1 = new DerivedClass();
    }
}
अंमलबजावणीचे आउटपुटजावा मध्ये कन्स्ट्रक्टर चेनिंग - 3

अंतर्निहित वि. स्पष्ट कन्स्ट्रक्टर कॉलिंग

Java मध्ये कन्स्ट्रक्टरला कॉल करण्याचे दोन भिन्न मार्ग आहेत: अंतर्निहित कॉलिंग आणि स्पष्ट कॉलिंग.
  • स्पष्ट कॉलिंग म्हणजे हे() किंवा सुपर() वापरून कोडमध्ये स्पष्टपणे कॉन्स्ट्रक्टरना कॉल करणे .
  • अंतर्निहित कॉलिंग चाइल्ड क्लास कन्स्ट्रक्टरकडून अशा स्पष्ट कॉलच्या अनुपस्थितीत सुपर क्लासच्या नो-आर्ग्युमेंट कन्स्ट्रक्टरच्या कॉलिंगचा संदर्भ देते. दुस-या शब्दात सांगायचे तर, जर प्रोग्रामरने कोडमध्ये सुपर() ला स्पष्टपणे कॉल न केल्यास कंपाइलर चाइल्ड क्लासच्या कोणत्याही कन्स्ट्रक्टरच्या पहिल्या ओळीत सुपर() कॉल जोडतो.

आम्हाला कन्स्ट्रक्टर चेनिंगची आवश्यकता का आहे?

खाली सूचीबद्ध केल्याप्रमाणे Java मध्ये कन्स्ट्रक्टर चेन असण्याचे अनेक भिन्न हेतू आहेत.
  • इतर कन्स्ट्रक्टर्सचे गुणधर्म किंवा मूळ वर्गांच्या गुणधर्मांमध्ये प्रवेश करण्याचा हा एक मार्ग आहे.
  • इतर कन्स्ट्रक्टर कॉल करताना, फक्त एक ऑब्जेक्ट वापरला जात आहे, जो क्लासचा सध्याचा प्रसंग आहे. आरंभीकरण एकाच ठिकाणी होते, परंतु आम्हाला साखळीद्वारे भिन्न कन्स्ट्रक्टर अंमलबजावणी कॉल करण्याचा विशेषाधिकार आहे. हे मेमरी व्यवस्थापन आणि कोड देखभाल मध्ये मोठ्या प्रमाणात मदत करते.

निष्कर्ष

या ट्युटोरियलमध्ये, आपण Java मध्ये कन्स्ट्रक्टर चेनिंगची चर्चा केली. कन्स्ट्रक्टर हे मेथड-सारखे कोड सेगमेंट आहेत जे ऑब्जेक्ट्स तयार करताना मागवले जातात. जावा क्लासमध्ये भिन्न पॅरामीटर सूचीसह कितीही कन्स्ट्रक्टर असू शकतात. कन्स्ट्रक्टर चेनिंग हा क्लासच्या एका उदाहरणासह भिन्न आरंभिकरण हाताळण्याचा एक सुलभ मार्ग आहे. या ट्यूटोरियलमधून लक्षात घेण्यासारखे काही महत्त्वाचे मुद्दे खाली सूचीबद्ध आहेत.
  • जर प्रोग्रामरने ते कोडमध्ये स्पष्टपणे जोडले नाही, तर कंपाइलर जावा क्लासमध्ये सार्वजनिक नो-आर्ग्युमेंट कन्स्ट्रक्टर जोडतो. याला डीफॉल्ट कन्स्ट्रक्टर म्हणतात.
  • this() आणि super() हे कन्स्ट्रक्टरच्या पहिल्या ओळीत लिहावे.
  • this() चा वापर त्याच वर्गाच्या कन्स्ट्रक्टरना कॉल करण्यासाठी केला जातो तर super() चा वापर तात्काळ सुपर क्लासच्या कन्स्ट्रक्टरना कॉल करण्यासाठी केला जातो.
  • क्लासमध्ये किमान एक कन्स्ट्रक्टर असावा ज्यामध्ये हा() कीवर्ड नसेल.
  • स्पष्टपणे जोडले नसल्यास, कंपाइलर प्रत्येक चाइल्ड क्लास कन्स्ट्रक्टरला नो-आर्ग्युमेंट सुपर() कॉल जोडतो. हे वर्ग योग्यरित्या सुरू करण्यात मदत करेल.
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION