[kotlin] constructor default value

나호영·2023년 3월 30일
fun main(args: Array<String>){
    val p1 = Point(1)
    val p2 = Point(1,2)
    val p3 = Point(1,2,3)

}

class Point(var x: Int, var y: Int = 0, var z:Int = 0){}

위와 같이 멤버 변수를 디폴트 값으로 설정하면 코틀린의 primary constructor가 우리가 따로 정의하지 않아도 자동으로 overloading 된다.

fun main(args: Array<String>){
    val p1 = Point(1, z= 0)
    val p2 = Point(1, z = 3)
    val p3 = Point(1,2,3)

}

class Point(var x: Int, var y: Int = 0, var z:Int){}

위와 같이 디폴트 값을 제일 마지막부터 순서대로 넣지 않더라도 생성자 파라미터에 explicit하게 멤버 변수를 넣어주면 오류가 발생하지 않는다. 하지만 readability가 떨어지고 원하지 않는 결과를 초래할 수도 있기 때문에 권장되지 않는다.

profile
공부 내용 기록

0개의 댓글