[Java, 자바] Enum에 대하여프로그래밍/Java2024. 7. 16. 19:09
Table of Contents
728x90
Enum이란 ?
Enum은 'Enumeration'의 약자로 '열거', '목록'이라는 뜻을 가지고 있습니다. 말 그대로 관련있는 상수들의 집합이며, final로 String, int 등을 나타내는 일정 개수의 기본 자료형의 값을 고정할 수 있습니다.
Enum의 장점
Enum은 허용 가능한 값을 제한 할 수 있다는 장점을 가지고 있습니다. 예를 들어 매개변수로 문자열을 입력 받았을 경우 미리 선언해 놓은 값과 다른 값이 들어올 경우, 혹은 오타가 발생했을 때의 에러를 방지할 수 있습니다.
또한 수정 시 변경 범위가 최소화 됩니다. 즉, 확장성을 높일 수 있고 코드가 단순해져 가독성이 좋아집니다.
마지막으로 인스턴스 생성과 상속을 방지하여 상수값의 안전성이 보장된다는 장점을 가지고 있습니다.
Enum 예제
선언하기
먼저 enum 키워드를 통해 에러를 상수화하였습니다. 열거 상수는 대문자로 작성해야합니다.
기존 클래스와 동일하게 필드에 선언할 수 있으며, 생성자를 통해 해당 값을 정할 수 있고, 외부에서 값을 확인할 수 있도록 getter를 생성하였습니다.
public enum HttpStatus {
OK(200, "OK"),
BAD_REQUEST(400, "Bad Request"),
NOT_FOUNT(404, "Not Found"),
INTERNAL_SERVER_ERROR(500, "Internal Server Error");
private final int code;
private final String message;
HttpStatus(int code, String message) {
this.code = code;
this.message = message;
}
public static HttpStatus findByCode(int code) {
for (HttpStatus status : values()) {
if(status.getCode() == code) {
return status;
}
}
return null;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
}
사용하기
객체 status1을 할당한 것과 같이 valueOf("상수명")을 통해 값을 주입하여 사용할 수 있으며, 메서드를 호출하는 것과 동일하게 상수의 데이터를 가져올 수 있는 방법이 있습니다 !
public class HttpStatusMain {
public static void main(String[] args) {
HttpStatus status1 = HttpStatus.valueOf("OK");
System.out.println("status1 Code = " + status1.getCode());
System.out.println("status1 Message = " + status1.getMessage());
HttpStatus status2 = HttpStatus.OK;
System.out.println("status2 Code = " + status2.getCode());
System.out.println("status2 Message = " + status2.getMessage());
}
}
'프로그래밍 > Java' 카테고리의 다른 글
[Java, Spring] application.properties란 ? (0) | 2024.07.29 |
---|---|
[Java, 자바] 날짜와 시간 클래스에 대하여 (0) | 2024.07.19 |
[Java, 자바] Wrapper Class에 대하여 (1) | 2024.07.14 |
[Java, 자바] String 클래스에 대하여 (0) | 2024.07.02 |
[Java, 자바] 불변 객체에 대하여 (0) | 2024.06.27 |
@차나니 :: 차나니의 개발일지
개발의 모든 것 !
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!