2012-07-26 6 views
1

자바를 배우는 동안 나는 SO 주변을 돌아 다니며 질문이 116574 인 것을 발견했습니다. 대답을 이해할 수없는 일부 자바 코드가 포함되어 있습니다.이 Java 프로그램은 어떻게 작동합니까?

편집 : 코드는 기본적으로 다음과 같습니다

public enum SomeEnum { 

    FUN0 { 
     @Override 
     public void function() { 
       System.out.println("0 0 0 0 0"); 
     } 
    }, 
    FUN1 { 
     @Override 
     public void function() { 
       System.out.println("1 1 1 1 1"); 
     } 
    }; 

    public abstract void function(); 

    public static void main(String[] args) throws Exception { 

      for (SomeEnum test : values()) { 
        test.function(); 
      } 
    } 
} 

그것은 인해 코드의 조직에 고급보고 난 그것에 대해 너무 궁금합니다. SO가 이런 종류의 질문을하는 것이 적당하다면 : 누군가이 코드를 약간 설명 할 의향이 있습니까?

enum에 메인이 어떻게 포함되어 있습니까? 수업이 아니어야합니까? (Eclipse는 그다지 행복하지 않지만 "Java 응용 프로그램 선택"을 묻는 질문을 한 후 주 기능을 실행합니다.) FUN0, FUN1을 사용하여이 구문을 작성하십시오.

이 항목을 설명하는 자습서 텍스트를 가리키는 포인터가 이미 나를 행복하게 만듭니다.

+0

Google에서 질문에 코드를 붙여 주실 수 있습니까? 우리는 당신이 여기서 언급하고있는 것에 대한 완전한 기록을 가지고있을 수도 있습니다. –

+0

질문이 SO에 대한 링크가 포함되도록 편집되었습니다. 그 트릭을해야합니다. – Matthias

+0

하지만 SO는 완전히 편집 가능하므로 코드가 그대로 유지 될 것이라고 보장 할 수 없습니다 (링크 된 질문과 답변이 널리 사용되므로 변경 될 가능성이 거의 없음). 또한이 코드를 사용하면 어떤 코드를 참조하고 있는지 명확하게 알 수 있으며 다른 사용자는이 질문을 클릭하지 않아도됩니다. –

답변

2

각 인스턴스가 getResult 메소드보다 우선하는 enum입니다.

enum은 다소 일반적인 클래스 일뿐입니다.

어떻게 그 FileSizeBench이 열거 아닌 클래스 오는가?

가 대신 classenum 키워드를 사용하여 선언되기 때문에. SomeEnum에는 미리 정의 된 (컴파일시 알 수 있음) 인스턴스가 있으므로 enum이 사용됩니다.

+0

그 튜토리얼은 이미 있었고 내가 요구했던 기능을 설명하지 못했습니다 ... – Matthias

+0

링크가 제거되었습니다. 내 게시물에 귀하의 질문에 대한 답변이 제공 되었습니까, 아니면 여전히 귀하에게 명확하지 않은 것이 있습니까? – aioobe

+0

당신의 대답은 이상한 음이있는 것처럼 짧을 수도 있습니다. 특히 "열거 형 선언을했기 때문에"부분. – Matthias

관련 문제