คลาสข้อมูลเป็นคลาสที่เก็บข้อมูลสำหรับแอปพลิเคชัน มันเหมือนกับคลาส POJO ที่เราใช้ใน Java เพื่อเก็บข้อมูล
ใน Java สำหรับ data class เราต้องสร้าง getter และ เซ็ตเตอร์ เมธอดเพื่อเข้าถึงคุณสมบัติของคลาสนั้น ใน Kotlin เมื่อคลาสถูกประกาศเป็นคลาสข้อมูล คอมไพเลอร์จะสร้างวิธีการสนับสนุนที่จำเป็นในการเข้าถึงตัวแปรสมาชิกของคลาสโดยอัตโนมัติ คอมไพเลอร์จะสร้าง getters และ ตัวตั้งค่า สำหรับพารามิเตอร์ตัวสร้าง hashCode(), เท่ากับ(), toString(), copy()
สำหรับคลาสที่จะถือว่าเป็นคลาสข้อมูลใน Kotlin จะต้องปฏิบัติตามเงื่อนไขต่อไปนี้ -
-
ตัวสร้างหลักต้องมีอย่างน้อยหนึ่งพารามิเตอร์
-
พารามิเตอร์คอนสตรัคเตอร์หลักทั้งหมดต้องทำเครื่องหมายเป็น val หรือ วาร์ .
-
คลาสข้อมูลไม่สามารถเป็น นามธรรม เปิด ปิดผนึก หรือ ภายใน
เราไม่สามารถขยายคลาสข้อมูลได้ แต่เพื่อใช้งานคุณลักษณะเดียวกัน เราสามารถประกาศ ซูเปอร์คลาส และแทนที่คุณสมบัติใน คลาสย่อย
ตัวอย่าง
ในตัวอย่างต่อไปนี้ เราจะสร้างคลาสข้อมูลสองคลาส "Student" และ "Book" เราจะสร้างคลาสนามธรรม "ทรัพยากร" ด้วย ภายใน "หนังสือ" เราจะแทนที่คุณสมบัติของคลาส "ทรัพยากร"
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