data
키워드로 선언하며 자주 사용하는 데이터를 객체로 묶어준다.
VO(value-object)클래스를 편리하게 사용할 수 있다.
data class DataClass(val name:String, val email: String)
equals()
함수로 객체가 아닌 객체 내부 데이터를 비교할 수 있다. ( 주 생성자의 변수만 비교한다.)data1.equals(data2)
var
, val
로 생성해 멤버변수로 활용한다.toString()
을 통해 내부 데이터를 출력할 수 있다.data.toString()
코틀린의 오브젝트 클래스는 익명 클래스를 만들 목적으로 사용한다.
클래스 이름이 없어 선언과 동시에 객체를 생성한다.
open class Super{
open var data = 10
open fun some(){
println("asdf")
}
}
val obj = object:Super(){
override var data = 20
override fun some(){
println("qwer")
}
}
object
에는 반드시 상속받는 클래스를 뒤에 붙여줘야 한다. 아니면 Any
(최상위) 클래스를 상속받는다.
멤버변수나 함수를 클래스 이름으로 접근하고자 할때 사용한다.
class MyClass{
companion object {
var data = 10
fun some(){
print("asdf")
}
}
}
fun main(){
MyClass.data = 20
MyClass.some()
}
자바의 static
같은 역할을 한다. 코틀린은 최상위에 변수를 선언할 수 있어 자바처럼 static
의 필요성이 크진 않다.