자바 의 매 거 진 종 류 를 간략하게 소개 합 니 다.
아래 의 예 시 를 보십시오.
package com.home;
public class Season {
private final String name;
public static final Season SPRING = new Season(" ");
public static final Season SUMMER = new Season(" ");
public static final Season FALL = new Season(" ");
public static final Season WINTER = new Season(" ");
// private
public Season(String name) {
super();
this.name = name;
}
// getter
public String getName() {
return name;
}
/**
*
*
* @param seasonNum
* @return
*/
public static Season getSeason(int seasonNum) {
switch (seasonNum) {
case 1:
return SPRING;
case 2:
return SUMMER;
case 3:
return FALL;
case 4:
return WINTER;
default:
return null;
}
}
}
2.차이 점 은 위의 예제 에서 알 수 있 듯 이 수 동 으로 매 거 진 류 를 정의 하 는 것 이 비교적 번 거 로 운 것 입 니 다.우 리 는 키워드 enum 을 사용 하여 매 거 진 류 를 정의 할 수 있 습 니 다.매 거 진 류 와 일반 류 의 차 이 를 정의 할 수 있 습 니 다.1.enum 으로 정의 한 매 거 진 류 는 기본적으로 자바.lang.Enum 류 를 계승 하 는 것 이지 Object 류 를 계승 하 는 것 이 아 닙 니 다.java.lang.Enum 류 는 java.lang.Seriablee 와 java.lang.Comparable 두 개의 인 터 페 이 스 를 실현 했다.2.매 거 진 구조 기 는 private 수식 만 사용 할 수 있 고 생략 하 더 라 도 기본 값 은 private 입 니 다.3.매 거 진 인 스 턴 스 는 표시 만 할 수 있 습 니 다.그렇지 않 으 면 인 스 턴 스 가 생 길 수 없습니다.이 인 스 턴 스 를 표시 할 때 시스템 은 자동 으로 Public static final 수식 을 추가 합 니 다.프로그래머 가 추가 하지 않 아 도 됩 니 다.4.모든 매 거 진 클래스 는 하나의 values 방법 을 제공 하여 모든 매 거 진 값 을 편리 하 게 옮 겨 다 닐 수 있 습 니 다.enum 키 워드 를 사용 하여 정의 하 는 매 거 진 예제:
package com.home;
public enum Gender {
//
MALE(" "), FEMALE(" ");
private final String name;
// private
private Gender(String name) {
this.name = name;
}
// getter
public String getName() {
return name;
}
/**
*
*
* @param gender
* @return
*/
public static String getGenderDisc(Gender gender) {
// switch
switch (gender) {
case MALE:
return "I am a man";
case FEMALE:
return "I am a woman";
default:
return null;
}
}
}
3.매 거 류 의 상용 방법 에 대한 소 개 는 다음 테스트 류 를 보십시오.
package com.home;
public class TestGender {
public static void main(String[] args) {
// Gender.values()
for (Gender g : Gender.values()) {
System.out.println(g);
}
// EnumClass.variable
Gender gender = Gender.MALE;
System.out.println(Gender.getGenderDisc(gender));
// Enum valueOf
System.out.println(Enum.valueOf(Gender.class, "MALE"));
// , , -1; , 1; 0
System.out.println(Gender.FEMALE.compareTo(Gender.MALE));
// name toString , , toString
System.out.println(Gender.MALE.name());
// ordinal() , 0, 0
System.out.println(Gender.MALE.ordinal());
}
}
4.인 터 페 이 스 를 실현 하 는 매 거 진 유형
사실 매 거 진 클래스 구현 인터페이스 와 일반 클래스 는 별 차이 가 없 으 며,implements 키 워드 를 사용 하여 하나 이상 의 인 터 페 이 스 를 실현 할 수 있 습 니 다.그러나 주의해 야 할 것 은 일반 류 처럼 인 터 페 이 스 를 실현 한 후에 인터페이스 안의 방법 을 직접 다시 쓰 면 매 거 진 유형의 모든 인 스 턴 스 가 똑 같은 인 터 페 이 스 를 가지 고 이 루어 지기 때문에 의미 와 유연성 을 잃 기 때문에 모든 인 스 턴 스 에 서로 다른 방법 으로 이 루어 진다.예 를 들 어 다음 과 같다.
package com.home;
public enum Gender implements GenderDesc {
MALE(" ") {
//
public void info() {
System.out.println("I am a man");
}
},
FEMALE(" ") {
public void info() {
System.out.println("I am a woman");
}
};
private final String name;
// private
private Gender(String name) {
this.name = name;
}
// getter
public String getName() {
return name;
}
}
인터페이스:
package com.home;
public interface GenderDesc {
public void info();
}
5.추상 적 인 방법 을 포함 하 는 매 거 진 유형,매 거 진 유형 에서 일반 방법 에 대한 사용 은 일반 유형 과 마찬가지 로 여기 서 추상 적 인 방법의 사용 만 소개 한다.사실은 추상 적 인 방법 과 실현 인 터 페 이 스 는 하나의 이치 이다.여기 서 더 말 하지 않 고 예 를 들 어 볼 수 있다.
package com.home;
public enum Gender {
MALE(" ") {
//
public String getInfo() {
return "I am a man";
}
},
FEMALE(" ") {
public String getInfo() {
return "I am a woman";
}
};
private final String name;
// private
private Gender(String name) {
this.name = name;
}
// getter
public String getName() {
return name;
}
// ,
public abstract String getInfo();
}
주의:위의 매 거 진 클래스 에서 추상 적 인 방법 을 정 의 했 지만 클래스 는 abstract 로 수식 하지 않 았 습 니 다.이 점 은 일반 클래스 와 다 릅 니 다.매 거 진 클래스 는 매 거 진 값 을 만 들 고 추상 적 인 방법 에 실현 을 제공 해 야 하기 때 문 입 니 다.그렇지 않 으 면 컴 파일 오류 가 발생 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.