[Kotlin] 생성자

최율·2022년 12월 7일

Kotlin

목록 보기
4/10

주생성자 작성 방법

코틀린에서 주 생성자를 작성하는 방법은 2가지 정도가 존재한다.

// 첫번째 방법
class Person(val name: String, val age: Int) {}

// 두번째 방법
// constructor 키워드를 붙이고 내부에 init 블럭 내에서 생성자 선언
// init 블록의 내용은 주생성자가 실행된 직후 실행된다.
class Person constructor(name: String) {
	val testName: String
    init {
    	testName = name
    }
}

주생성자 가시성 설정

주생성자를 숨겨 클래스 이외의 곳에서 인스턴스화 할 수 없게 만드려면 다음과 같이 선언한다.

// 주생성자에 private 설정
class Hidden private constructor {
    fun showMe() = println("HaHa")
}

fun main() {
	val hidden = Hidden() // compile error
}

부생성자 선언

// 주생성자가 존재할 때 constructor 를 사용해 부생성자 선언이 가능
// 주생성자가 존재하는 경우 부생성자는 반드시 주생성자를 상속해야한다.
class Person(val name: String, val age: Int) {
	constructor(onlyName: String): this(onlyName, 0)
    constructor(): this("", 0)
}

// 주생성자가 존재하지 않는 경우 블록을 열어 생성자를 정의해주면 된다.
class Car {
    val name: String
    constructor(carName: String) {
        this.name = carName
    }
    constructor() {
        this.name = "UNKNOWN"
    }
}
profile
공부한 것을 기록하고 공유하는 학생입니다!

0개의 댓글