코틀린

[Youtube DiMo] 8-9강. 클래스

iseohyun 2022. 4. 29.

목차

    https://youtu.be/oF3oV98JJuY

    https://youtu.be/Rdrg-_FnsEQ

     

    1. 클래스 기본구조

    클래스란 속성(변수)와 함수가 합쳐진 구조입니다.
    문법 : class 클래스명(속성1, 속성2) {함수1, 함수2}
    참조시에 참조연산자(마침표:.)를 이용한다. (예 : 소속.속성, 서울.강남)

     

    fun main() {
        var a = person("홍길동", 20)
        a.selfIntroduce()
        
        a.age = 30
        a.selfIntroduce()
    }
    
    class person(var name : String, var age : Int){
        fun selfIntroduce() {
            println("안녕하세요. 저는 ${age}살 ${name}입니다.")
        }
    }
    안녕하세요. 저는 20살 홍길동입니다.
    안녕하세요. 저는 30살 홍길동입니다.

     

    2. 생성자 (9장)

    클래스가 생성될 때, 실행 됨. 초기화 구문을 넣을 수 있음
    init {초기화구문}
    fun main() {
        var a = person("홍길동", 20)
        var b = person("임꺽정", 15)
    }
    
    class person(var name : String, var age : Int){
        init {
            if(age >= 20) println("성인 생성($name)")
            else println("미성년 생성($name)")
        }
    }
    성인 생성(홍길동)
    미성년 생성(임꺽정)

     

    2-2. constructor (제작자)

    default (언급하지 않았을 때, 기본적으로 설정하고자하는)를 설정을 constructor를 통해서 초기화 할 수 있습니다.
    fun main() {
        var a = person("홍길동", 20)
        var b = person("임꺽정") // 나이를 입력하지 않았지만 자동으로 입력됨
        var c = person(30)
    }
    
    class person(var name : String, var age : Int){
        init {
            println("$name / $age")
        }
        constructor(name : String) : this(name, 25)
        
        constructor(age : Int) : this("아무개", age)
    }
    홍길동 / 20
    임꺽정 / 25
    아무개 / 30

     

     

     

    댓글