CodeGym/Java Blog/এলোমেলো/জাভাতে কনস্ট্রাক্টর চেইনিং
John Squirrels
লেভেল 41
San Francisco

জাভাতে কনস্ট্রাক্টর চেইনিং

এলোমেলো দলে প্রকাশিত
সদস্যগণ

কনস্ট্রাক্টর চেইনিং কি?

জাভাতে কনস্ট্রাক্টর হল একটি নির্দিষ্ট পদ্ধতি যা একটি ক্লাসের অবজেক্ট তৈরিতে ব্যবহৃত হয়। প্রতিবার ক্লাসের একটি অবজেক্ট তৈরি করা হলে কনস্ট্রাক্টরকে আহ্বান করা হয়। এটি সৃষ্টির সময় বস্তুর বৈশিষ্ট্যের মান নির্ধারণ করতে ব্যবহার করা যেতে পারে। বিভিন্ন প্যারামিটার তালিকা সহ একটি জাভা ক্লাসে একাধিক কনস্ট্রাক্টর থাকতে পারে। কনস্ট্রাক্টর চেইনিং অবজেক্ট তৈরির সময় একই ক্লাস/প্যারেন্ট ক্লাসের কনস্ট্রাক্টরদের বিভিন্ন বাস্তবায়নের জন্য ব্যবহার করা হয়।

জাভাতে কনস্ট্রাক্টর চেইনিং কীভাবে প্রয়োগ করা হয়?

কনস্ট্রাক্টরকে কীভাবে কল করবেন তার উপর ভিত্তি করে কনস্ট্রাক্টরকে চেইন করার দুটি উপায় রয়েছে। অনুসরণ হিসাবে তারা.
  • এই() কীওয়ার্ড ব্যবহার করে - একই ক্লাসের কনস্ট্রাক্টরদের কল করতে
  • সুপার() কীওয়ার্ড ব্যবহার করে - প্যারেন্ট ক্লাসের কনস্ট্রাক্টরদের কল করতে
এটি নিম্নলিখিত উদাহরণগুলিতে ব্যাখ্যা করা হয়েছে।জাভাতে কনস্ট্রাক্টর চেইনিং - 1

কনস্ট্রাক্টর চেইনিং উদাহরণ #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-এর দুটি কনস্ট্রাক্টর আছে, প্রত্যেকে super() ব্যবহার করে সুপার ক্লাসের বিভিন্ন কনস্ট্রাক্টরকে কল করে ।
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

অন্তর্নিহিত বনাম স্পষ্ট কনস্ট্রাক্টর কলিং

জাভা কনস্ট্রাক্টরকে কল করার দুটি ভিন্ন উপায় রয়েছে: অন্তর্নিহিত কলিং এবং স্পষ্ট কলিং।
  • স্পষ্ট কলিং এই() বা সুপার() ব্যবহার করে কোডে স্পষ্টভাবে কনস্ট্রাক্টরকে কল করা বোঝায় ।
  • অন্তর্নিহিত কলিং বলতে বোঝায় সুপার ক্লাসের নো-আর্গুমেন্ট কনস্ট্রাক্টরের কলিংকে বোঝায় শিশু শ্রেণির কনস্ট্রাক্টরের কাছ থেকে এমন একটি স্পষ্ট কলের অনুপস্থিতিতে। অন্য কথায়, কম্পাইলার সুপার() কলটিকে চাইল্ড ক্লাসের যেকোনো কনস্ট্রাক্টরের প্রথম লাইন হিসেবে যোগ করে যদি প্রোগ্রামার স্পষ্টভাবে কোডে সুপার() কল না করে।

কেন আমরা কনস্ট্রাক্টর চেইনিং প্রয়োজন?

জাভাতে একটি কনস্ট্রাক্টর চেইন থাকার বিভিন্ন উদ্দেশ্য রয়েছে, যা নীচে তালিকাভুক্ত করা হয়েছে।
  • এটি অন্যান্য কনস্ট্রাক্টর বা প্যারেন্ট ক্লাসের বৈশিষ্ট্যগুলি অ্যাক্সেস করার একটি উপায়।
  • অন্যান্য কনস্ট্রাক্টরকে কল করার সময়, শুধুমাত্র একটি বস্তু ব্যবহার করা হচ্ছে, যা ক্লাসের বর্তমান উদাহরণ। প্রারম্ভিকতা এক জায়গায় ঘটবে, কিন্তু আমরা একটি চেইনের মাধ্যমে বিভিন্ন কনস্ট্রাক্টর বাস্তবায়ন কল করার বিশেষাধিকার পেয়েছি। এটি মেমরি ব্যবস্থাপনা এবং কোড রক্ষণাবেক্ষণে ব্যাপকভাবে সাহায্য করে।

উপসংহার

এই টিউটোরিয়ালে, আমরা জাভাতে কনস্ট্রাক্টর চেইনিং নিয়ে আলোচনা করেছি। কনস্ট্রাক্টর হল পদ্ধতির মতো কোড সেগমেন্ট যা অবজেক্ট তৈরি করার সময় আহ্বান করা হয়। একটি জাভা ক্লাসে বিভিন্ন প্যারামিটার তালিকা সহ যেকোন সংখ্যক কনস্ট্রাক্টর থাকতে পারে। কনস্ট্রাক্টর চেইনিং হল একটি ক্লাসের একটি উদাহরণ সহ বিভিন্ন প্রারম্ভিকতা পরিচালনা করার একটি সহজ উপায়। এই টিউটোরিয়াল থেকে উল্লেখ করা কিছু গুরুত্বপূর্ণ পয়েন্ট নীচে তালিকাভুক্ত করা হয়েছে.
  • যদি প্রোগ্রামার এটিকে স্পষ্টভাবে কোডে যোগ না করে, তাহলে কম্পাইলার জাভা ক্লাসে একটি পাবলিক নো-আর্গুমেন্ট কনস্ট্রাক্টর যোগ করে। একে বলা হয় ডিফল্ট কনস্ট্রাক্টর।
  • this() এবং super() কনস্ট্রাক্টরের প্রথম লাইন হিসেবে লিখতে হবে।
  • this() একই ক্লাসের কনস্ট্রাক্টরকে কল করতে ব্যবহৃত হয় যখন super() ব্যবহার করা হয় ইমিডিয়েন্ট সুপার ক্লাসের কনস্ট্রাক্টরকে কল করতে।
  • ক্লাসের মধ্যে অন্তত একজন কনস্ট্রাক্টর থাকা উচিত যাতে এই() কীওয়ার্ড থাকে না।
  • যদি স্পষ্টভাবে যোগ না করা হয়, কম্পাইলার প্রতিটি চাইল্ড ক্লাস কনস্ট্রাক্টরের সাথে একটি নো-আর্গুমেন্ট সুপার() কল যোগ করে। এটি সঠিকভাবে ক্লাস শুরু করতে সাহায্য করবে।
মন্তব্য
  • জনপ্রিয়
  • নতুন
  • পুরানো
মন্তব্য লেখার জন্য তোমাকে অবশ্যই সাইন ইন করতে হবে
এই পাতায় এখনও কোনো মন্তব্য নেই