Здесь, кажется, это общий вопрос, но для всех тех, кого я читаю, они, похоже, имеют дело с разными вещами.
Я пишу программу с основным классом, которая управляет массивом объектов другого класса, и мне трудно вызывать метод print () из этого второго класса из основного класса.
Класс Main пытается вызвать print (), которая находится в классе Unit. Класс Unit выглядит примерно так:
public class Unit{
static int numOfUnits = 0;
public Unit[] units = new Unit[8];
private int unitID;
//constructors are here
public void print(){
for (int i = 0; i < units.length; i++)
System.out.print(units[i].unitID);
}
public void add(Unit unit){
mobs[numbofUnits] = unit;
numOfUnits++;
}
}
Итак, я хотел бы, чтобы через класс Main я добавил новые объекты Unit в массив unit. Когда я закончу добавлять их (используя вызов unitToAdd.add (unitToAdd) в классе Main), я бы хотел вызвать метод print () модуля из Main.
Чего я не знаю, так это того, использовать ли модификатор static, или нет, как ссылаться на переменные в самом методе print () (т. Е. Использовать ли this.unitID, unit [ я] .unitID и т. д.) и т. д.
Что меня смущает, так это просто природа метода print (). У меня есть сеттеры и геттеры, которые работают очень хорошо, так как я полностью понимаю, что вызову specificUnit.setID () изменяется конкретная переменная для этого конкретного объекта, но я не знаю, как заставить работать методы наподобие print ().
Спасибо!