Copy, toString, equals, এবং hashCode মেথডস

Mobile App Development - কটলিন (Kotlin) - Data Classes এবং Sealed Classes
206

কটলিনে 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 মেথড তৈরি করতে পারেন, যা ডেটা মডেল ব্যবহারে সহজ এবং কার্যকরী করে তোলে। এই মেথডগুলো ডেটা ম্যানেজমেন্ট, ডিবাগিং, এবং তুলনা করার ক্ষেত্রে খুবই গুরুত্বপূর্ণ।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...