데이터 클래스는 애플리케이션에 대한 데이터를 보유하는 클래스입니다. 데이터를 유지하기 위해 Java에서 사용하는 POJO 클래스와 같습니다.
Java에서 데이터 클래스에 대해 getter를 만들어야 합니다. 및 세터 해당 클래스의 속성에 접근하기 위한 메소드. Kotlin에서 클래스가 데이터 클래스로 선언되면 컴파일러는 클래스의 멤버 변수에 액세스하는 데 필요한 일부 지원 메서드를 자동으로 생성합니다. 컴파일러는 게터를 생성합니다. 및 세터 생성자 매개변수의 경우 hashCode(), equals(), toString(), copy()
Kotlin에서 클래스를 데이터 클래스로 간주하려면 다음 조건이 충족되어야 합니다. -
-
기본 생성자에는 하나 이상의 매개변수가 있어야 합니다.
-
모든 기본 생성자 매개변수는 val로 표시해야 합니다. 또는 var .
-
데이터 클래스는 추상, 개방, 봉인일 수 없습니다. 또는 내부
데이터 클래스를 확장할 수는 없지만 동일한 기능을 구현하기 위해 수퍼 클래스를 선언할 수 있습니다. 하위 클래스의 속성을 재정의합니다.
예시
다음 예에서는 "Student"와 "Book"이라는 두 개의 데이터 클래스를 생성합니다. 우리는 또한 추상 클래스 "Resource"를 생성할 것입니다. "Book" 내에서 "Resource" 클래스의 속성을 재정의합니다.
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