Kotlin

[Kotlin] 8. 클래스 생성, 생성자, init, constructor (보조 생성자 )

98kg 2024. 3. 12. 17:28

클래스 생성

 

class Person(var name:String, var birthYear:Int){
    
}

 

인스턴스 생성 후 출력

fun main() {
    var a = Person("박보영",1990)
    var b =Person("전정국", 1997)
    var c = Person("장원영", 2004)
    
    println("안녕하세요!! 제 이름은 ${a.name} 이고 저는 ${a.birthYear} 년생 입니다.")
    
}

 

매번 println을 사용하기에 번거로우니 클래스에서 공통적으로 사용한 자기소개 함수를 생성해서 사용하겠습니다.

 

fun main() {
    var a = Person("박보영",1990)
    var b =Person("전정국", 1997)
    var c = Person("장원영", 2004)
    
   a.introduce()
    
}

class Person(var name:String, var birthYear:Int){
	

    fun introduce(){
        println("안녕하세요!! 제 이름은 ${name} 이고 저는 ${birthYear} 년생 입니다.")
    }
    
}

 

init 

 

인스턴스 생성 시 구문을 수행하는 기능을 넣을 수 있다.

 

fun main() {
    var a = Person("박보영",1990)
    var b =Person("전정국", 1997)
    var c = Person("장원영", 2004)
    
   a.introduce()
    
}

class Person(var name:String, var birthYear:Int){
	init{
    	println("인스턴스 생성 완료 이름 : ${this.name} 탄생연도 : ${this.birthYear}") 
    }

    fun introduce(){
        println("안녕하세요!! 제 이름은 ${name} 이고 저는 ${birthYear} 년생 입니다.")
    }
    
}

 

보조 생성자 : 기본 생성자와 다른형태의 생성자를 만들어 인스턴스 생성 시 편의를 제공하거나 추가적인 구문을 수행하는 기능을 제공하는 역할을 한다

 

보조 생성자는 constructor 이라는 키워드를 사용하여 생성한다

: (콜론) 을 붙이고 this라는 키워드를 사용하여 기본 생성자가 필요로 하는 파라미터의 값을 넣어주면 됩니다.

fun main() {
 	var a = Person("박보영",1990)
    var b =Person("전정국", 1997)
    var c = Person("장원영", 2004)
    
    
    var d = Person("이루다")
    var e = Person("차은우")
    var f = Person("류수정")
   a.introduce()
    
}

class Person(var name:String, var birthYear:Int){
    init{
    	println("인스턴스 생성 완료 이름 : ${this.name} 탄생연도 : ${this.birthYear}") 
    }
    constructor (name:String):this(name,1997){
        println("보조 생성자 사용")     // 이 부분
    }
    fun introduce(){
       
        println("안녕하세요!! 제 이름은 ${name} 이고 저는 ${birthYear} 년생 입니다.")
    }
    
}

 

 

이렇게 보조생성자가 정상적으로 작동하는 것을 볼 수 있다.