2011-07-16 5 views
1

私のメインからクラスの1つに列挙値を渡すことに問題があります。私のプログラムは、名詞についての情報を格納しています。名前、ネーファクターです。一連のクラスとサブクラスがあります。私は、他の2つのクラスに拡張されたスーパークラスと、前述のサブクラスのうちの1つに拡張された第3のクラスを持っています。私のプログラムがやるべきことは、氏名、ネーデルファクターなどの充実した議論を取ることです。オタクはWII、XBOX、PS3を好みます。ベローは私のメインのクリップで、私のサブクラスの始まりです。列挙された議論をどのように渡すかを誰かが助けてくれるなら、私はとても感謝しています。渡す列挙型の引数

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);