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