Вызов метода в Java
Пишу метод init который инициализирует массив из 5 ячеек рандомным числом от 2 до 100 и выводит массив в консоль. Однако метод не вызывается, вот здесь " arr1.init();". В чем причина, ведь класс, к которому он относится работает?
public class Test {
public static void main(String[] args) {
Array [] arr1 = new Array[5];
arr1.init();
}
}
class Array{
int [] arr;
public int[] init(int[] arr){
for (int i = 0; i < arr.length; i++){
arr[i] = (2 + (int) (Math.random()*100));
System.out.println(arr[i]);
}
return arr;
}}
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
ведь класс, к которому он относится работает
Нет. он не относится к тому классу. Переменная, объявленная в другом методе другого класса - относится к тому методу где она была объявлена.
Однако метод не вызывается, вот здесь " arr1.init();"
Потому что вы неправильно как-то этим пользуетесь. Наверное должно быть так:
int[] arr = new int[5];
Array arrayClassInstance = new Array();
arrayClassInstance.init(arr);
Тогда у вас получается int [] arr; объявленная в классе Array уже не нужна.
Автор решения: Никита Жуков
→ Ссылка
- Вы обращаетесь к масиву классов
Array, а не к классуArray. - Ваш метод
initпринимает в арументмасив int,а Вы в аргумент нечего неположили Код должен иметь слейдуший вид:
public static void main(String[] args) {
int[] a={1,2,3};
Array [] arr1 = new Array[5];
arr1[0]=new Array();
arr1[0].init(a);
}