2015-03-04 2 views
0

поэтому у меня есть базовый класс, где я определяю переменную enum с этим блоком кода.Ошибка перечисления Java Java

enum Faction { 
      AMITY, ABNIGATION, DAUNTLESS, EURIDITE, CANDOR 
     }; 

И я пытаюсь проверить, работает ли все в моем подклассе с помощью драйвера. Мой конструктор в моем подклассе выглядит так.

public Dauntless(String f, String l, int a, int ag, int end, Faction d) { 
     super(f, l, a, d); 
     if (ag >= 0 && ag <= 10) { 
      this.agility = ag; 
     } else { 
      this.agility = 0; 
     } 
     if (end >= 0 && end <= 10) { 
      this.endurance = end; 
     } else { 
      this.endurance = 0; 
     } 
    } 

И мой водитель выглядит так

public class Test { 
    public static void main(String[] args) { 
     Faction this = Faction.DAUNTLESS; 
     Dauntless joe = new Dauntless("Joseph", "Hooper", 20, 5, 3, this); 
     Dauntless vik = new Dauntless("Victoria", "Ward", 19, 6, 2, this); 
     Dauntless winner; 
     winner = joe.battle(vik); 
     System.out.println(winner); 


} 

Он продолжает говорить, что Faction this = Faction.DAUNTLESS; не является утверждением. Может ли кто-нибудь помочь мне здесь?

+4

'this' это ключевое слово в Java. –

+1

'подкласс' ** какой ** ??? –

ответ

1

Как уже упоминалось в комментариях, this это ключевое слово в Java, используется для таких вещей, как:

this.faction; 

Вы не можете использовать ключевые слова в качестве имен переменных. Просто измените имя переменной:

Faction this_faction = Faction.DAUNTLESS; 

Тогда, конечно, вам нужно изменить ссылки на переменную:

Dauntless joe = new Dauntless("Joseph", "Hooper", 20, 5, 3, this_faction); 
Dauntless vik = new Dauntless("Victoria", "Ward", 19, 6, 2, this_faction); 
+0

Я должен был это понять. Я внес изменения, и теперь я получаю. Невозможно найти символ для фракции. Я неправильно определил свои перечисления? –

+0

@Josephhooper Какая ошибка? – KSFT

Смежные вопросы