loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
      • JVM 밑바닥까지 파헤치기 (0)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • 장인정신
  • 스프링
  • JUnit
  • 인프라공방
  • fastcampus
  • 인프런
  • java
  • 추상화
  • study
  • 마틴 파울러
  • 자바
  • 이규원
  • 백기선
  • ATDD
  • TDD
  • 현실세상의 TDD
  • 스터디
  • 테스트 주도 개발
  • nextstep
  • 오브젝트
  • Patterns of Enterprise Application Architecture
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • 김영한
  • 조영호
  • 엔터프라이즈 애플리케이션 아키텍처 패턴
  • DDD 세레나데
  • 객체지향
  • 넥스트스탭
  • 소프트웨어 장인
  • Test Driven Development

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

11주차 과제 : enum
개발 & 방법론/Java

11주차 과제 : enum

2021. 2. 18. 18:02
 

11주차 과제: Enum · Issue #11 · whiteship/live-study

목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 마감일시 2021년 1월 30일 토요일 오후 1시까지.

github.com

목표

자바의 열거형에 대해 학습하세요.

학습할 것 (필수)

  • enum 정의하는 방법
  • enum이 제공하는 메소드 (values()와 valueOf())
  • java.lang.Enum
  • EnumSet

 

enum 정의하는 방법

Enum 는 열거형 혹은 상수집합으로 부른다

class 대신 enum 으로 정의한다

 

정의 방법은 3가지로 나눠진다

// 1. java 파일로 정의
public enum DevList {
    JAVA,
    SPRING,
    RDBMS,
    JPA
}
public class EnumStudyMain {

    // 2. 클래스안에 선언
    enum MonsterType {UNDEAD, BEAST, ELEMENTAL}

    public static void main(String[] args) {
        ....
    }
}
// 3. 클래스밖에 선언
enum MonsterType {UNDEAD, BEAST, ELEMETAL}

public class EnumStudyMain {
    ....
}

enum 은 기본적으로 static, final 이 내장되어있다

 

사용 방법은 다음과 같다

public class EnumStudyMain {

    public static void main(String[] args) {
        System.out.println(DevList.SPRING);

        DevList devList = DevList.JAVA;
        System.out.println(DevList.JAVA);
    }
}

곧바로 사용하거나 변수에 할당해서 사용한다

 

 

enum이 제공하는 메소드

values() : 정의된 상수 배열을 반환

    public static void main(String[] args) {

        // values()
        System.out.println(DevList.values());

        for (DevList dev : DevList.values()) {
            System.out.println(dev);
        }
    }

 

valueOf(Class<T> enumType, String name) : 지정된 열거형에서 name과 일치하는 상수를 반환, 일치한게 없으면 에러가 발생한다

    public static void main(String[] args) {

        // valueOf()
        System.out.println(DevList.valueOf("JAVA"));
        System.out.println(DevList.valueOf("JAVA2"));
    }

 

ordinal() : 상수의 정의된 순서를 반환

    public static void main(String[] args) {
        for (DevList dev : DevList.values()) {
            System.out.println(dev + " = " + dev.ordinal());
        }
    }

 

name() : 상수의 이름을 반환

    public static void main(String[] args) {
        for (DevList dev : DevList.values()) {
            System.out.println(dev.name());
        }
    }

 

 

java.lang.Enum

모든 열거형은 java.lang.Enum 클래스를 상속받는다

컴파일러가 자동으로 호출하니 개발자는 건들 수가 없다

 

 

 

EnumSet

열거형을 위해 구현된 Set 인터페이스이며 다음과 같은 특징을 가진다

  • EnumSet은 모두 동일한 열거형 상수만 포함한다
  • Null 을 가질 수 없다
  • Enum 순서대로 저장된다
  • thread-safe 하지 않아서 외부에서 동기화해야한다

https://www.baeldung.com/java-enumset

 

'개발 & 방법론 > Java' 카테고리의 다른 글

12주차 : 애노테이션  (0) 2021.02.25
10주차 과제 : 멀티쓰레드 프로그래밍  (0) 2021.02.18
9주차 : 예외처리  (0) 2021.02.14
자바 8주차 : 인터페이스  (0) 2021.02.13
7주차 : 패키지  (0) 2021.01.01
    '개발 & 방법론/Java' 카테고리의 다른 글
    • 12주차 : 애노테이션
    • 10주차 과제 : 멀티쓰레드 프로그래밍
    • 9주차 : 예외처리
    • 자바 8주차 : 인터페이스
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바