đ Kotlin-āĻāϰ object āĻীāĻā§াāϰ্āĻĄ: āϏāĻšāĻ āĻ āĻŽāĻাāϰ āĻŦ্āϝাāĻ্āϝা!
đ Kotlin-āĻāϰ object āĻীāĻā§াāϰ্āĻĄ: āϏāĻšāĻ āĻ āĻŽāĻাāϰ āĻŦ্āϝাāĻ্āϝা!
object āĻীāĻā§াāϰ্āĻĄ Kotlin-āĻ āĻāĻāĻি āĻŦিāĻļেāώ āĻŦৈāĻļিāώ্āĻ্āϝ, āϝা āĻāĻāĻ āϏাāĻĨে class āĻāĻŦং instance āϤৈāϰি āĻāϰে। āĻāĻি āĻŽূāϞāϤ Singleton Object, Anonymous Object, āĻāĻŦং Companion Object āϤৈāϰি āĻāϰāϤে āĻŦ্āϝāĻŦāĻšৃāϤ āĻšā§।
đĨ 1️⃣ object āĻী?
object āĻāĻāĻি āĻāĻ্āϏāĻ্āϞুāϏিāĻ āĻ্āϞাāϏ, āϝা āĻāĻāĻি āĻŽাāϤ্āϰ āĻāύāϏ্āĻ্āϝাāύ্āϏ (Singleton Instance) āϤৈāϰি āĻāϰে āĻāĻŦং āϏেāĻিāĻে āĻāϞাāĻĻা āĻāϰে instantiate āĻāϰāϤে āĻšā§ āύা!
đ āϏāĻšāĻ āĻাāώাā§:
đ class āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϞে āĻĒ্āϰāϤ্āϝেāĻāĻŦাāϰ āύāϤুāύ object āĻŦাāύাāϤে āĻšā§।
đ āĻিāύ্āϤু object āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϞে āĻāĻāĻŦাāϰāĻ āϤৈāϰি āĻšā§ āĻāĻŦং āϏাāϰা āĻোāĻĄে āĻāĻāĻ āĻĨাāĻে (Singleton).
đ¯ 2️⃣ object āĻŦ্āϝāĻŦāĻšাāϰ āĻোāĻĨাā§?
- Singleton Pattern → āĻĒুāϰো āĻĒ্āϰোāĻ্āϰাāĻŽে āĻāĻāĻি āĻŽাāϤ্āϰ object āϰাāĻāϤে āĻšāϞে।
- Anonymous Object → āĻোāύো āĻāύ্āĻাāϰāĻĢেāϏ āĻŦা āĻ্āϞাāϏāĻে āĻ āĻŦিāϞāĻŽ্āĻŦে (immediately) instantiate āĻāϰāϤে āĻšāϞে।
- Companion Object → Static āĻŽেāĻŽ্āĻŦাāϰ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻšāϞে।
đĨ 3️⃣ Singleton Object: āĻĒুāϰো āĻĒ্āϰোāĻ্āϰাāĻŽে āĻāĻāĻŦাāϰāĻ āϤৈāϰি āĻšāĻŦে!
đ object āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϞে āĻāϞাāĻĻা new āĻŦা constructor āϞাāĻāĻŦে āύা!
object Database {
val name = "BusinessDB"
fun connect() {
println("Connected to $name")
}
}
✅ āĻāĻāύ āĻāĻŽāϰা āĻāĻি direct āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻĒাāϰāĻŦো:
fun main() {
Database.connect() // Output: Connected to BusinessDB
}
đ āĻāĻাāύে Database āĻ্āϞাāϏেāϰ āĻāϞাāĻĻা object āϤৈāϰি āĻāϰাāϰ āĻĻāϰāĻাāϰ āύেāĻ!
đ¯ 4️⃣ Anonymous Object: āĻāĻāĻŦাāϰāĻ āϤৈāϰি āĻšāĻŦে, āύাāĻŽ āϞাāĻāĻŦে āύা!
đ āϝāĻĻি āĻোāύো āĻāύ্āĻাāϰāĻĢেāϏ āĻŦা āĻ্āϞাāϏāĻে āĻāĻāĻŦাāϰāĻ instantiate āĻāϰāϤে āĻšā§, āϤাāĻšāϞে object āĻĻিā§ে Anonymous Object āϤৈāϰি āĻāϰা āϝাā§।
interface ClickListener {
fun onClick()
}
fun main() {
val buttonClick = object : ClickListener {
override fun onClick() {
println("Button Clicked!")
}
}
buttonClick.onClick() // Output: Button Clicked!
}
✅ āĻāĻ object-āĻāϰ āĻোāύো āĻāϞাāĻĻা āύাāĻŽ āύেāĻ, āĻāĻি āĻāĻāĻŦাāϰāĻ āϤৈāϰি āĻšā§েāĻে।
đĨ 5️⃣ Companion Object: Static-āĻāϰ āĻŦিāĻāϞ্āĻĒ!
đ Java-āϤে static āĻীāĻā§াāϰ্āĻĄ āĻিāϞ, Kotlin-āĻ companion object āĻāĻে!
class Utils {
companion object {
fun printMessage() {
println("Hello from Companion Object!")
}
}
}
✅ āĻāĻāύ āĻāĻŽāϰা āĻāĻি direct call āĻāϰāϤে āĻĒাāϰāĻŦো, āĻোāύো instance āĻাā§াāĻ!
fun main() {
Utils.printMessage() // Output: Hello from Companion Object!
}
đ Companion Object āĻŽাāύে āĻ্āϞাāϏেāϰ āϏাāĻĨে āϏāĻŽ্āĻĒāϰ্āĻিāϤ āĻāĻāĻা object, āϝা static-āĻāϰ āĻŽāϤো āĻাāĻ āĻāϰে।
đ¯ 6️⃣ Object Expression vs Object Declaration
| Feature | Object Expression | Object Declaration |
|---|---|---|
| Instantiation | āĻĒ্āϰāϤিāĻŦাāϰ āύāϤুāύ instance āϤৈāϰি āĻšā§ | āĻŽাāϤ্āϰ āĻāĻāĻŦাāϰ āϤৈāϰি āĻšā§ (Singleton) |
| Usage | Anonymous object āϤৈāϰিāϤে āĻŦ্āϝāĻŦāĻšাāϰ āĻšā§ | Singleton object āϤৈāϰিāϤে āĻŦ্āϝāĻŦāĻšাāϰ āĻšā§ |
| Example | object : Interface {} |
object Singleton {} |
✅ āϏংāĻ্āώেāĻĒে:
| Object Type | āĻোāĻĨাā§ āĻŦ্āϝāĻŦāĻšাāϰ āĻšā§? | āĻāĻĻাāĻšāϰāĻŖ |
|---|---|---|
| Singleton Object | āĻĒুāϰো āĻ ্āϝাāĻĒে āĻāĻāĻি āĻŽাāϤ্āϰ instance āĻĻāϰāĻাāϰ āĻšāϞে | object Database {} |
| Anonymous Object | āϝāĻāύ āĻ āϏ্āĻĨাā§ী object āĻĻāϰāĻাāϰ āĻšā§ (āĻোāύো āύাāĻŽ āĻাā§াāĻ) | object : Interface {} |
| Companion Object | āϝāĻāύ static āĻŽেāĻŽ্āĻŦাāϰ āĻĻāϰāĻাāϰ āĻšā§ | companion object {} |
đ āĻļেāώ āĻāĻĨা: object āĻĻিā§ে āĻŽāϏ্āϤিāώ্āĻ āĻ াāύ্āĻĄা āϰাāĻুāύ! đ
✅ āϝāĻĻি āĻāĻāĻি āĻŽাāϤ্āϰ instance āĻĻāϰāĻাāϰ āĻšā§ → object Singleton {}
✅ āϝāĻĻি āĻ
āϏ্āĻĨাā§ী object āĻĻāϰāĻাāϰ āĻšā§ → object : Interface {}
✅ āϝāĻĻি static-āĻāϰ āĻŽāϤো āĻিāĻু āĻĻāϰāĻাāϰ āĻšā§ → companion object {}
đĨ Kotlin-āĻāϰ object āĻি āĻāĻĒāύাāϰ āĻ্āϞিā§াāϰ āĻšā§েāĻে? đ
Comments
Post a Comment