깡뇽

[Kotlin] 클래스 ② 본문

Android/Kotlin

[Kotlin] 클래스 ②

깡뇽 2021. 8. 26. 23:54
반응형

Day9

유튜브 "테크과학! DiMo" 《Kotlin 강좌 #9 - 클래스의 생성자》 공부.

 

- 클래스

생성자 : 새로운 인스턴스를 만들기 위해 호출하는 특수한 함수이며, 인스턴스의 속성 초기화 & 인스턴스 생성시 구문 수행함.

init 함수 : 패러미터나 반환형이 없는 함수로 생성자가 만들어질 때 호출되는 함수

this : 인스턴스 자신의 속성이나 함수를 호출하기 위해 클래스 내부에서 사용되는 키워드

 

ex) 생성자를 활용한 클래스

fun main() {
    var a = Dog("후추" , 3)
    var b = Dog("사랑" , 2)
    var c = Dog("예삐" , 1)
}

class Dog (var name:String, val age:Int){
    init{
        println("저의 애완동물 ${this.name}는 ${this.age}살입니다.")
    }
}
/*출력값
**저의 애완동물 후추는 3살입니다.
**저의 애완동물 사랑는 2살입니다.
**저의 애완동물 예삐는 1살입니다.*/

 

기본 생성자 : 클래스를 만들 때 기본으로 선언됨.

보조 생성자 : 필요에 따라 추가적으로 선언되며, 인스턴스 생성시 편의를 제공하거나 추가적인 구문을 수행하는 기능을 제공  

+ 보조 생성자를 만들 때 반드시 기본 생성자를 통해 속성을 초기화 해줘야 함-!

fun main() {
    var a = Dog("후추" , 3)
    var b = Dog("사랑" , 2)
    var c = Dog("예삐" , 1)
    
    var d = Dog("두부")
    var e = Dog("토토")
}

class Dog (var name:String, val age:Int){
    init{
        println("저의 애완동물 ${this.name}는 ${this.age}살입니다.")
    }
    
    constructor(name:String) : this(name, 2){
        println("보조 생성자")
    }
}
/*출력값
**저의 애완동물 후추는 3살입니다.
**저의 애완동물 사랑는 2살입니다.
**저의 애완동물 예삐는 1살입니다.
**저의 애완동물 두부는 2살입니다.
**보조 생성자
**저의 애완동물 토토는 2살입니다.
**보조 생성자*/
반응형

'Android > Kotlin' 카테고리의 다른 글

[Kotlin] 클래스 ③  (0) 2021.08.28
[Kotlin] 클래스 ①  (0) 2021.08.25
[Kotlin] 흐름제어와 논리연산자  (0) 2021.08.24
[Kotlin] 반복문과 증감연산자  (0) 2021.08.23
[Kotlin] 조건문과 비교연산자  (0) 2021.08.22