코틀린 강좌 #8 클래스의 생성자

Kotlin/기본 문법 · 2020. 12. 17. 12:28

테크과학! DiMo

 

테크과학! DiMo

개발자가 얘기하는 생활 속 IT기술에 대한 과학! 여러분이 몰랐던, 혹은 정확히 알지 못했던 IT 테크놀러지를 파드립니다! 좋은 영상을 위한 채널 후원, 투네이션을 통해서 해주세요! 후원링크 htt

www.youtube.com

 

 

개발 환경: 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년생 자바님이 생성되었습니다.
보조 생성자가 사용되었습니다.