1
我有一個問題,從我的主傳遞一個枚舉值到我的一個類。我的程序存儲關於書呆子的信息:名字,nerdfactor。它有一系列的類和子類。我有一個超類,擴展到2個其他類和第三類,擴展到前面提到的子類中的1個。我的程序最後要做的是拿出諸如名字,書呆子之類的充滿爭論,而書呆子更喜歡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)
的想法,但我敢肯定它應該留在其他格式。