2011-07-16 11 views
1

내 메인에서 열거 된 값을 내 클래스 중 하나에 전달하는 데 문제가 있습니다. 내 프로그램은 이름에 대한 정보, nerdfactor를 저장합니다. 일련의 클래스와 서브 클래스가 있습니다. 나는 2 개의 다른 클래스로 확장 된 수퍼 클래스와 앞서 언급 된 서브 클래스 중 1 개로 확장되는 세 번째 클래스를 가지고있다. 내 프로그램이해야 할 일은 이름, 괴상한 요인과 같은 충만한 주장을 취하는 것과 괴상한 사람들이 WII, XBOX 또는 PS3을 선호하는 것입니다. Bellow는 내 메인 클립이고 내 하위 클래스의 시작입니다. 누구든지 열거 형 인수를 전달하는 방법을 알아 내도록 도울 수 있다면 매우 감사 할 것입니다.전달 열거 형 인수

public static void main(String[] args) { 

    // List to keep a few nerds in 
    ArrayList<GenericNerd> nerdList = new ArrayList(10); 
    GenericNerd nerd = new GenericNerd("Bugger McNosePicker", 9); 
    nerdList.add(nerd); 

    nerd = new ConsoleGeek("Freddy where's my mommy", 9, WII); // the WII should be an enum value 
    nerdList.add(nerd); 
} 

서브 클래스 ConsoleGeek

public class ConsoleGeek extends GenericNerd { 

    enum ConsoleType { 

     WII, PS3, XBOX 
    }; 
    private ConsoleType console; 

    public void setConsoleType(ConsoleType console) { 
     this.console = console; 
    } 
    public ConsoleType getConsoleType(){ 
    return console; 
} 


public ConsoleGeek(String name, int nerdFactor, ConsoleType console) { 
    super(name, nerdFactor); 
    if (name == null) { 
     System.out.println("Error: GenericNerd constructor - name is null!"); 
     System.exit(1); 
    } 
     // the setNerdFactor method handles parameter range checking 
    setNerdFactor(nerdFactor); 

    this.name = name; 
    if (console == ConsoleType.WII) { 

     // make sure WII players nerd factor is less than 6! 
     if (nerdFactor > 5) { 
      System.out.println("Warning: " + name 
        + " Prefers WII! (setting nerdFactor to 5)."); 
      setNerdFactor(5); 
     } 
     // Make sure XBOX players nerd factor is between 3 and 8 
    } else if (console == ConsoleType.XBOX) { 
     if (nerdFactor < 3 || nerdFactor > 8) { 
      System.out.println("Warning: " + name 
        + " Prefers XBOX! (setting nerdFactor to 8)."); 
      setNerdFactor(8); 
     } 

    } 
} 

나는

ConsoleGeek supergeek = new ConsoleGeek(arguments) 

처럼 괴상한의 새로운 유형을 만드는 아이디어를 생각하지만, 나는 그것의 다른 형식에 머물 예정 확신 .

답변

2
nerd = new ConsoleGeek("Freddy where's my mommy", 9, ConsoleGeek.ConsoleType.WII);