Kotlin Constructor Chaining – এক কনস্ট্রাক্টরের ভিতরে আরেক কনস্ট্রাক্টর কল করা!

 

🔄 Kotlin Constructor Chaining – এক কনস্ট্রাক্টরের ভিতরে আরেক কনস্ট্রাক্টর কল করা! 🤔

কখনো কি ভেবেছেন, কিভাবে একটি ক্লাসের কনস্ট্রাক্টরের মধ্যে অন্য কনস্ট্রাক্টরকে কল করা যায়?
এটাকে বলা হয় Constructor Chaining! 🏗️

Constructor Chaining এর মাধ্যমে আমরা একটি কনস্ট্রাক্টরকে অন্য কনস্ট্রাক্টরের সাথে সংযুক্ত করতে পারি, যা কোডের পুনঃব্যবহারযোগ্যতা এবং পরিষ্কারতা বাড়ায়! ✨


🛠️ 1️⃣ Primary Constructor & Secondary Constructor

Kotlin-এ দুটি প্রধান ধরনের কনস্ট্রাক্টর থাকে:

  • Primary Constructor – ক্লাসের সাথে সরাসরি সংযুক্ত।
  • Secondary Constructor – অতিরিক্ত কনস্ট্রাক্টর, যা ক্লাসের ভিতরে ডিফাইন করা হয়।

Constructor Chaining তখন হয় যখন একটি কনস্ট্রাক্টর আরেক কনস্ট্রাক্টরের সাহায্য নেয়! 💡


🏗️ 2️⃣ Constructor Chaining এর উদাহরণ

Primary Constructor ব্যবহার করে:

open class Animal(val name: String) {
    init {
        println("Animal is created: $name")
    }
}

class Dog(name: String, val breed: String) : Animal(name) {
    init {
        println("Dog breed is: $breed")
    }
}

fun main() {
    val myDog = Dog("Buddy", "Golden Retriever")
}

📌 এখানে:

  • Dog ক্লাসে name প্যারামিটার, Primary Constructor থেকে Animal ক্লাসকে কল করছে!
  • প্রথমে Animal ক্লাসের init ব্লক রান হবে, তারপর Dog ক্লাসের init ব্লক।

Output:

Animal is created: Buddy
Dog breed is: Golden Retriever

🏗️ 3️⃣ Secondary Constructor এর মাধ্যমে Constructor Chaining

Secondary constructor ব্যবহার করে আমরা Primary Constructor বা আরেকটি Secondary Constructor কে কল করতে পারি।

open class Animal(val name: String) {
    init {
        println("Animal is created: $name")
    }

    constructor(name: String, age: Int) : this(name) {
        println("Age is: $age")
    }
}

class Dog(name: String, breed: String) : Animal(name) {
    init {
        println("Dog breed is: $breed")
    }

    constructor(name: String, breed: String, age: Int) : this(name, breed) {
        println("Dog age is: $age")
    }
}

fun main() {
    val myDog = Dog("Buddy", "Golden Retriever", 3)
}

📌 এখানে:

  • Dog ক্লাসে name, breed, এবং age তিনটি প্যারামিটার রয়েছে।
  • Secondary Constructor Dog(name, breed, age) প্রথমে this(name, breed) কে কল করেছে, তারপর নিজের init ব্লক চালিয়েছে।

Output:

Animal is created: Buddy
Dog breed is: Golden Retriever
Dog age is: 3

4️⃣ Constructor Chaining এর সুবিধা

  1. কোড পুনঃব্যবহার – একাধিক কনস্ট্রাক্টর দিয়ে একই কনস্ট্রাক্টর লজিকের পুনঃব্যবহার করা যায়!
  2. কমপ্লেক্স ইনিশিয়ালাইজেশন – একাধিক কনস্ট্রাক্টর দিয়ে ক্লাস ইনিশিয়ালাইজ করা যায়।
  3. ক্লিন কোড – কোড পরিষ্কার এবং সহজভাবে পড়া যায়।

🎯 Constructor Chaining এর প্রয়োজনীয়তা

Kotlin-এ Constructor Chaining খুবই শক্তিশালী টুল হতে পারে, যখন আপনার একাধিক কনস্ট্রাক্টর থাকে যেগুলোর মধ্যে কিছু লজিক বা ইনিশিয়ালাইজেশন শেয়ার করা দরকার!

📌 কোনো কনস্ট্রাক্টরের মধ্যে অন্য কনস্ট্রাক্টরকে কল করে কোডকে আরও সোজা, পরিষ্কার ও পুনঃব্যবহারযোগ্য করা যায়! 🚀

Comments

Popular posts from this blog

AI (Artificial Intelligence) সহজভাবে বোঝার জন্য একদম মস্তিষ্ক-বান্ধব ব্যাখ্যা 🧠🤖

🧠 Regex কী?

Kotlin-এ ভেরিয়েবল ঘোষণা করার দুই উপায়