• 티스토리 홈
  • 프로필사진
    chantleman
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
chantleman
  • 프로필사진
    chantleman
    • 분류 전체보기 (328)
      • 프로젝트 (1)
      • react (2)
      • 코딩테스트 (133)
        • lv0 (101)
        • lv1 (10)
        • lv2 (7)
        • lv3 (15)
      • 오류 (14)
      • 리눅스 (5)
      • 자바 (75)
        • spring (7)
      • js (35)
      • 오라클 (39)
        • PLSQL (3)
      • cs (5)
      • 도커 aws (3)
      • 단축키 (3)
      • 나만봐 (0)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • enum
        2024년 07월 17일
        • chantleman
        • 작성자
        • 2024.07.17.:24

        자바에서 enum은 상수 집합을 정의하는 특별한 데이터 타입입니다.
        enum을 사용하면 관련된 상수들을 그룹화하여 코드의 가독성과 유지보수성을 높일 수 있습니다.
         
         
         

        public class Day {
        
        	public static void main(String[] args) {
        		Day d =new Day();
        		d.week("sun");
        	}
        
        	public void week(String day) {		
        		if(day.equals("sun")) System.out.println("일");	
               		if(day.equals("mon")) System.out.println("월");	
                	if(day.equals("tue")) System.out.println("화");	
                	if(day.equals("wed")) System.out.println("수");	
                	if(day.equals("thu")) System.out.println("목");	
                	if(day.equals("fri")) System.out.println("금");	
                	if(day.equals("sat")) System.out.println("토");	
        	}
        }

        week 함수에서 sun, mon, tue, ... 이런식으로 설정을 해놨기 때문에
        main함수에 있는 d.week()에 꼭 “sun”라고 입력해야 "일"이 출력됩니다. 
         
        만약 sunday라고 입력을 해버리면 값이 출력되지 않기때문에
        이러한 개발자들의 실수를 대비하기 위해 enum을 사용합니다.
         


         
        enum 생성방법)
        파일 생성할 때 class말고 enum을 create합니다.
        <Week.java>

        public enum Week {
        	SUN, MON, TUE, WED, THU, FRI, SAT;	
        }

        상수를 (대문자로) 나열합니다.
         
         
         
        그리고 다시 class파일에서
        <Day.java>

        public class Day {
        
        	public static void main(String[] args) {
        		Day d =new Day();
        		d.week(Week.FRI);
        	}
        
        	public void week(Week week)
        	{
        		if(week ==Week.SUN) System.out.println("일요일");
        		if(week ==Week.MON) System.out.println("월요일");
        		if(week ==Week.TUE) System.out.println("화요일");
        		if(week ==Week.WED) System.out.println("수요일");
        		if(week ==Week.THU) System.out.println("목요일");
        		if(week ==Week.FRI) System.out.println("금요일");
        		if(week ==Week.SAT) System.out.println("토요일");
        	}
        }

        week메소드를 만들고
        아까 만들었던 Week.java에 저장해뒀던 상수들을 꺼내옵니다.
         
         
        그리고 main함수에서 객체생성후 d.week()을 입력할 때
        'Week.' 을 입력하면 

        이런식으로 아까 적어두었던 상수들이 옆에 나타나게 됩니다.
         
        그럼 다른 값을 입력하고 싶어도 입력할 수 없기 때문에 개발자 입장에서 실수할 여지를 줄일 수 있게 됩니다.
         

        Week.FRI했을 때의 출력값

         
         
         


        더 편한 방식)
         
        위 방식대로라면 

        public enum Month {
        	JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC;
        }

        enum을 이렇게 만들고
         

        public class MM {
        
        	public static void main(String[] args) {
        		MM obj = new MM();
        		obj.month(Month.APR);
        	}
        
        	public void month(Month mon) {
        		if(mon == Month.JAN) System.out.println("1월");
        		if(mon == Month.FEB)  System.out.println("2월");
        		if(mon == Month.MAR)  System.out.println("3월");
        		if(mon == Month.APR)  System.out.println("4월");
        		if(mon == Month.MAY)  System.out.println("5월");
        		if(mon == Month.JUN)  System.out.println("6월");
        		if(mon == Month.JUL)  System.out.println("7월");
        		if(mon == Month.AUG)  System.out.println("8월");
        		if(mon == Month.SEP)  System.out.println("9월");
        		if(mon == Month.OCT)  System.out.println("10월");
        		if(mon == Month.NOV)  System.out.println("11월");
        		if(mon == Month.DEC)  System.out.println("12월");
        	}
        }

        클래스에서 이런 식으로 해야하는데,
         
         
         
        더 간편한 방법이 있습니다.
        < Month.java > 

        public enum Month {
        	JAN("1월"), FEB("2월"), MAR("3월"), APR("4월"), 
        	MAY("5월"), JUN("6월"), JUL("7월"), AUG("8월"), 
        	SEP("9월"), OCT("10월"), NOV("11월"), DEC("12월");
        	
        	String num;
        	Month(String num)
        	{
        		this.num=num;		
        	}	
        }

        enum에서 이렇게 상수를 입력하고 생성자를 만든후
         
        <MonthMain.java>

        public class MonthMain {
        	public static void main(String[] args) {
        		MonthMain obj = new MonthMain();
        		obj.month(Month.APR);
        	}
        	
        	public void month(Month mon) {
        		System.out.println(mon.num);
        	}
        }

        아까 만든 Month 생성자를 month함수에서 파라미터로 받고,
        main함수에서 Month.APR을 입력하게 되면 4월이 출력됩니다.

         

        728x90

        '자바' 카테고리의 다른 글

        static singleton 템플릿  (0) 2024.07.19
        자바 로또 예제  (0) 2024.07.18
        생산자, 오버로딩 활용하여 원기둥 부피 구하기 예제  (0) 2024.07.15
        점3개로 삼각형 넓이 구하기 예제  (1) 2024.07.15
        constructor, 생성자  (0) 2024.07.15
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바