Не реализуется геттер?

104
15 января 2021, 19:30

есть такой код. Не могу вызвать геттер из класса Flower. Понятно почему, потому что он не статический и на момент его вызова объекты класса Flower отсутствуют. Но фактически они есть, так как я выше создаю три массива из объектов наследуемых классов от Flowers(розы, тюльпаны и орхидеи) НО(!) внутри метода createFlowers. Как сделать так чтобы геттер "чувствовал" не явное создание объекта в методе мейн, а посредством метода класса этого объекта. Или может я что то совсем делаю не так? Прошу не кидать палками учусь ровно месяц :)

public class FlowerShop {
public static void main(String[] args) {

....тут ничего важного и влияющего на проблему, далее

    if (viewAssortiment.equals("нет")) { // Клиент не зашел в магазин
        seller.SaysGoodBye();
    } else if (viewAssortiment.equals("да")) { // Клиент зашел в магазин
        Rose.createFlowers("Роза", 600, 15);
        Tulip.createFlowers("Тюльпан", 450, 25);
        Orchid.createFlowers("Орхидея", 400, 21);
        seller.ShowsAssortment(someFlowers.getFlowerName);} ЭТОТ ГЕТТЕР ГОРИТ КРАСНЫМ
public class Flower {
private String flowerName;
private int flowerCost;
private int currentNumberOfFlowers;
public String getFlowerName() {        ВОТ ЭТОТ ГЕТТЕР!
    return flowerName;
}
public int getFlowerCost() {
    return flowerCost;
}
public int getCurrentNumberOfFlowers(){
    return currentNumberOfFlowers;
}
public Flower(String flowerName, int flowerCost) { // конструктор
    this.flowerName = flowerName;
    this.flowerCost = flowerCost;
}
public static void createFlowers(String flowerName, int flowerCost, int currentNumberOfFlowers) { // массивы различных видов цветов в разном количестве
    int i;
    Flower[] someFlowers = new Flower[currentNumberOfFlowers];
    for (i = 0; i < someFlowers.length; i++) {
        someFlowers[i] = new Flower(flowerName, flowerCost);
    }
}
public class Seller { // Класс Продавец
public void ShowsAssortment (String x) {
    System.out.println("На текущий момент в магазине имеются: " + x );
}

}

Очень буду благодарен за помощь особенно если объясните подробней мою ошибку)

Answer 1
public static Flower[] createFlowers(String flowerName, int flowerCost, int currentNumberOfFlowers) { // массивы различных видов цветов в разном количестве
    int i;
    Flower[] someFlowers = new Flower[currentNumberOfFlowers];
    for (i = 0; i < someFlowers.length; i++) {
        someFlowers[i] = new Flower(flowerName, flowerCost);
    }
    return someFlowers;
}
public static void main(String[] args) {
  Flower[] someFlowers = Flower.createFlowers("Tulip", 5, 3);
  for (int i = 0; i < someFlowers.length; i++) {
    System.out.println(someFlowers[i].getFlowerName());
  }
}
READ ALSO
RxJava экзепшен CalledFromWrongThreadException при subscribe

RxJava экзепшен CalledFromWrongThreadException при subscribe

Имею вот такой код: ioreactivex

148
База данных для тестов Java

База данных для тестов Java

Пишу приложение на java с использованием базы данных postgre sqlСвойства прописаны в файле \resourses\application

118
Как правильно вернуть массив из метода?

Как правильно вернуть массив из метода?

Есть метод, который делает положительные числа отрицательными и наоборот

112