찌니의 프로그래밍 삼매경

[kotlin] 코틀린 클래스 생성자 본문

코틀린

[kotlin] 코틀린 클래스 생성자

zzI니☆ 2021. 9. 10. 01:10
728x90

 

생성자란?

새로운 인스턴스를 만들기 위해 호출하는 특수한 함수
생성자를 호출하면 클래스의 인스턴스를 만들어 반환받을 수 있다

생성자의 기능?

인스턴스의 속성을 초기화
인스턴스 생성시 구문을 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("보조생성자 수행 성공")
	}
}

728x90

'코틀린' 카테고리의 다른 글

[kotlin] 코틀린 클래스의 상속  (0) 2021.09.12
[kotlin] 코틀린 클래스 기본구조  (3) 2021.09.08
[kotlin] 코틀린 반복문  (0) 2021.09.07
[kotlin] 코틀린 조건문 비교연산자  (2) 2021.09.06
[kotlin] 코틀린 함수  (0) 2021.08.18
Comments