Kotlin-এ Operator Overloading – মজার ভাষায় সহজ ব্যাখ্যা!

 

🧠 Kotlin-এ Operator Overloading – মজার ভাষায় সহজ ব্যাখ্যা! 🚀

Kotlin-এ *অপারেটর (+, -, , /, %, ==, >, <, ++) ইত্যাদি আমরা নিজেদের ক্লাসের জন্য কাস্টম লজিক দিয়ে ওভারলোড করতে পারি! মানে, যেভাবে + দিয়ে সংখ্যা যোগ করি, একইভাবে + দিয়ে নিজের বানানো অবজেক্টও যোগ করা যাবে! 😍


📌 ১. সাধারণ ভাবে অপারেটর কী কাজ করে?

আমরা + ব্যবহার করলে দুই সংখ্যা যোগ হয়:

val sum = 5 + 10
println(sum)  // 👉 15

কিন্তু, যদি আমরা নিজের বানানো Money ক্লাসের জন্য + চালাতে চাই? 🤔

val money1 = Money(10)
val money2 = Money(20)
val total = money1 + money2  // এটা কিভাবে সম্ভব? 😲

এখানে অপারেটর ওভারলোডিং ব্যবহার করতে হবে! 🚀


🛠️ ২. Operator Overloading কিভাবে কাজ করে?

কোনো অপারেটর ওভারলোড করতে হলে operator কিওয়ার্ড ব্যবহার করতে হবে। 🎯

+ অপারেটর ওভারলোড করা (Custom Addition)

class Money(val amount: Int) {
    operator fun plus(other: Money): Money {
        return Money(amount + other.amount)  // নতুন Money অবজেক্ট ফেরত দিবে
    }
}
fun main() {
    val money1 = Money(10)
    val money2 = Money(20)
    val total = money1 + money2  // ✅ এখন এটা কাজ করবে!
    println(total.amount)  // 👉 30
}

✅ এখন money1 + money2 চালালে plus() মেথড কাজ করবে! 🔥


- অপারেটর ওভারলোড করা (Custom Subtraction)

class Money(val amount: Int) {
    operator fun minus(other: Money): Money {
        return Money(amount - other.amount)
    }
}
fun main() {
    val money1 = Money(50)
    val money2 = Money(30)
    val remaining = money1 - money2
    println(remaining.amount)  // 👉 20
}

money1 - money2 এর কাজ আমাদের নিয়ন্ত্রণে! 🔥


* অপারেটর ওভারলোড করা (Custom Multiplication)

class Money(val amount: Int) {
    operator fun times(multiplier: Int): Money {
        return Money(amount * multiplier)
    }
}
fun main() {
    val money = Money(10)
    val result = money * 3
    println(result.amount)  // 👉 30
}

✅ এখন money * 3 সম্ভব কারণ times() মেথড আছে!


==!= অপারেটর ওভারলোড করা (Custom Equality)

class Money(val amount: Int) {
    operator fun equals(other: Any?): Boolean {
        return other is Money && this.amount == other.amount
    }
}
fun main() {
    val money1 = Money(50)
    val money2 = Money(50)
    val money3 = Money(30)

    println(money1 == money2)  // 👉 true
    println(money1 == money3)  // 👉 false
}

== দিয়ে এখন আমরা নিজের শর্ত অনুযায়ী তুলনা করতে পারছি!


> এবং < অপারেটর ওভারলোড করা (Comparison)

class Money(val amount: Int) {
    operator fun compareTo(other: Money): Int {
        return this.amount - other.amount
    }
}
fun main() {
    val money1 = Money(100)
    val money2 = Money(50)

    println(money1 > money2)  // 👉 true
    println(money1 < money2)  // 👉 false
}

✅ এখন money1 > money2 ব্যবহার করলে compareTo() মেথড চালু হবে! 🔥


📌 ৩. ++-- অপারেটর ওভারলোড করা (Increment & Decrement)

class Money(var amount: Int) {
    operator fun inc(): Money {
        return Money(amount + 1)
    }
    operator fun dec(): Money {
        return Money(amount - 1)
    }
}
fun main() {
    var money = Money(10)
    money++
    println(money.amount)  // 👉 11
    money--
    println(money.amount)  // 👉 10
}

money++ ব্যবহার করলে inc() মেথড চালু হবে!


🚀 Operator Overloading Table – কোন অপারেটরের জন্য কোন মেথড?

Operator Function Name
+ plus()
- minus()
* times()
/ div()
% rem()
++ inc()
-- dec()
== equals()
<, >, <=, >= compareTo()

🔥 শেষ কথা – কেন Operator Overloading দরকার?

আপনার নিজস্ব অবজেক্টের জন্য +, -, *, ==, > ইত্যাদি তৈরি করা যায়!
কোড অনেক ক্লিন হয়, কারণ জটিল মেথড কল না করেই কাজ করা যায়!
ব্যবহারকারীর জন্য সহজ এবং বেশি রিডেবল!

🚀 তাহলে, Kotlin-এ Operator Overloading শিখে ফেললেন! 🔥 এখন আপনি নিজের অবজেক্টের জন্য নতুন নতুন অপারেটর বানাতে পারেন! 🎉

Comments

Popular posts from this blog

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

🧠 Regex কী?

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