[Java] Enum 자료형

HAEIL·2024년 1월 28일

JAVA

목록 보기
4/8
enum CoffeeType {
	AMERICANO,
    ICE_AMERICANO,
    CAFE_LATTE
};

상수 집합 ==> 변경 xx
CoffeeType.AMERICANO와 같이 호출한다.

public class Sample {
	enum CoffeeType {
        AMERICANO,
        ICE_AMERICANO,
        CAFE_LATTE
    };
    
    public static void main(String[] args) {
    	for(CoffeeType type: CoffeeType.values()) {
        	System.out.println(type); // 순서대로 AMERICANO, ICE_AMERICANO, CAFE_LATTE 출력됨
        }
    }
}

드디어 향상된 for문이 사용되는 예제가 나왔구나 . . .

결국 매직넘버를 사용하지 않고, 인덱스 값 대신해서 상수를 사용함으로 오류발생률을 줄이고, 코드에 대한 이해를 높이기 위해 enum 상수를 사용하는 것으로 파악하고 넘어감!

예시에서도 그렇고 이전에 봤던 코드들에서 자꾸 주석에 @가 들어가있다 이게 뭐냐

@param type 커피의 종류 (CoffeeType)

과 같은 형태를 사용하는데, 저놈의 @param이 무엇이냐.

블로그를 찾아본다.

javadoc

자바 개발자들이 자바 소스 코드를 문서화하기 위해 사용하는 도구..
소스 코드에 있는 특정 주석을 기반으로 문서를 생성한다.
소스 코드에 대한 명세서, 클래스와 메서드의 사용 방법, 인수, 반환 값 등이 포함된다.

결론은 서로 이해하기 쉽게 해주려고 주석에 @param과 같이 표현하나봄.

행동적 동등성(behavioral equivalence)

두 개의 시스템이 동일한 방식으로 작동하는지 확인하는 개념
--> 외부에서 봤을 때, 두 시스템이 동일한 행동을 하는가?

즉, javadoc을 확인하고 같은 동작을 하는 시스템인걸 파악하면 --> 해당 시스템을 다른 시스템으로 대체 또는 리팩토링 하는데 유용하다.

전제조건(Precondition)과 사후조건(Postcondition)

1. 전제조건 : 'requires' 키워드로 표현, 클라이언트의 의무, 클라이언트에게 '어떤 식으로 불러라'를 알려줌.

--> @param, 매개변수와 관련된 전제조건을 해당 절에 작성

2. 사후조건 : 'effects' 키워드로 표현, 메서드 개발하는 측(백엔드가 되려나?)에게 부여되는 의무, 메소드 호출 후에 '어떤 식의 결과'가 나오는지를 알려줌.

--> @return, 메서드 반환 결과를 정리해서 알려줌
--> @throws, 메서드에서 발생할 수 있는 예외에 대한 설명을 작성함.

profile
컴퓨터공학과를 졸업할 동안 개발을 소홀히 하다가 이제는 진짜 해야겠다 싶어서 시작한 블로그. 사족을 담아 최대한 이해하기 쉽게 작성하다보니 실제 전문가가 보기엔 틀린 점이 있을 수 있다...

0개의 댓글