Kotlin 생성자
10 Apr 2019 | Kotlinconstructor 키워드
기본적으로 코틀린에서 클래스 생성자는 다음과 같이 클래스 선언부에서 constructor 키워드를 시용해서 만들어줍니다.
class Person constructor(name: String, age: Int)
위와 같이 클래스 선언부에서 생성자를 사용할 때는 constructor 키워드를 생략할 수 있습니다.
class Person(name: String, age: Int)
생성자를 여러 개 선언할 경우
class Person() {
    constructor(name: String, age: Int) : this()
    constructor(name: String) : this()
}
class Person(name: String) {
    constructor(name: String, age: Int) : this(name)
}
와 같은 형태로 사용할 수 있습니다. 생성자 뒤에 this 함수 호출하는 부분은 필수입니다.
생성자 매개 변수의 기본값 설정
class Person(name: String = "default", age: Int = 0)
생성자 함수 바디
클래스에서 변수의 값 선언 외에 별도 처리가 필요한 경우는 init {} 함수를 사용해서 처리할 수 있습니다.
class Person(var name: String?, val age: Int = 0) {
    init {
        if (name.isNullOrEmpty()) {
            name = "snowdeer"
        }
    }
}
생성자 매개 변수에서 val, var 등의 선언이 생략되면 기본적으로는 val로 인식이 됩니다.
접근 제한자
- private: 클래스 내부에서만 접근 가능
- protected: 상속받은 클래스에서만 접근 가능
- internal: 같은 모듈 안에서만 접근 가능
- 생략: 생략된경우 public로 간주됨
