কটলিনে Data Classes এর মাধ্যমে copy, toString, equals, এবং hashCode মেথডগুলো স্বয়ংক্রিয়ভাবে তৈরি করা হয়, যা আপনার কোডকে সংক্ষিপ্ত এবং রিডেবল রাখে। এগুলো মূলত অবজেক্টের প্রপার্টি এবং আচরণ ম্যানেজ করতে ব্যবহৃত হয়। নিচে প্রতিটি মেথডের বিস্তারিত আলোচনা করা হলো:
১. copy মেথড
copy মেথড Data Class থেকে একটি নতুন অবজেক্ট তৈরি করে, যা মূল অবজেক্টের প্রোপার্টিগুলো কপি করে এবং নির্দিষ্ট প্রোপার্টি আপডেট করতে দেয়। এটি ডেটা ইম্যুটেবিলিটি বজায় রাখতে সাহায্য করে, কারণ আপনি একই অবজেক্ট পরিবর্তন না করে নতুন অবজেক্ট তৈরি করতে পারেন।
উদাহরণ:
data class User(val name: String, val age: Int)
fun main() {
val user1 = User("Alice", 25)
val user2 = user1.copy(age = 30)
println(user1) // আউটপুট: User(name=Alice, age=25)
println(user2) // আউটপুট: User(name=Alice, age=30)
}
ব্যাখ্যা:
user1অবজেক্ট থেকেuser2তৈরি করা হয়েছে, তবেageপ্রোপার্টিটি পরিবর্তন করা হয়েছে।- মূল অবজেক্ট অপরিবর্তিত থাকে, এবং নতুন অবজেক্টে পরিবর্তিত মান সেট করা হয়।
২. toString মেথড
toString মেথড একটি অবজেক্টের স্ট্রিং রিপ্রেজেন্টেশন প্রদান করে, যা সাধারণত ডিবাগিং বা লগিংয়ের সময় কাজে লাগে। Data Class ব্যবহার করলে কটলিন স্বয়ংক্রিয়ভাবে একটি ভালো ফরম্যাটেড toString মেথড তৈরি করে।
উদাহরণ:
data class User(val name: String, val age: Int)
fun main() {
val user = User("Bob", 28)
println(user.toString()) // আউটপুট: User(name=Bob, age=28)
}
ব্যাখ্যা:
Userঅবজেক্টেরtoStringমেথড স্বয়ংক্রিয়ভাবে প্রোপার্টির নাম এবং মান সহ স্ট্রিং আকারে রিটার্ন করে।
৩. equals মেথড
equals মেথড দুটি অবজেক্ট সমান কিনা তা চেক করে। Data Class ব্যবহার করলে কটলিন স্বয়ংক্রিয়ভাবে equals মেথড তৈরি করে, যা অবজেক্টের সমস্ত প্রোপার্টির মানের সাথে তুলনা করে।
উদাহরণ:
data class User(val name: String, val age: Int)
fun main() {
val user1 = User("Alice", 25)
val user2 = User("Alice", 25)
val user3 = User("Charlie", 30)
println(user1 == user2) // আউটপুট: true
println(user1 == user3) // আউটপুট: false
}
ব্যাখ্যা:
user1এবংuser2এর প্রোপার্টির মান সমান, তাইequalsমেথডtrueরিটার্ন করছে।user1এবংuser3এর মান ভিন্ন, তাইequalsমেথডfalseরিটার্ন করছে।
৪. hashCode মেথড
hashCode মেথড অবজেক্টের একটি হ্যাশ কোড প্রদান করে, যা অবজেক্টকে একটি ইউনিক আইডেন্টিফায়ার হিসেবে কাজ করে। Data Class-এ, কটলিন স্বয়ংক্রিয়ভাবে hashCode মেথড তৈরি করে, যা অবজেক্টের প্রোপার্টিগুলোর ভিত্তিতে একটি হ্যাশ কোড জেনারেট করে।
উদাহরণ:
data class User(val name: String, val age: Int)
fun main() {
val user1 = User("Alice", 25)
val user2 = User("Alice", 25)
val user3 = User("Charlie", 30)
println(user1.hashCode()) // একটি নির্দিষ্ট হ্যাশ কোড রিটার্ন করবে
println(user2.hashCode()) // একই হ্যাশ কোড রিটার্ন করবে (user1 এর মত)
println(user3.hashCode()) // ভিন্ন হ্যাশ কোড রিটার্ন করবে
}
ব্যাখ্যা:
user1এবংuser2এর প্রোপার্টির মান একই, তাই তাদের হ্যাশ কোডও একই হবে।user3এর প্রোপার্টি ভিন্ন, তাই তার হ্যাশ কোড ভিন্ন হবে।
উপসংহার
কটলিনের Data Class ব্যবহার করে আপনি স্বয়ংক্রিয়ভাবে copy, toString, equals, এবং hashCode মেথড তৈরি করতে পারেন, যা ডেটা মডেল ব্যবহারে সহজ এবং কার্যকরী করে তোলে। এই মেথডগুলো ডেটা ম্যানেজমেন্ট, ডিবাগিং, এবং তুলনা করার ক্ষেত্রে খুবই গুরুত্বপূর্ণ।
Read more