

Dart 문법 OOP - enumDart/OOP2024. 8. 21. 16:04
Table of Contents
enum의 기본 개념
enum은 상수 데이터들의 집합이다.
주로 특정한 상태나 옵션 값들을 한정적인 선택지로 제공할 때 사용된다.
Dart에서 enum 사용하기
다음은 Dart에서 enum을 정의하고 사용하는 기본적인 예제이다:
이 예제에서:
- enum 선언: enum Color { red, green, blue }
- Color라는 enum 타입을 선언한다.
- enum은 클래스의 일종이므로 함수나 다른 클래스 안에 정의될 수 없다.
- enum 타입의 color 클래스: Color
- enum 키워드를 클래스 앞에 선언하면, 해당 클래스는 Enum(열거형) 클래스가 된다.
- enum의 모든 값 조회: Color.values
- Enum 값을 사용하려면 Enum 클래스 이름과 값 이름을 . 연산자로 연결한다.
- enum의 모든 열거값 목록을 얻을 수 있다.
- 출력 결과: [Color.red, Color.green, Color.blue]
- index와 name 멤버:
- 각 열거값은 index와 name 멤버를 갖는다.
- index: 0부터 시작하여 순차적으로 부여된 값
- name: 각 열거값의 이름
- switch 문에서 enum 사용:
- enum을 switch 문에서 사용할 때는 모든 열거값에 대한 처리를 포함해야 한다.
- 누락된 case가 있으면 경고가 발생한다.
enum의 고급 기능 (Dart 2.17 이상)
Dart 2.17부터 enum에 더 많은 기능이 추가되었다:
이 예제에서는:
- enum에 생성자를 추가했다.
- 각 열거값에 추가적인 속성을 부여했다.
- enum에 메서드를 정의했다.
enum 사용의 이점
- 타입 안전성: 컴파일 시점에 타입 체크가 가능하다.
- 코드 가독성: 의미 있는 이름으로 상수를 표현할 수 있다.
- 유지보수성: 관련된 상수들을 그룹화하여 관리할 수 있다.
- 실수 방지: 제한된 선택지만 사용 가능하므로 잘못된 값 사용을 방지한다.
주의사항
- 확장 불가: enum은 다른 클래스를 상속받거나 인터페이스를 구현할 수 없다.
- 인스턴스화 불가: enum의 새로운 인스턴스를 생성할 수 없다.
- 값 추가/제거 시 주의: enum에 값을 추가하거나 제거할 때는 해당 enum을 사용하는 모든 코드를 검토해야 한다.
'Dart > OOP' 카테고리의 다른 글
정적 메서드와 정적 속성 접근 (0) | 2024.09.07 |
---|---|
Dart 메서드의 매개변수 타입으로 클래스 사용하기 (1) | 2024.08.31 |
Dart 문법 OOP - 메서드 호출, 캐스케이드 연산자 (0) | 2024.08.21 |
Dart 문법 OOP - static (0) | 2024.08.21 |
Dart 문법 OOP - 제네릭 (0) | 2024.08.21 |

@codeJunH :: codeJunH의 IT 공부 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!