Ваш код не будет работать, потому что вы пытаетесь задать значения Array внутри вашего конструктора класса (в данном случае конструктор Starter). Это приведет к исключению RunTime, поскольку вы не можете создавать константы Array в конструкторе. Мне гораздо более жизнеспособным подходом было бы создание частного массива в качестве атрибута для каждого создаваемого вами объекта типа «Стартер». Затем вы можете использовать то, что мы называем методом «Getter», чтобы получить значение атрибута myList для создаваемого вами экземпляра. Вот небольшой пример того, как мы можем изменить структуру вашего класса Starter ниже:
public class Starter {
private String[] myList = {"Coffee", "Tea", "Somola", "Cake"};
public String[] getterMethod() {
return this.myList;
}
}
Теперь у нас есть метод, называемый в Java методом «Getter», который возвращает атрибут закрытого класса, чтобы пользователи не могли изменять внутреннее состояние объекта. Вот пример того, как вы будете вызывать Array в вашем основном методе:
public class App {
public static void main( String[] args ) throws IOException{
System.out.println("1=Starter");
Scanner input = new Scanner(System.in);
System.out.println("Enter a number");
int a = input.nextInt();
if(a == 1) {
System.out.println("Starter");
Starter OS1 = new Starter();
System.out.println(Arrays.toString(OS1.getterMethod()));
}
}
}
Это очень упрощенная версия вашего кода, которую я просто использовал для иллюстрации более широкой концепции. Вот вывод:
1=Starter
Enter a number
1
Starter
[Coffee, Tea, Somola, Cake]
Мы просто вызываем getterMethod (), который возвращает значение для частного массива, который вы ищете.