코틀린
[kotlin] 코틀린 클래스 생성자
웅겹사r☆
2021. 9. 10. 01:10
생성자란?
새로운 인스턴스를 만들기 위해 호출하는 특수한 함수
생성자를 호출하면 클래스의 인스턴스를 만들어 반환받을 수 있다
생성자의 기능?
인스턴스의 속성을 초기화
인스턴스 생성시 구문을 init함수를 통해 수행 가능
init 함수는 파라미터나 반환형이 없는 특수한 함수, 생성자를 통해 인스턴스가 만들어 질 때 호출되는 함수
fun main() {
// 인스턴스 생성
var a = Person("방실이", 1966)
var b = Person("나훈아", 1988)
var c = Person("임영웅", 1991)
}
class Person(var name:String, val birthYear:Int){
// init함수
init {
println("안녕하세요, ${this.birthYear}년생 ${this.name} 입니다")
}
}
보조생성자
기본 생성자와 다른 형태의 생성자를 제공하여 인스턴스 생성시 편의를 제공하거나 추가적인 구문을 수행하는 기능을 제공하는 역할
fun main() {
// 인스턴스 생성
var a = Person("방실이", 1966)
var b = Person("나훈아", 1988)
var c = Person("임영웅", 1991)
var d = Person("아이유")
var e = Person("최배달")
var f = Person("시라소니")
}
class Person(var name:String, val birthYear:Int){
// init함수
init {
println("안녕하세요, ${this.birthYear}년생 ${this.name} 입니다")
}
// 보조생성자를 만들 때는 반드시 기본생성자를 통해 속성을 초기화 시켜줘야한다
// 보조생성자가 기본생성자를 호출하게 할려면 콜론 : 붙인 후 this(기본생성자라 필요로하는 파라미터)
// name은 받은 그대로사용하고 birthYear를 1997로 고정하여 초기화하는 예제
constructor(name:String): this(name, 1997){
println("보조생성자 수행 성공")
}
}