쌍용교육(JAVA)/JAVA
쌍용교육 -JAVA 수업 12일차 enum
구 승
2024. 4. 11. 17:32
package kr.s24.object.enumtest;
public class EnumMain01 {
//문자열 상수
public static final String JAVA = "JAVA";
public static final String XML ="XML";
public static final String JSP = "JSP";
public static void main(String[] args) {
//문자열 상수 호출 (static 이기 때문에 객체생성 없이 호출) -> (원래는 EnumMain01.JAVA 이런식으로 호출함.)
System.err.println(JAVA);
System.out.println(XML);
System.out.println(JSP);
}
}
JAVA
XML
JSP
package kr.s24.object.enumtest;
//열거형 객체
enum Lesson {
//열거형 상수
//문자열 상수
JAVA,XML,JSP //상수들을 그룹으로 묶어서 객체로 생성.
}
public class EnumMain02 {
public static void main(String[] args) {
//toString,name등을 쓰지않아도 됨
System.out.println(Lesson.JAVA);
System.out.println(Lesson.XML);
System.out.println(Lesson.JSP);
System.out.println("-------------------");
//객체로 생성되기 때문에 부모클래스인 Object의 tostring메서드 호출 가능.
System.out.println(Lesson.JAVA.toString());
System.out.println(Lesson.XML.toString());
System.out.println(Lesson.JSP.toString());
System.out.println("-------------------");
//열거 객체의 문자열을 반환 name() 역시 내장되어있는 메서드
System.out.println(Lesson.JAVA.name());
System.out.println(Lesson.XML.name());
System.out.println(Lesson.JSP.name());
System.out.println("-------------------");
//열거 객체의 순번(0부터 시작)을 반환
System.out.println(Lesson.JAVA.ordinal()); //.ordinal() -> 순번을 가져옴
System.out.println(Lesson.XML.ordinal());
System.out.println(Lesson.JSP.ordinal());
}
}
JAVA
XML
JSP
-------------------
JAVA
XML
JSP
-------------------
JAVA
XML
JSP
-------------------
0
1
2
package kr.s24.object.enumtest;
enum Gender {
MALE,FEMAIL; //메서드가 없는 경우는 세미콜론 생략이 가능하지만 메서드를 쓸 경우에는 세미콜론을 사용해야됨.
//메소드 재정의
@Override
public String toString() {
switch(this) { //객체 자신을 참조하는 this 사용
case MALE:
return "남자";
default :
return "여자";
}
}
}
public class EnumMain03 {
public static void main(String[] args) {
System.out.println(Gender.MALE); //위에 메서드에서 toString()을 사용했기 때문에 안써도 출력가능.
System.out.println(Gender.FEMAIL);
System.out.println("--------------");
System.out.println(Gender.MALE.toString());
System.out.println(Gender.FEMAIL.toString());
}
}
남자
여자
--------------
남자
여자
package kr.s24.object.enumtest;
enum Item{
ADD,DEL,SEARCH,CANCEL
}
public class EnumMain04 {
public static void main(String[] args) {
//values()메서드는 열거 타입의 모든 열거 객체들을 배열로 만들어 반환
Item[] items = Item.values();
//반복문을 이용한 열거 타입 상수 호출
for(Item n : items) {
System.out.println(n + " : " + n.ordinal());
}
}
}
ADD : 0
DEL : 1
SEARCH : 2
CANCEL : 3
package kr.s24.object.enumtest;
enum Item2 {
ADD(5),DEL(11),SEARCH(2),CANCEL(22); //괄호안에 숫자는 생성자를 말한다.
//위에 지정한 상수 값들을 저장하기 위한 공간
private final int var;
//생성자
Item2(int var) {//숫자형태의 상수를 사용싶을 때 int 사용
this.var = var;
}
//캡슐화(?)
public int getVar() {
return var;
}
}
public class EnumMain05 {
public static void main(String[] args) {
System.out.println(Item2.ADD);
System.out.println(Item2.DEL);
System.out.println(Item2.SEARCH);
System.out.println(Item2.CANCEL);
System.out.println("--------------------");
System.out.println(Item2.ADD.getVar());
System.out.println(Item2.DEL.getVar());
System.out.println(Item2.SEARCH.getVar());
System.out.println(Item2.CANCEL.getVar());
}
}
ADD
DEL
SEARCH
CANCEL
--------------------
5
11
2
22