đ Kotlin Data Class – āĻŽāĻাāϰ āĻাāώাā§ āϏāĻšāĻ āĻŦ্āϝাāĻ্āϝা! đ¯
đ Kotlin Data Class – āĻŽāĻাāϰ āĻাāώাā§ āϏāĻšāĻ āĻŦ্āϝাāĻ্āϝা! đ¯
đ¤ Data Class āĻী?
data class āĻšāϞ āĻāĻāĻা āĻŦিāĻļেāώ āĻ্āϞাāϏ, āϝা āĻļুāϧুāĻŽাāϤ্āϰ āĻĄাāĻা (data) āĻš্āϝাāύ্āĻĄেāϞ āĻāϰāϤে āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰা āĻšā§!
đ āĻŽাāύে, āϝāĻĻি āĻোāύো āĻ্āϞাāϏেāϰ āĻŽূāϞ āĻāĻĻ্āĻĻেāĻļ্āϝ āĻšā§ āĻ্āϝাāϞু āϧāϰে āϰাāĻা, āϤাāĻšāϞে data class āĻāĻāĻĻāĻŽ āĻĒাāϰāĻĢেāĻ্āĻ!
đ¯ āϏাāϧাāϰāĻŖ āĻ্āϞাāϏ vs. Data Class
āϧāϰুāύ, āĻāĻŽāϰা āĻāĻāĻāύ āĻāĻāĻাāϰেāϰ āϤāĻĨ্āϝ āϰাāĻāϤে āĻাāĻ (āύাāĻŽ + āĻŦā§āϏ)।
❌ āϏাāϧাāϰāĻŖ āĻ্āϞাāϏ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϞে:
class User(val name: String, val age: Int)
āĻāĻা āĻ িāĻ āĻāĻে, āĻিāύ্āϤু āĻŦā§ āϏāĻŽāϏ্āϝা āĻšāϞো:
❌ toString() āĻ
āĻোāĻŽেāĻিāĻ āĻেāύাāϰেāĻ āĻšā§ āύা।
❌ equals() āĻāĻŦং hashCode() āĻŽ্āϝাāύুā§াāϞি āϞিāĻāϤে āĻšā§।
❌ copy() āĻŽেāĻĨāĻĄ āύেāĻ, āĻŽাāύে āϏāĻšāĻে āύāϤুāύ āĻ
āĻŦāĻেāĻ্āĻ āĻŦাāύাāύো āϝাā§ āύা।
✅ Data Class āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϞে:
data class User(val name: String, val age: Int)
đ āĻāĻ āĻāĻ āϞাāĻāύে āĻ āύেāĻ āĻিāĻু āĻĢ্āϰি āĻĒেā§ে āĻেāϞাāĻŽ! đ
✔️ toString() đ āϏুāύ্āĻĻāϰāĻাāĻŦে āĻĒ্āϰিāύ্āĻ āĻāϰāĻŦে!
✔️ equals() & hashCode() đ āĻĻুāĻāĻা āĻ
āĻŦāĻেāĻ্āĻেāϰ āϤুāϞāύা āϏāĻšāĻ āĻšāĻŦে!
✔️ copy() đ āύāϤুāύ āĻ
āĻŦāĻেāĻ্āĻ āĻŦাāύাāύো āϝাāĻŦে!
✔️ componentN() đ āĻĄি-āϏ্āĻ্āϰাāĻāĻাāϰিং āϏাāĻĒোāϰ্āĻ āĻāϰāĻŦে!
đ ️ Data Class āĻিāĻাāĻŦে āĻাāĻ āĻāϰে?
data class User(val name: String, val age: Int)
fun main() {
val user1 = User("Alice", 25)
val user2 = User("Alice", 25)
println(user1) // ✅ toString() => User(name=Alice, age=25)
println(user1 == user2) // ✅ equals() => true (āĻাāϰāĻŖ āĻ্āϝাāϞু āĻāĻ)
val user3 = user1.copy(age = 30) // ✅ copy() āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰে āύāϤুāύ āĻ
āĻŦāĻেāĻ্āĻ
println(user3) // User(name=Alice, age=30)
val (name, age) = user1 // ✅ componentN() āĻĻিā§ে destructuring
println("Name: $name, Age: $age") // Name: Alice, Age: 25
}
đ 1️⃣ toString() – āϏুāύ্āĻĻāϰāĻাāĻŦে āĻĒ্āϰিāύ্āĻিং
val user = User("Bob", 28)
println(user) // User(name=Bob, age=28)
đ āϏাāϧাāϰāĻŖ āĻ্āϞাāϏ āĻšāϞে āĻāĻা User@1a2b3c āĻাāĻāĻĒেāϰ āĻšāϤো! đĩ
đ 2️⃣ equals() āĻāĻŦং hashCode() – āϤুāϞāύা āĻāϰা āϏāĻšāĻ!
val u1 = User("Alice", 25)
val u2 = User("Alice", 25)
println(u1 == u2) // ✅ true (āĻাāϰāĻŖ āĻ্āϝাāϞু āĻāĻ)
đ āϏাāϧাāϰāĻŖ āĻ্āϞাāϏ āĻšāϞে āĻŽেāĻŽোāϰি āϰেāĻĢাāϰেāύ্āϏ āĻেāĻ āĻāϰāϤো, āĻিāύ্āϤু data class āĻ্āϝাāϞু āĻেāĻ āĻāϰে!
đ 3️⃣ copy() – āύāϤুāύ āĻ
āĻŦāĻেāĻ্āĻ āϤৈāϰিāϰ āϏ্āĻŽাāϰ্āĻ āĻāĻĒাā§!
val user1 = User("Alice", 25)
val user2 = user1.copy(age = 30)
println(user2) // User(name=Alice, age=30)
đ āĻļুāϧুāĻŽাāϤ্āϰ āĻāĻāĻা āĻĒ্āϰāĻĒাāϰ্āĻি āĻেāĻ্āĻ āĻāϰে āύāϤুāύ āĻ āĻŦāĻেāĻ্āĻ āĻŦাāύাāύো āĻেāϞ! đ
đ 4️⃣ componentN() – āϏāĻšāĻ āĻĄি-āϏ্āĻ্āϰাāĻāĻাāϰিং!
val (name, age) = User("Alice", 25)
println("Name: $name, Age: $age") // Name: Alice, Age: 25
đ āĻāĻা component1() āĻ component2() āĻĢাংāĻļāύāĻে āĻŦ্āϝাāĻāĻ্āϰাāĻāύ্āĻĄে āĻāϞ āĻāϰে!
đ¯ Data Class-āĻāϰ āĻিāĻু āĻļāϰ্āϤ!
✔️ āĻĒ্āϰāĻĨāĻŽ āĻāύāϏ্āĻ্āϰাāĻ্āĻāϰে āĻāĻŽāĻĒāĻ্āώে āĻāĻāĻা āĻ্āϝাāϰিā§েāĻŦāϞ āĻĨাāĻāϤে āĻšāĻŦে!
✔️ val āĻŦা var āĻĻিā§ে āĻĄাāĻা āĻŽেāĻŽ্āĻŦাāϰ āĻĄিāĻĢাāĻāύ āĻāϰāϤে āĻšāĻŦে!
✔️ Data class abstract, open, sealed, āĻŦা inner āĻšāϤে āĻĒাāϰāĻŦে āύা!
đĨ Extra Features: Default Parameter & Custom Methods
data class Car(val brand: String, val model: String, val year: Int = 2023) {
fun carInfo() = "$brand $model ($year)"
}
fun main() {
val car1 = Car("Toyota", "Corolla")
val car2 = Car("Honda", "Civic", 2020)
println(car1.carInfo()) // Toyota Corolla (2023)
println(car2.carInfo()) // Honda Civic (2020)
}
đ āϏংāĻ্āώেāĻĒে āϏ্āĻŽাāϰ্āĻ āϰিāĻ্āϝাāĻĒ!
✅ Data class āĻļুāϧু āĻĄাāĻা āĻš্āϝাāύ্āĻĄāϞ āĻāϰাāϰ āĻāύ্āϝ āĻĒাāϰāĻĢেāĻ্āĻ!
✅ toString(), equals(), hashCode(), copy(), componentN() āĻĢ্āϰি āĻĒাā§!
✅ āĻোāĻĄ āĻোāĻ āĻāϰে, āĻ্āϞিāύ āĻāϰে, āϏ্āĻŽাāϰ্āĻ āĻāϰে!
āĻāĻāύ āĻāĻĒāύি data class āĻāĻāĻĻāĻŽ āϏ্āĻŽাāϰ্āĻāϞি āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻĒাāϰāĻŦেāύ! đđĨ
Comments
Post a Comment