자바 매 거 해석
7604 단어 자바
public class Demo1 {
public static void main(String[] args) {
int color;
color = Color.GREEN;
}
}
class Color{
public static final int RED = 1;
public static final int GREEN = 2;
public static final int YELLOW = 3;
}
이 방법 에서 저 는 한 가지 유형 을 정 의 했 습 니 다. 그 중에서 세 개의 성형 상수 가 정의 되 었 습 니 다. 사용 할 때 세 개의 변수 만 정의 하면 됩 니 다. 그런데 여기 문제 가 있 습 니 다. 성형 으로 신호등 을 표시 하기 때문에 color 에 다른 성형 으로 값 을 부여 하면 프로그램 이 잘못 되 지 않 지만 그 기능 은 실현 되 지 않 습 니 다.우리 가 원 하 는 것 은 color 로 하여 금 빨간색 과 노란색 의 한 가지 값 을 취하 게 하 는 것 이다. 다른 값 이 될 수 없다. 우 리 는 두 번 째 방법 을 다시 보 자.
public class Demo2 {
public static void main(String[] args) {
Color color = Color.GREEN;
}
}
class Color{
public static final Color RED = new Color();
public static final Color GREEN = new Color();
public static final Color YELLOW = new Color();
}
여기 서도 하나의 클래스 를 정 의 했 습 니 다. 클래스 안의 매개 변 수 는 이러한 인 스 턴 스 대상 이 되 었 습 니 다. 신호등 색상 을 정의 할 때 이러한 인 스 턴 스 대상 color 를 정의 한 다음 에 이 대상 에 게 값 을 부여 할 수 있 습 니 다. 부 여 된 값 도 Color 의 대상 입 니 다. 그러면 color 의 값 은 Color 의 대상 일 수 밖 에 없습니다. 이렇게 쓰 는 것 이 첫 번 째 방법 보다 좋 습 니 다.그러나 이렇게 또 하나의 문 제 는 바로 제 가 new 대상 에 게 color 를 부여 할 수 있다 는 것 입 니 다. 그러면 그의 수치 범 위 는 빨간색 과 노란색, 녹색 세 가지 중 하나 라 는 것 을 보장 할 수 없습니다. 어떻게 해결 합 니까?여 기 는 Color 류 에서 무 참 구조 방법 을 사유 화하 기만 하면 됩 니 다. 코드 는 다음 과 같 습 니 다.
class Color{
private Color2(){}
public static final Color RED = new Color();
public static final Color GREEN = new Color();
public static final Color YELLOW = new Color();
}
이렇게 쓰 면 자신의 new 대상 이 될 수 없습니다. 신호등 의 값 의 정확성 을 확보 할 수 있 습 니 다. 그러나 이렇게 쓰 는 것 은 좀 번 거 롭 습 니 다. 변수 가 많 으 면 상수 대상 을 많이 정의 해 야 합 니 다. 어떤 간단 한 방법 이 있 습 니까?jdk 5.0 은 매 거 진 형식 을 제공 합 니 다. 위의 두 번 째 쓰기 방법 을 간소화 하고 Color 에 대해 서 는 이렇게 쓸 수 있 습 니 다.
enum Color{
RED,GREEN,YELLOW;
}
필요 한 상수 라 고 직접 적 으 세 요. 이 세 가지 상수 가 바로 Color 의 실례 화 대상 입 니 다. 그의 본질 과 방법 은 똑 같 습 니 다. 안에 있 는 무 참 구조 함수 도 사유 화 되 었 습 니 다. 그러나 우 리 는 그것 을 다시 쓴 다음 에 그 에 게 파 라 메 터 를 전달 할 수 있 습 니 다. 그러면 이 세 가지 상수 가 도대체 어떤 유형 인지 검증 할 수 있 습 니 다.
enum Color{
RED("red"),GREEN("green"),YELLOW("yellow");
private Color4(String name){}
}
위의 코드 는 Color 에 매개 변수 가 있 는 구조 함 수 를 추 가 했 습 니 다. 이 럴 때 세 개의 상수 를 직접 쓸 수 없습니다. 반드시 뒤에 전달 하 는 매개 변 수 를 써 야 틀 리 지 않 습 니 다. 이것 은 세 개의 상수 가 사실은 Color 의 인 스 턴 스 대상 임 을 설명 합 니 다.만약 에 이 매 거 진 유형 에 추상 적 인 방법 을 더 하면 세 가지 상수 도 반드시 이 추상 적 인 방법 을 실현 해 야 한다.
enum Color{
RED("red"){
public void p(){
System.out.println("red");
}
},GREEN("green"){
public void p(){
System.out.println("green");
}
},YELLOW("yellow"){
public void p(){
System.out.println("yellow");
}
};
private Color(String name){}
public abstract void p();
}
추상 적 인 방법 을 실현 하 는 방식 은 상기 코드 가 쓴 것 과 같이 매 거 진 유형의 실질 은 바로 내 가 두 번 째 방법 에서 쓴 코드 이 고 상수 실질 은 바로 이런 사례 화 대상 임 을 설명 한다.다음은 매 거 진 다른 간단 한 조작 을 살 펴 보 겠 습 니 다.
public class Dome4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Color5 color = Color.RED;
// color
String name = color.name();
System.out.println(name);
//
int index = color.ordinal();
System.out.println(index);
//
Color5 c = color.valueOf("GREEN");
System.out.println(c.ordinal());
}
}
enum Color{
RED,GREEN,YELLOW;
}
위의 코드 는 상수 의 이름 을 가 져 오 는 방법 과 매 거 진 형식의 상수 와 상수 의 위 치 를 가 져 오 는 방법 을 보 여 줍 니 다.이상 은 매 거 진 것 에 대한 간단 한 총 결 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.