Deperecated/JAVA

JAVA - 열거 타입

누알라리 2020. 1. 4. 20:46

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