class Person(var name:String, var birth:Int)
: 새로운 인스턴스를 만들기 위해 호출하는 특수한 함수
인스턴스의 속성 초기화와 동시에 인스턴스 생성시 구문을 수행(init)
fun main() {
var a = Person("박보영", 1990)
var b = Person("전정국", 1997)
var c = Person("장원영", 2004)
}
class Person(var name:String, var birth:Int) {
init {
println("${this.birth}년생 ${this.name}님이 생성되었습니다.")
}
}
1990년생 박보영님이 생성되었습니다.
1997년생 전정국님이 생성되었습니다.
2004년생 장원영님이 생성되었습니다.
클래스를 만들 때 기본으로 선언되는 것을 기본 생성자, 필요에 따라 추가적으로 선언되는 것을 보조 생성자 라고 한다.
보조 생성자는 인스턴스 생성시 편의를 제공하거나 추가적인 구문을 수행하는 기능을 제공하는 역할을 한다.
반드시 기본 생성자를 통해 속성을 초기화해줘야 한다.
보조 생성자가 기본 생성자를 호출하도록 하려면 :을 붙인 후 this라는 키워드를 사용하고 기본 생성자가 필요로 하는 파라미터를 () 안에 넣어주면 된다.
fun main() {
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, var birth:Int) {
init {
println("${this.birth}년생 ${this.name}님이 생성되었습니다")
}
constructor(name:String) : this(name, 1997) {
println("보조생성자가 사용되었습니다")
}
}
1990년생 박보영님이 생성되었습니다
1997년생 전정국님이 생성되었습니다
2004년생 장원영님이 생성되었습니다
1997년생 이루다님이 생성되었습니다
보조생성자가 사용되었습니다
1997년생 차은우님이 생성되었습니다
보조생성자가 사용되었습니다
1997년생 류수정님이 생성되었습니다
보조생성자가 사용되었습니다