Kotlin에서 클래스를 생성하려면 기본적으로는 Java와 똑같으나, 생성자를 만드는 방법은 다르다. Java에서는 클래스와 같은 이름의 method를 만들어서 생성자를 만들었으나, 코틀린에서는 init이라는 기본 생성자 함수와 constructor라는 보조 생성자 함수를 통해서 생성자를 만들 수 있다. 즉, 어떻게 보면 생성자를 만드는 방법은 Kotlin이 더 다양한 것이다. 아래의 예제를 보자.

출처: 테크과학! DiMo

Kotlin 강좌 #9 - 클래스의 생성자

fun main(args: Array<String>) {

    var a = Person("박보영", 1990)
    var b = Person("전정국", 1997)
    var c = Person("장원영", 2004)

    var d = Person("이루다")
    var e = Person("차은우")
    var f = Person("류수정")

}

class Person(var name: String, val birthYear: Int) {
    init {
        println("${this.name}, ${this.birthYear}")
    }

    constructor(name: String) : this(name, 1997) {
        println("보조 생성자가 실행되었습니다.")
    }
}

기본 생성자를 통해 만드는 경우 별도의 지정 없이 init을 넣어주면 된다. 하지만, constructor의 경우 생성할 변수를 넣어주고 꼭 콜론 : this()를 통해 생성해야한다. 이렇게 지정하는 이유는 보조 생성자를 만들 때는 기본 생성자를 통해 반드시 속성을 초기화해주어야 하기 때문이며, 보조 생성자가 기본 생성자를 호출해야 하기 때문이다. 이때 this라는 키워드를 사용한다. 그리고 기본 생성자가 필요로 하는 파라미터를 괄호 안에 넣어주면 된다.(클래스를 만들 때 작성한 속성)

즉 기본 생성자와 보조 생성자는 다양한 방법으로 인스턴스를 생성하도록 사용자들에게 편의를 제공하는 기능인 것이다.

profile
'개발'은 '예술'이고 '서비스'는 '작품'이다

0개의 댓글