#java #arrays #class
#java #массивы #класс
Вопрос:
Я не уверен, как сформулировать вопрос, но скажем, у меня есть пицца с начинкой, и я хочу (через основной класс) распечатать или вызвать описание этой пиццы, которая содержит не одну, а две начинки, как мне это сделать?
Мой класс toppings — это enum, поэтому я до сих пор пробовал это:
public class Pizza{
private Toppings[] toppings;
public Pizza(Toppings[] toppings){
this.toppings = new Toppings[]{Toppings.tomatosauce, Toppings.cheese};
}
public String toString(){
return "Toppings: " toppings;
}
}
затем в основном классе:
public class Main {
public static void main(String[] args) {
Pizza pizza = new Pizza(Toppings.cheese);
System.out.println(pizza);
}
}
Очевидно, что это неправильно, поскольку он печатает только сырную начинку. Какие-либо подсказки?
Комментарии:
1. Вы уже отметили этот вопрос
arrays
. Итак, вы рассматривали возможность чтения руководства по массивам и использования массива для сохранения более одного верхнего значения?2. Ну, в пицце есть только одно
topping
поле, чего еще вы ожидаете?3. Вы также можете использовать список
4. @Enrico нет, я понял. OP хочет, чтобы в пицце было несколько начинок, но для одной начинки есть только одно поле. Это очевидное место, с которого следует начать изменение кода.
5. отредактировал класс pizza с новой информацией.
Ответ №1:
Вы можете использовать это:
public class Pizza{
private Toppings[] toppings;
public Pizza(Toppings ...toppings){
this.toppings = toppings;
}
public String toString(){
return "Toppings: " Arrays.toString(toppings);
}
}
class Main {
public static void main(String[] args) {
Pizza pizza = new Pizza(Toppings.cheese, Toppings.tomato);
System.out.println(pizza);
}
}
enum Toppings { cheese, tomato }
или
Pizza pizza = new Pizza(new Toppings[]{Toppings.cheese, Toppings.tomato});
вместо этого и измените конструктор Pizza
:
public Pizza(Toppings[] topping) {
...
}
Комментарии:
1. Добавление (new Toppings[] {…}) спасло меня, спасибо!