Kotlin에서의 Class 선언

코틀린에선 Class 키워드를 통해 객체를 선언함.

꼴을 표현하면 아래와 같음.

class 객체명(val 속성명: 속성 타입, ...) {
	객체 내용
}

괄호 안에는 객체가 가지게 되는 고유의 값인 속성을 설정할 수 있음

괄호 자체는 클레스 헤더라고 함

객체 내용엔 변수, 함수 등을 선언할 수 있음

다음은 객체 예시임

class Contact(val id: Int, var email: String) /*<-- 클래스 헤더*/{  
    val category: String = "";  
    fun printId() {  
        println(id);  
    }  
}  

인스턴스 생성

코틀린에서 인스턴스 생성은 다음과 같은 모양으로 함

val 변수명 = 객체명(속성 값01, 속성 값02)

속성 값은 객체 선언시에 사용된 타입 그대로 넣어줘야 함

fun main() {  
    val contact = Contact(3, "qmoy2510@gmail.com");  
}  

뒤 코드는 conatct라는 객체의 속성인 id값을 3, email을 qmoy2510… 으로 설정하며 인스턴스를 생성한다는 얘기임


데이터 클래스

데이터 클래스는 기존 클래스와 동일한 기능들을 가지고 있지만, 추가적인 멤버 함수가 포함되어 있는 클래스

포함 되어있는 멤버 함수는 다음과 같다.

함수명함수 기능리턴 타입
equals()인자로 들어온 객체 인스턴스가 호출한 객체와 동일한 인스턴스인지 비교해준다boolean
toString()호출한 객체의 속성을 텍스트로 반환 해준다String
copy()호출한 객체와 동일한 인스턴스의 주소를 가진 객체를 반환한다. (얕은 복사)Object