Итак, я вытягиваю свои волосы, пытаясь понять, как вызывать методы для объектов в массиве. Суть этой домашней работы - создать сопоставимый интерфейс с нуля, абстрактный класс под названием «Оружие», интерфейс «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;
}
}
}
Спасибо, что посмотрели!
Есть несколько вещей, которые вы можете сделать, чтобы сделать код более полезным помощникам: указать, какая линия линия 40, убедитесь, что вы исключаете нерелевантный код и убедитесь, что код отформатирован и не содержит других ошибок. –