일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 배열
- 대덕인재개발원
- 자바
- FastAPI
- Android
- 생활코딩
- ddit
- nodejs
- Mac
- JDBC
- 자바문제
- 맥
- 객체지향
- spring
- html
- ibatis
- pyqt
- 단축키
- Error
- Java
- 이클립스
- servlet
- jsp
- python
- Homebrew
- Oracle
- 반복문
- crud
- 컬렉션프레임워크
- API
Archives
- Today
- Total
romworld
enum 본문
package kr.or.ddit.basic.enumtest;
public class ConstTest {
// 색과 관련된 상수 static final은 순서 바꿔도 상관 x
public static final int RED =1;
public static final int GREEN =2;
public static final int BLUE =3;
// 순서와 관련된 상수
public final static int ONE = 1;
public final static int TWO = 2;
public final static int THREE = 3;
}
package kr.or.ddit.basic.enumtest;
/*
열거형(enum) ==> 서로 관련있는 상수들의 집합을 나타낸다.
==> 클래스처럼 보이게 하는 상수
==> 열거형은 클래스처럼 독립된 java파일에 만들 수 있고,
하나의 java파일에 클래스와 같이 만들 수 있고,
클래스 안에 내부 클래스처럼 만들 수 있다.
- 열거형의 속성 및 메서드
name() ==> 열거형 상수의 이름을 문자열로 반환한다.
ordinal() ==> 열거형 상수가 정의된 순서값(index)을 반환한다. (0부터 시작...)
열거형이름.valueOf("열거형상수명") ==> 지정된 열거형에서 '열거형상수명'과 일치하는 열거형 상수를 반환한다.
열거형이름.상수명 ==> valueof("상수명")와 같다.
열거형이름.values() ==> 지정된 열거형에 있는 모든 상수들을 배열로 가져온다.
-------------------------------------------------------------------------------------------------------------
- 열거형 선언하기
방법1)
enum 열거형이름 {상수명1, 상수명2,..., 상수명n}
방법2)
enum 열거형이름 {
상수명1(값들1...),
상수명2(값들2...),
~~~
상수명n(값들n...);
// '값들'이 저장될 변수들 선언한다...
// 선언되는 변수의 개수는 '값들'의 개수와 일치해야 한다.
private 자료형이름 변수명;
...
// 열거형의 생성자를 만든다.
// 열거형의 생성자는 '열거형상수'에 '값들'을 셋팅하는 역할을 수행한다.
// 열거형의 생성자는 묵시적으로 private이다.
// '변수명'은 '값들'의 개수와 같고, 각각의 '값들'과 자료형이 맞아야 한다.
private 열거형이름(자료형 변수명,...){
위에서 선언한 변수들을 초기화 환다.
}
//구성할 값을 외부에서 불러서 사용할 수 있는 getter메서드를 작성한다.
}
*/
public class EnumTest {
public enum Color {RED,GREEN,BLUE} // 끝에 세미콜론 안 붙힘
public enum Count {ONE,TWO,THREE}
public enum Season {
봄("3월부터 5월까지", 100), // 상수명(값들...) 형식으로 상수 선언
여름("6월부터 8월까지",50),
가을("9월부터 11월까지",200),
겨울("12월부터 2월까지",75);
//값들이 지정될 변수 선언
private String span;
private int score;
// 생성자
Season(String months, int num){ // => private Season(String months, int num){ 와 같다.
span = months;
score = num;
}
// 선언된 변수의 값을 가져올 getter메서드 작성
public String getSpan() {
return span;
}
public int getScore() {
return score;
}
}
public static void main(String[] args) {
/*
System.out.println("Red : " + ConstTest.RED); // 상수를 쓰고 싶으면 ConstTest (클래스 이름써주셈)
System.out.println("Three : " + ConstTest.THREE);
if(ConstTest.RED == ConstTest.TWO) {
System.out.println("......");
}else {
System.out.println("######"); //실행은 잘 되는데 맞는 방법은 아님 에러메세지가 안나와서 고치기 더 어려움
} // 저 상수들은 색깔과 순서로 서로 관련이 없는 상수이니까 . ..
*/
Color mycol = Color.valueOf("GREEN"); // Color.GREEN과 같다.
Count mycnt = Count.ONE; // Count.valueof("ONE")과 같다.
System.out.println("mycol : " + mycol.name());
System.out.println("mycnt : " + mycnt.name());
System.out.println();
System.out.println("mycol의 ordinal : " + mycol.ordinal());
System.out.println("mycnt의 ordinal : " + mycnt.ordinal());
// 서로 다른 종류의 열거형끼리 비교가 불가능하다.
// if(Color.RED == Count.THREE) {
// System.out.println("....");
// }
if(mycol == Color.GREEN) {
System.out.println("같다 ...");
}
System.out.println("--------------------------------------------");
Season ss = Season.valueOf("봄");
System.out.println("name : " + ss.name());
System.out.println("ordinal : " + ss.ordinal());
System.out.println("span : " + ss.getSpan());
System.out.println("score : " + ss.getScore());
System.out.println();
System.out.println("---------------------------------------------");
for(Season time : Season.values()) {
System.out.println(time.name() + " ==> " + time + " ==> " + time.getSpan() + "," + time.getScore());
}
}
}
Comments