728x90
enum class란 무엇인가?
enum이란 열거형으로 서로 연관된 상수들의 집합을 의미하며, 상수를 정의할 때 발생하는 문제를 보완하기 위해 탄생했습니다.
enum class의 장점 : 코드 단순화, 인스턴스 생성과 상속 방지로 상수값의 타입 안전성을 보장, enum을 통한 구현 의도를 쉽게 파악할 수 있습니다.
enum class RESPONSE_STATE {
OK,
FAIL,
}
--------------------------------
RESPONSE_STATE.OK
위 코드를 보면 알 수 있듯이 RESPONSE_STATE라는 class에 OK, FAIL이란 상수를 정의하여, 사용이 가능합니다.
companion object란 무엇인가?
자바에서의 static method처럼 Kotlin에선 companion object가 있습니다.
이것은 엄연히 하나의 객체이기 때문에, 이름을 가질 수 도 있고! 인터페이스 구현도 가능합니다.
중요한 점은 class, 즉 설계도에 붙어있는 객체이기 때문에 프로세스에서 한 인스턴스만 존재하게 됩니다. 즉, 싱글턴 패턴이 되는 것이죠!
const val란 무엇인가?
일반 val property는 런타임에 할당되는데, 이 경우엔 컴파일 시간에 결정되는 상수입니다.
함수나 클래스의 생성자에게도 결코 할당될 수 없고!! 오직 문자열 또는 기본 자료형으로 할당되어야 하므로 전역변수나 지역변수로 사용할 수 없습니다. 주로 companion object에서 선언합니다.
오늘은 상수와 관련된 것들을 알아보았는데, 상수를 사용하는 이유가 뭘까? 라는 생각을 해봤고, 구글링해봤더니 변수를 사용하게되면 메모리를 다양하게 사용하여 메모리에 대한 비효율성이 있고 성능을 위해 상수를 사용하는 것이 좋다고 합니다.
'Kotlin' 카테고리의 다른 글
Kotlin : lateinit (property, Field, 지역변수) (0) | 2021.06.08 |
---|---|
Kotlin Scope Function(apply, with, let, also, run) (0) | 2021.06.06 |
Kotlin의 Null Safe (0) | 2021.06.06 |
Kotlin이란 (for, while, when문) (0) | 2021.06.06 |
Kotlin - 변수, 문자열 템플릿, (0) | 2021.02.07 |