728x90
반응형
생성자: 새로운 인스턴스를 만들기 위해 호출하는 특수한 함수
생성자의 기능? 인스턴스의 속성을 초기화, 인스턴스 생성 시 구문을 수행(init 함수를 통해)
기본 생성자(init 함수)
: 파라미터나 반환형이 없는 특수한 함수. 생성자를 통해 인스턴스가 만들어질 때 호출
fun main() {
var a = Person("박보영", 1990) // 1990년생 박보영님이 생성되었습니다.
var b = Person("전정국", 1997) // 1997년생 전정국님이 생성되었습니다.
var c = Person("장원영", 2004) // 2004년생 장원영님이 생성되었습니다.
}
class Person (var name:String, var birthYear:Int) {
init {
println("${this.birthYear}년생 ${this.name}님이 생성되었습니다.")
}
}
- this - 인스턴스 자신의 속성이나 함수를 호출하기 위해 클래스 내부에서 사용되는 키워드
보조 생성자(constructor 함수)
: 필요에 따라 추가적으로 선언
보조 생성자가 기본 생성자를 호출하도록 하려면 콜론(:)을 붙인 후 this라는 키워드를 사용하고 기본 생성자가 필요로 하는 패러미터를 괄호 안에 넣어주면 된다.
fun main() {
var a = Person("박보영", 1990) // 1990년생 박보영님이 생성되었습니다.
var b = Person("전정국", 1997) // 1997년생 전정국님이 생성되었습니다.
var c = Person("장원영", 2004) // 2004년생 장원영님이 생성되었습니다.
var d = Person("이루다") // 1997년생 이루다님이 생성되었습니다.
// 보조 생성자가 사용되었습니다.
var e = Person("차은우") // 1997년생 차은우님이 생성되었습니다.
// 보조 생성자가 사용되었습니다.
var f = Person("류수정") // 1997년생 류수정님이 생성되었습니다.
// 보조 생성자가 사용되었습니다.
}
class Person (var name:String, var birthYear:Int) {
init {
println("${this.birthYear}년생 ${this.name}님이 생성되었습니다.")
}
constructor(name:String) : this(name, 1997) { // 이름은 받은 그대로 넘겨주고 년도는 1997년으로 고정하여 초기화
println("보조 생성자가 사용되었습니다.")
}
}
728x90
반응형
'Language > Kotlin' 카테고리의 다른 글
[Kotlin] 오버라이딩, 추상화, 인터페이스 (0) | 2023.09.05 |
---|---|
[Kotlin] 클래스의 상속 (0) | 2023.09.05 |
[Kotlin] 클래스의 기본 구조 (0) | 2023.09.05 |
[Kotlin] 흐름제어와 논리연산자 (0) | 2023.09.04 |
[Kotlin] 반복문과 증감연산자 (0) | 2023.09.02 |