ডেটা ক্লাস এমন একটি ক্লাস যা একটি অ্যাপ্লিকেশনের ডেটা ধারণ করে। এটি ঠিক একটি POJO ক্লাসের মতো যা আমরা জাভাতে ডেটা ধরে রাখার জন্য ব্যবহার করি।
জাভাতে, ডেটা ক্লাসের জন্য, আমাদের গেটার তৈরি করতে হবে এবং সেটার যে শ্রেণীর বৈশিষ্ট্য অ্যাক্সেস করার জন্য পদ্ধতি। কোটলিনে, যখন একটি ক্লাসকে ডেটা ক্লাস হিসাবে ঘোষণা করা হয়, তখন কম্পাইলার স্বয়ংক্রিয়ভাবে ক্লাসের সদস্য ভেরিয়েবল অ্যাক্সেস করার জন্য প্রয়োজনীয় কিছু সহায়ক পদ্ধতি তৈরি করে। কম্পাইলার গেটার তৈরি করবে এবং সেটার কনস্ট্রাক্টর প্যারামিটারের জন্য, হ্যাশকোড(), সমান(), toString(), কপি()।
কোটলিনে একটি শ্রেণীকে ডেটা ক্লাস হিসাবে বিবেচনা করার জন্য, নিম্নলিখিত শর্তগুলি পূরণ করতে হবে -
-
প্রাথমিক কনস্ট্রাক্টরের অন্তত একটি প্যারামিটার থাকতে হবে।
-
সমস্ত প্রাথমিক কনস্ট্রাক্টর প্যারামিটারগুলিকে val হিসাবে চিহ্নিত করতে হবে৷ অথবা var .
-
ডেটা ক্লাসগুলি বিমূর্ত, খোলা, সিল করা, হতে পারে না৷ অথবা অভ্যন্তরীণ।
আমরা একটি ডেটা ক্লাস প্রসারিত করতে পারি না কিন্তু একই বৈশিষ্ট্য বাস্তবায়নের জন্য, আমরা একটি সুপার ক্লাস ঘোষণা করতে পারি এবং একটি সাব-ক্লাসে বৈশিষ্ট্যগুলিকে ওভাররাইড করুন৷
উদাহরণ
নিম্নলিখিত উদাহরণে, আমরা দুটি ডেটা ক্লাস "ছাত্র" এবং "বই" তৈরি করব। আমরা একটি বিমূর্ত ক্লাস "রিসোর্স" তৈরি করব। "বুক" এর ভিতরে, আমরা "রিসোর্স" ক্লাসের বৈশিষ্ট্যগুলিকে ওভাররাইড করব৷
data class Student(val name: String, val age: Int) fun main(args: Array) { val stu = Student("Student1", 29) val stu2 = Student("Student2", 30) println("Student1 Name is: ${stu.name}") println("Student1 Age is: ${stu.age}") println("Student2 Name is: ${stu2.name}") println("Student2 Age is: ${stu2.age}") val b=Book(1L,"India","123222") // implementing abstract class println(b.location) } // declaring super class abstract class Resource { abstract var id: Long abstract var location: String } // override the properties of the Resource class data class Book ( override var id: Long = 0, override var location: String = "", var isbn: String ) : Resource()
আউটপুট
এটি নিম্নলিখিত আউটপুট −
তৈরি করবেStudent1 Name is: Student1 Student1 Age is: 29 Student2 Name is: Student2 Student2 Age is: 30 India