public class Ex68_enum {
public static void main(String[] args) {
//Ex68_enum.java
클래스 종류
1. 클래스
2. 인터페이스
3. 추상 클래스
4. enum
열거형, Enumeration
- 여러개의 값을 가지고 있는 자료형 > 일종의 객관식(선택형)
요구사항] 의류 쇼핑몰 > 티셔츠 판매 > 고객 방문
> 티셔츠 색깔 보통 정해져 있고(빨, 파, 노) 선택을 해야 함
Case 1. 주관식 <- Danger. 오타가 날 확률 높음
String color = "빨강"; //고객이 선택
만약 "발강"이라고 오타를 내면 else에만 걸림
if(color.equals("빨강") || color.equals("노랑") || color.equals("파랑")) {
System.out.println("판매 가능");
} else {
System.out.println("재고 없음");
}
Case 2. 객관식 <- 오타날 확률이 줄어들음. 이미 제시된 선택지 중 선택만 하면 됨
int input = Color.RED; //클래스.멤버변수
// int input = 1; //<- 좋지 않음. 1의 값이 뭔지 내가 어떻게 알음?
System.out.println(Calendar.YEAR); //1 <- 우리가 만든 Color 상수랑 똑같은 방식으로 만든 것
//Calendar 클래스가 있고 그 중 하나 선택하면 그 값이 튀어나오게 만드는 방법
// Color.RED = 5; //라고 하면 안됨. 없는 숫자
if(input == 0 || input == 1 || input == 2) {
System.out.println("판매 가능");
} else {
System.out.println("재고 없음");
}
Case 3. enum
//Case 2.와 거의 유사한 방식. Case 2를 간결하게 만든 방식
Colour input2 = Colour.RED;
if(input2 == Colour.RED || input2 == Colour.YELLOW || input2 == Colour.BLUE) {
System.out.println("판매 가능");
} else {
System.out.println("재고 없음");
}
//주관식이라 위험함. 오타나면 큰일.
String gender = "남자";
String gender2 = "여자";
Gender gender3 = Gender.MALE;
//type 자체도 Gender로 맞춰서 알아보기 쉽고,
//이미 있는 옵션 중 선택하는 것이기 때문에 틀릴 가능성 낮음
}//main
}//main class
class Color{ //Case 2.
// static : 정적변수 <- 객체를 안만들어도 이미 메모리에 만들어져 있음. 클래스로 접근
public final static int RED = 0; //값을 다른걸로 입력하지 못하게 상수선언
public final static int YELLOW = 1;
public final static int BLUE = 2;
}
enum Colour { //Case 3.
RED, //= final static 상수(정수)
YELLOW,
BLUE
}
enum Gender{ //알아보기도 쉽고, 틀릴 가능성도 극히 낮아짐
MALE,
FEMALE
}
enum 직급 {
사원,
대리,
과장,
부장
}
enum 논리{
TRUE,
FALSE
}
'[JAVA] 정리 > 클래스(Class)_타입(Type)' 카테고리의 다른 글
| 클래스_오브젝트(Object) (0) | 2023.02.23 |
|---|---|
| 향상된 for문 for(자료형 변수명 : 배열명) (0) | 2023.02.23 |
| 제네릭 클래스(Generic) (0) | 2023.02.23 |
| 클래스_상속 자격(extends, implements) (0) | 2023.02.22 |
| 클래스_추상화 클래스(abstract) (0) | 2023.02.22 |