자바

JAVA 자바 열거 객체의 메서드 - Main() , ordinal() , compareTo() , valueOf() , values()

알통몬_ 2017. 3. 12. 18:55
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

열거 객체

리턴 타입        메소드(매개 변수)            설명

String             name()                 열거 객체의 문자열을 리턴

int                 ordinal()               열거 객체의 순번(0부터 시작)을 리턴

int                compareTo()           열거 객체를 비교해서 순번 차이를 리턴

열거 타입        valueOf(String name) 주어진 문자열의 열거 객체를 리턴

열거 배열        values()               모든 열거 객체들을 배열로 리턴


public enum Week {

  MONDAY,

  TUESDAY,

  WEDNESDAY,

  THURSDAY,

  FRIDAY,

  SATURDAY,

  SUNDAY

 

}


main() 메서드 : 열거 객체가 가지고 있는 문자열을 리턴

ex) Week today = Week.SUNDAY;

    String name = today.name(); // name에 "SUNDAY" 저장


ordinal() 메서드 : 전체 중에 해당 열거 객체가 몇 번째인지 알려준다.

순서는 0번부터 시작합니다.

ex)

Week today = Week.SUNDAY;

int ordinal = today.ordinal(); //SUNDAY가 마지막 7번 째 6번이므로 

                                 ordinal에 6 저장

compareTo() 메서드 :매개 값으로 주어진 열거 객체를 기준으로 몇 번째 위치하는 지를 비교

열거 객체가 매개값의 결과보다 순번이 빠르면 음수, 순번이 느리면 양수를 리턴.

ex)

Week day1 = Week.MONDAY;

Week day2 = Week.WEDNESDAY;

int result1 = day1.compareTo(day2); // -2 

int result2 = day2.compareTo(day1); // 2


valueOf() 메서드 : 개 값으로 주어지는 문자열과 동일한 문자열을 가지는 열거 객체를 리턴

외부로부터 문자열을 입력받아 열거 객체로 변환할 때 유용하게 사용.

ex)

Week weekDay = Week.valueOf("MONDAY");


values() 메서드 : 열거 타입의 모든 열거 객체들을 배열로 만들어 리턴  

ex)

Week[] days = Week.values();

   for(Week day : days){

    System.out.println(day);

}


예제)

public class EnumMethodExample {

public static void main(String[] args) {

//name() 메소드

Week today = Week.SUNDAY;

String name = today.name();

System.out.println(name);

//ordinal() 메소드

int ordinal = today.ordinal();

System.out.println(ordinal);


//compareTo() 메소드

Week day1 = Week.MONDAY;

Week day2 = Week.WEDNESDAY;

int result1 = day1.compareTo(day2);

int result2 = day2.compareTo(day1);

System.out.println(result1);

System.out.println(result2);


//valueOf() 메소드

/*Week weekDay = Week.valueOf("SUNDAY");

if(weekDay == Week.SATURDAY || weekDay == Week.SUNDAY) {

System.out.println("주말 이군요");

} else {

System.out.println("평일 이군요");

}*/

if(args.length == 1) {

String strDay = args[0];

Week weekDay = Week.valueOf(strDay);

if(weekDay == Week.SATURDAY || weekDay == Week.SUNDAY) {

System.out.println("주말 이군요");

} else {

System.out.println("평일 이군요");

}

}

//values() 메소드

Week[] days = Week.values();

for(Week day : days) {

System.out.println(day);

}

}

}

반응형