>  기사  >  Java  >  자바 열거 란 무엇입니까?

자바 열거 란 무엇입니까?

藏色散人
藏色散人원래의
2019-11-09 11:06:366427검색

자바 열거 란 무엇입니까?

Java 열거형이란 무엇인가요?

java 열거형의 정의와 사용법

1. 열거형의 정의:

열거형이 특별한 데이터 유형인 이유는 클래스 유형이라는 점입니다. 유형보다 더 특별한 제약 조건이 있지만 이러한 제약 조건이 있으면 열거 유형이 간결하고 안전하며 편리해집니다. 열거 유형을 생성하려면 생성된 유형이 java.lang.Enum 클래스(java.lang.Enum은 추상 클래스임)의 하위 클래스임을 의미하는 enum 키워드를 사용하십시오. 열거 유형은 Class Enum51f98d0870c47d5e6e6af3b77c8af709>이라는 일반 패턴을 따르며, 여기서 E는 열거 유형의 이름을 나타냅니다. 열거형 유형의 각 값은 보호된 Enum(String name, int ordinal) 생성자에 매핑됩니다. 여기서 각 값의 이름은 문자열로 변환되며 서수 설정은 이 설정이 생성되는 순서를 나타냅니다.

2. 열거형 사용:

열거형 클래스 만들기: EnumTest

public enum EnumTest {
//星期一,星期二,星期三,星期四,星期五,星期六
MON(1), TUE(2),WED(3),THU(4),FRI(5),SAT(6){
public boolean isRest(){
return true;
}
},
//星期日
SUN(0){
public boolean isRest(){
return true;
}
};
private int value;
private  EnumTest(int value){
this.value=value;
}
public int getValue(){
return value;
}
public boolean isRest(){
return  false;
}
}

EnumTest 열거형 클래스 사용:

public class EnumMain {
public static void main(String[] args) {
for (EnumTest enumTest : EnumTest.values()) {
System.out.println(enumTest + ":" + enumTest.getValue());
}
System.out.println("---------------我是分割线------------");
EnumTest test = EnumTest.SAT;
switch (test) {
case MON:
System.out.println("今天是星期一");
break;
case TUE:
System.out.println("今天是星期二");
break;
case WED:
System.out.println("今天是星期三");
break;
case THU:
System.out.println("今天是星期四");
break;
case FRI:
System.out.println("今天是星期五");
break;
case SAT:
System.out.println("今天是星期六");
break;
case SUN:
System.out.println("今天是星期日");
break;
default:
System.out.println(test);
break;
}
}
}

결과:

MON:1
TUE:2
WED:3
THU:4
FRI:5
SAT:6
SUN:0

------------ --- 나는 구분선------------

오늘은 토요일

3. 열거형의 장점과 단점 :

열거형이 나타나기 전, 특정 집단을 대표하고 싶은 경우 이산 값의 경우 일부 상수가 자주 사용됩니다. 예:

public class Entity {
 
 
public static final int VIDEO = 1;//视频
 
public static final int AUDIO = 2;//音频
 
public static final int TEXT = 3;//文字
 
public static final int IMAGE = 4;//图片
 
 
private int id;
 
private int type;
 
 
public int getId() {
 
return id;
 
}
 
public void setId(int id) {
 
this.id = id;
 
}
 
public int getType() {
 
return type;
 
}
 
public void setType(int type) {
 
this.type = type;
 
}

4. 이 상수 메소드 사용의 단점:

1. setType() 메소드의 매개변수가 int 유형이므로 코드 가독성과 유용성이 떨어집니다.

2. 유형이 그렇지 않습니다. 안전. 사용자가 호출할 때 유형이 완전히 일치해야 하며 값 범위가 정확해야 합니다. setType(-1)과 마찬가지로 합법적이지만 합리적이지 않으며 향후 프로그램에 다양한 문제를 일으킬 것입니다.

3. 결합도가 높고 확장성이 낮습니다. 어떤 이유로 Entity 클래스의 상수 값을 수정해야 하는 경우 수정이 필요할 때 수정을 놓치면 농담이 아닙니다.

이 문제를 위해 열거형이 탄생했습니다. 임의의 용어를 다른 용어와 비교할 수 있는 기능을 제공합니다.

위 내용은 자바 열거 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.