투케이2K

96. (TWOK/ALGORITHM) [Kotlin] 문법 - sealed class 추상 클래스 선언 및 data class 하위 클래스 생성 실시 본문

투케이2K 알고리즘

96. (TWOK/ALGORITHM) [Kotlin] 문법 - sealed class 추상 클래스 선언 및 data class 하위 클래스 생성 실시

투케이2K 2023. 1. 24. 11:23
반응형

[환경 설정 및 설명]

언어 : Kotlin

설 명 : 문법 - sealed class 추상 클래스 선언 및 data class 하위 클래스 생성 실시

 

[소스 코드]

 

// -----------------------------------
// [요약 설명]
// -----------------------------------
// 1. sealed class 는 자기 자신이 추상 클래스이고, 자신을 상속 받는 여러 서브 클래스 들을 가질 수 있습니다
// 2. sealed class 는 enum 클래스와 달리 상속을 지원합니다 
// 3. sealed class 는 상속받는 서브 클래스의 종류를 제한할 수 있습니다 
// 4. sealed class 의 sub class 들은 반드시 같은 파일 내에 선언되어야 합니다 
// 5. sealed class 는 기본적으로 abstract class 입니다
// 6. sealed class 는 private 생성자만 가집니다
// 7. sealed class 의 하위 클래스는 class, data class, object class 로 정의할 수 있습니다
// -----------------------------------
 

// -----------------------------------
// [클래스 생성 실시]
// -----------------------------------
sealed class Color {
    
    data class Red(val r: Int, val g: Int, val b: Int) : Color()
    data class Green(val r: Int, val g: Int, val b: Int) : Color()
    data class Blue(val r: Int, val g: Int, val b: Int) : Color()
    
}


// -----------------------------------
// [메인 동작 실시]
// -----------------------------------
fun main() {

	val color: Color = Color.Red(255, 0, 0) // Color 클래스 생성
    println(color)
    
    when (color){
        is Color.Red -> println("Red 입니다")
        is Color.Green -> println("Green 입니다")
        is Color.Blue -> println("Blue 입니다")
    }
}


// -----------------------------------
// [결과 출력]
// -----------------------------------
// Red(r=255, g=0, b=0)
// Red 입니다
// -----------------------------------

 


 

반응형
Comments