डेटा क्लास एक ऐसा वर्ग है जो किसी एप्लिकेशन के लिए डेटा रखता है। यह एक POJO वर्ग की तरह है जिसका उपयोग हम जावा में डेटा रखने के लिए करते हैं।
जावा में, डेटा क्लास के लिए, हमें गेटर . बनाना होगा और सेटर उस वर्ग के गुणों तक पहुँचने के लिए तरीके। कोटलिन में, जब एक वर्ग को डेटा वर्ग के रूप में घोषित किया जाता है, तो संकलक स्वचालित रूप से कक्षा के सदस्य चर तक पहुँचने के लिए आवश्यक कुछ सहायक विधियाँ बनाता है। कंपाइलर गेटर्स create बनाएगा और सेटर्स कंस्ट्रक्टर पैरामीटर के लिए, हैशकोड (), बराबर (), टूस्ट्रिंग (), कॉपी ()।
कोटलिन में एक वर्ग को डेटा वर्ग के रूप में माना जाने के लिए, निम्नलिखित शर्तों को पूरा करना होगा -
-
प्राथमिक कंस्ट्रक्टर के पास कम से कम एक पैरामीटर होना चाहिए।
-
सभी प्राथमिक कंस्ट्रक्टर पैरामीटर को val . के रूप में चिह्नित करने की आवश्यकता है या वर ।
-
डेटा वर्ग सार, खुला, सील, . नहीं हो सकता या आंतरिक।
हम एक डेटा वर्ग का विस्तार नहीं कर सकते हैं, लेकिन उसी सुविधा को लागू करने के लिए, हम एक सुपर क्लास . घोषित कर सकते हैं और गुणों को उप-वर्ग . में ओवरराइड करें
उदाहरण
निम्नलिखित उदाहरण में, हम दो डेटा वर्ग "छात्र" और "पुस्तक" बनाएंगे। हम एक अमूर्त वर्ग "संसाधन" भी बनाएंगे। "पुस्तक" के अंदर, हम "संसाधन" वर्ग के गुणों को ओवरराइड करेंगे।
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