C와는 열거타입 취급이 조금 다른듯 하다.
열거 타입 선언을 위해서는 열거 타입 이름으로 소스 파일(.java)를 생성한다.
열거 상수는 객체기 때문에 참조 타입 변수에 해당한다.
Week today = Week.SUNDAY;
- 열거 타입의 Week의 경우 MONDAY ~ SUNDAY로 구성된 7개의 Week 객체로 Heap 영역에 생성된다/
- SUNDAY 등의 열거 상수 들은 메소드 영역에 생성되어 Week 객체를 참조한다.
- 열거 타입 변수 today는 스택 영역에 생성된다.
- 열거 객체는 열거 상수의 문자열을 내부 데이터로 갖고 있다. (Week에는 MONDAY ~ SUNDAY 문자열 존재)
열거 타입에 관한 메소드들이 존재 한다.
리턴타입 | 메소드(매개 변수) | 설명 |
String | name() |
열거 객체의 문자열을 리턴
|
int | ordinal() | 열거 객체의 순번을 리턴 |
int | compareto() | 주어진 문자열의 열거 객체를 기준으로 전후로 몇 번째 위치하는지를 비교 |
열거 타입 | Valueof(String name) | 주어진 문자열의 열거 객체를 리턴 |
열거 배열 | values() | 모든 열거 객체들을 배열로 리턴 |
public class Hyunndy {
public static void main(String[] args)
{
DataCertificate Data1 = DataCertificate.SQLD;
DataCertificate Data2 = DataCertificate.SQLP;
DataCertificate Data3 = DataCertificate.SQLD;
boolean Index = (Data1 == Data2);
System.out.println(Index);
Index = (Data1 == Data3);
System.out.println(Index);
// 열거타입 DataCertificate.SQLD, SQLP 등은 메소드 영역애 존재.
// Data1 , Data2 .. 는 Stack 영역에 존재.
// DataCeriticate는 열거 타입 '객체' 이므로 Heap 영역에 존재.
// 모든 열거 타입은 컴파일 시에 Enum 클래스를 상속한다.
// 열거 객체는 열거 상수의 문자열을 내부 데이터로 갖고 있다.
// Data.. 열거 객체는 SQLD, SQLP, ADSP 등 열거 상수의 문자열을 갖고 있다.
}
}
'Deperecated > JAVA' 카테고리의 다른 글
JAVA - 어노테이션 (0) | 2020.01.09 |
---|---|
JAVA 기본서 공부 5 - 클래스 (0) | 2020.01.05 |
JAVA - 향상된 for문 (0) | 2020.01.04 |
JAVA관련 토막 지식. (0) | 2019.12.19 |
JAVA 기본서 공부 - 4 <연산자> (0) | 2019.12.19 |