cycoding 2021. 3. 18. 14:53

여기에서는 Kotlin Class의 생성자에 대해 다뤄보고자 한다.

 

1. 기본 생성자

 

class Cake(val flavor:String?) {
	var topping : String? = null
    
    init {
    	println("기본 생성자. 케이크 맛 : ${flavor}")
    }
}

 

2. 생성자 직접 정의하기

함수 Overloading으로 여러개의 생성자를 정의해 보았다.

class Cake {
	var flavor : String? = null
    var topping : String? = null
    lateinit var price : Int
    
    constructor() {
    	println("first constructor)
    }
    
    constructor(flavor:String?) {
    	println("second constructor)
        this.flavor = flavor
    }
    
    constructor(flavor:String?, topping:String?, price:Int) {
    	println("third constructor)
        this.flavor = flavor
        this.topping = topping
        this.price = price
    }
}

 

3. 기본 생성자에서 파라미터를 직접 전달받을 경우 생성자 직접 정의하기

이 경우, constructor(parameter) : this(기본 생성자의 parameter value) {} 이런 식으로 생성자를 정의해야 한다.

 

class Cake(val flavor:String?) {
	var topping : String?
    lateinit var price : Int
    
    constructor(flavor : String?, topping : String?):this(flavor) {
    	this.topping = topping
    }
}