자바 의 매 거 진 종 류 를 간략하게 소개 합 니 다.
아래 의 예 시 를 보십시오.
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에 따라 라이센스가 부여됩니다.