Проблемы с повторением и отображением нескольких массивов - PullRequest
0 голосов
/ 28 апреля 2018

Я создал этот метод buildDogs(), который создает 5 бинов и сохраняет их в массиве. Затем я создал метод displayDogs(), который должен перебирать 5, и, используя toString, вывести их. Наконец, в моем основном методе мне нужно сохранить метод displayDogs() в массиве с именем allDogs. Однако всякий раз, когда я пытаюсь вызвать buildDogs() в моем методе main, я просто получаю сообщение об ошибке, в котором говорится, что я не могу использовать нестатический метод в static void main. Я не уверен, где я испортил, понимаешь, что я делаю не так? Вот точный учебный план для моего задания и мой код.

Curriculum
buildDogs»
Этот нестатический метод не имеет параметров.
Он строит пять DogBean-компонентов с использованием жестко закодированных (определяемых программистом) значений. Не получайте эти значения из командной строки!
помещает пять DogBeans в массив
возвращает массив DogBeans
«displayDogs»
Этот нестатический метод имеет один параметр - массив DogBeans.
Он перебирает передаваемый массив и вызывает собственный метод toString для каждого DogBean.
«Главный»
Это стандартный статический метод main.
В этом методе вы должны вызвать buildDogs и сохранить результат в массиве DogBeans с именами «allDogs» и
вызовите displayDogs и передайте ему ссылку на массив allDogs

Java-код:

public class Kennel {
public DogBean[] buildDogs(){
    DogBean dog1 = new DogBean(1, "blue", 1, "schnoodle", "clyde");
    DogBean dog2 = new DogBean(2, "yellow", 2, "dachsund", "jack");
    DogBean dog3 = new DogBean(3, "green", 3, "schnauzer", "john");
    DogBean dog4 = new DogBean(4, "red", 4, "poodle", "bonnie");
    DogBean dog5 = new DogBean(5, "purple", 5, "pitbull", "jacob");
    DogBean[] dogs = {dog1, dog2, dog3, dog4, dog5};
    return dogs;
}
public DogBean[] displayDogs(){

    DogBean[] dogsArray = buildDogs();
    /*for each loop*/
    for (int i = 0; i < dogsArray.length; i++)
        dogsArray[i].toString();
    System.out.printf(dogsArray + ", ");
return dogsArray;
}

public static void main(String[] arg) {
        DogBean[] allDogs = buildDogs();
        DogBean[] displayDogs = allDogs;
    }
}

1 Ответ

0 голосов
/ 28 апреля 2018

buildDogs - это метод экземпляра Kennel - согласно вашему коду. Следовательно, вам нужно создать экземпляр для доступа к нему.

Так что вы должны получить к нему доступ таким образом:

public static void main(String[] arg) {
    DogBean[] allDogs = new Kennel().buildDogs();
    DogBean[] displayDogs = allDogs;
}

Обновление:

Вот правильная реализация displayDogs в соответствии с вашим вопросом в комментариях.

public static void main(String[] arg) {
    DogBean[] allDogs = new Kennel().buildDogs();
    displayDogs(allDogs);
}

public static void displayDogs(DogBean[] allDogs) {
    for(DogBean dogBean : allDogs) {
        System.out.println(dogBean); // TODO: make sure you implement the toString() method of DogBean.
    }
}

Обновление 2:

Если displayDogs не может быть статическим, сделайте его методом экземпляра:

public static void main(String[] arg) {
    final Kennel kennel = new Kennel();
    DogBean[] allDogs = kennel.buildDogs();
    kennel.displayDogs(allDogs);
}

public void displayDogs(DogBean[] allDogs) {
    for(DogBean dogBean : allDogs) {
        System.out.println(dogBean); // TODO: make sure you implement the toString() method of DogBean.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...