Java에서 열거 형 상수의 생성자는 언제 호출됩니까?
Java에서 고안된 예제를 사용하려면 다음 코드를 사용하십시오.enum Commands{
Save("S");
File("F");
private String shortCut;
private Commands(String shortCut){ this.shortCut = shortCut; }
public String getShortCut(){ return shortCut; }
}
다음 테스트/드라이버 코드가 있습니다.
public static void main(String args[]){
System.out.println(Commands.Save.getShortCut());
}
Java에서 생성자는 언제입니까? 열거 된 상수가 호출 되었습니까? 위의 예제에서
Save
열거 형 상수 만 사용하고 있습니다. 이것은 생성자가
Save
만 생성하기 위해 한 번 호출된다는 것을 의미합니까? 또는
Save
과
File
은 모두 상관없이 함께 구성됩니까?
'ClassLoader'가 클래스를로드 할 때 열거 형 생성자가 호출되는 것을 의미합니까? 저장 및 파일과 같은 액세스 멤버가 생성자를 호출합니까? 인수 생성자가 없으면 어떻게됩니까? –
@MuhammadBabar 클래스를 초기화하지 않고로드 할 수 있습니다. 따라서 클래스가 초기화 될 때 각 멤버가 생성된다는 의미입니다. 그리고 내가 말했듯이, 회원이 언급되었는지는 중요하지 않습니다. 클래스가 초기화 될 때 생성됩니다. 두 번째 질문은 명확하지 않습니다. 멤버에 대해 제공된 인수가 없으면 인수가없는 생성자가 정의되어 있어야하며 그렇지 않으면 열거 형이 컴파일되지 않습니다. 이게 네가 말하는거야? – erickson
그러나 enum에서는 새로운 SomeEnum()을 사용하지 않습니다. 즉 명시 적 초기화가 없습니다! 내 경우에 enum에는 하나의 변수, 즉 인스턴스 *와 arg가없는 전용 생성자 만 있습니다. 이 생성자는 언제 호출됩니까? –