테크과학! DiMo
개발 환경: play.kotlinlang.org
생성자란?
새로운 인스턴스를 만들기 위해 호출하는 특수한 함수
생성자를 호출하면 클래스의 인스턴스를 만들어 반환 받을 수 있다.
생성자는 인스턴스의 속성을 초기화 할 뿐만 아니라 인스턴시 생성시 필요한 구문을 수행하는 역할.
init 함수
- 패러미터나 반환형이 없는 특수한 함수.
- 생성자를 통해 인스턴스가 만들어 질 때 호출되는 함수.
생성자 종류
- 생성자에는 클래스를 만들 때 기본으로 생되는 기본 생성자
- 필요에 따라 추가적으로 선언하는 보조 생성자(secondary constructor)
보조생성자는 기본 생성자와 다른 형태의 생성자를 제공하여 인스턴스 생성시 편의를 제공하거나 추가적인 구문을 수행
하는 기능을 제공하는 역할을 함
보조 생성자는 constructor 키워드 사용.
보조 생성자를 만들 때는 반드시 기본 생성자를 통해 속성을 초기화 해줘야 한다.
보조 생성자가 기본 생성자를 호출하도록 하려면 ': this' 사용.
fun main() {
var a = Person("홍길동", 1999)
var b = Person("둘리", 1992)
var c = Person("도우너", 1993)
var d = Person("이재용")
var e = Person("이건희")
var f = Person("자바")
}
class Person(var name:String, var birthYear:Int) {
init {
println("${this.birthYear}년생 ${this.name}님이 생성되었습니다.")
}
constructor(name:String) :this(name, 1997) {
println("보조 생성자가 사용되었습니다.")
}
}
Output:
1999년생 홍길동님이 생성되었습니다.
1992년생 둘리님이 생성되었습니다.
1993년생 도우너님이 생성되었습니다.
1997년생 이재용님이 생성되었습니다.
보조 생성자가 사용되었습니다.
1997년생 이건희님이 생성되었습니다.
보조 생성자가 사용되었습니다.
1997년생 자바님이 생성되었습니다.
보조 생성자가 사용되었습니다.
'Kotlin > 기본 문법' 카테고리의 다른 글
코틀린 강좌 #10 오버라이딩과 추상화 (0) | 2020.12.17 |
---|---|
코틀린 강좌 #9 클래스의 상속 (1) | 2020.12.17 |
코틀린 강좌 #7 클래스의 기본 구조 (0) | 2020.12.17 |
코틀린 강좌 #6 흐름제어와 논리연산자 (0) | 2020.12.12 |
코틀린 강좌 #5 반복문과 증감연산자 (0) | 2020.12.12 |