인프런 커뮤니티 질문&답변

Seongjin Lee님의 프로필 이미지
Seongjin Lee

작성한 질문수

[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법

kotlin enum class

kotlin enum class

작성

·

273

0

5:29분에서,

enum class Color(val rgb: Int){

RED(0xFF0000),

}

이런식으로 되어있잖아요.

그런데,

when(color){

Color.RED->{

println(Color.RED.rgb)

}

이렇게 해서 색깔들의 rgb 값을 가져오잖아요,

그런데 enum에서는 RED(0xFF0000) 이렇게 RED와 RGB 값이 같이 묶여서 있는데, 어떻게 Color.RED라고 인식하나요? 그리고 실제 콘솔 리턴값은 16711680이라고 나오나요???

 

제가 자바는 오랫동안 써봤는데 사실 enum에서 rgb 값은 안 써봐서 모르겠습니다.

알려주세요,

감사합니다

}

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

코틀린에서 Color.RED와 같은 enum 클래스의 값을 사용할 때, 해당 enum 클래스의 인스턴스로 인식합니다. 즉, Color.RED라고 하면 RED 인스턴스 자체를 의미하게 됩니다.

또한, RGB 값은 16진수로 표기되어 있고, 이를 10진수로 변환하면 16711680이 맞습니다.

만약 색깔에 대한 RGB 값을 enum 클래스에 명시적으로 작성하지 않았다면, Color.RED.rgb와 같은 코드는 컴파일 에러를 일으키겠지만, 이 경우엔 잘 작성되어 있기 때문에 문제 없이 실행됩니다.

이상이 도움이 되었기를 바랍니다. 감사합니다.

Seongjin Lee님의 프로필 이미지
Seongjin Lee
질문자

매우 정확히 이해했습니다.

이 늦은 시간에도 답변 주셔서 감사합니다.

Seongjin Lee님의 프로필 이미지
Seongjin Lee

작성한 질문수

질문하기