คลาสข้อมูลเป็นคลาสที่เก็บข้อมูลสำหรับแอปพลิเคชัน มันเหมือนกับคลาส 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