2016-02-24 2 views
0

Итак, я вытягиваю свои волосы, пытаясь понять, как вызывать методы для объектов в массиве. Суть этой домашней работы - создать сопоставимый интерфейс с нуля, абстрактный класс под названием «Оружие», интерфейс «Drawable», пару классов, которые расширяют оружие, и класс «Космический корабль», который создает космический корабль с массивом оружия.массив объектов по мере их взаимодействия Интерфейсы и абстрактные классы

Ниже приведен код для класса «Космический корабль». Ошибка «не утверждение» происходит на строке 40. Целью метода fireFastestWeapon является сортировка массива объектов на основе времени каждого объекта, а затем активация метода пожара для первого n оружия.

public class Spaceship implements Drawable 
{ 
    private Weapon [] mountedWeapons = new weapon[4]; 
    private int curWeapon = 0; 
    public void draw() 
    { 
     System.out.print("Ship will be drawn here"); 
    } 
    public void addWeapon(Weapon w) 
    { 
     if (curWeapon<mountedWeapons.length) 
     { 
      mountedWeapons [curWeapon] = w; 
      curWeapon++; 
     } 
     else System.out.print("The weapons bay is full Commander"); 
    } 
    public void fireFastestWeapon(int n) 
    { 
     int count=mountedWeapons.length; 
     int k; 
     for (int m = count; m>=0;m--) 
     { 
      for(int i = 0; i<count-1;i++) 
      { 
       k=i+1; 
       if (mountedWeapons[i].compareTo(mountedWeapons[k]) == 1){ 
        Weapon temp; 
        temp = mountedWeapons[i]; 
        mountedWeapons[i] = mountedWeapons[k]; 
        mountedWeapons[k] = temp; 
       } 
      } 
     } 

     if(n>mountedWeapons.length) 
     { 
      n=mountedWeapons.length; 
     } 
     for (f=0;f<n-1;n++) 
     { 
      mountedWeapon[f].fire; 
     } 
    } 
} 

Спасибо, что посмотрели!

+0

Есть несколько вещей, которые вы можете сделать, чтобы сделать код более полезным помощникам: указать, какая линия линия 40, убедитесь, что вы исключаете нерелевантный код и убедитесь, что код отформатирован и не содержит других ошибок. –

ответ

1

Скобки при вызове метода не являются необязательными в Java:

mountedWeapon[f].fire(); 
+0

Большое вам спасибо! Полагаю, мне просто нужны свежие глаза. –

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