Вопрос по документации Java и ее реализации - PullRequest
0 голосов
/ 13 декабря 2018

Сейчас я сижу на упражнении, которое требует от меня создания Java-программы на основе уже готового HTML-документа документации.Например, одна запись состояния

reversedArray

public static Object[] reversedArray(Object[] array)

Исходя из имени, мы можем предположить, что метод должен возвращать массив в обратном порядке array.

Теперь мой вопрос не о том, как создать указанный массив, а о терминологии Object[].Что это значит?Должен ли я создать группу методов путем перегрузки каждого с определенным типом массива (например, String[], int[], ...) или буквально Object[]?

Это последнее, как объектработа с массивами?Основываясь на названии, я предполагаю, что это массив, который может содержать объекты, но я не уверен, что это означает на практике.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Как уже сказано в имени, метод должен создать новый массив в обратном порядке «массив».

Имя метода говорит только «повернуть» массив;вопрос о том, нужно ли просто изменить фактически предоставленный массив или создать новый, необходимо уточнить у автора требования, если оно неясно.

Теперь мой вопрос не о том, как создать указанный массив, а о терминологии «Object []».В принципе, я не уверен, что делать.Означает ли упомянутое «Object []», я должен создать группу методов путем перегрузки каждого из них с определенным типом массива (например, String [], int [], ...) или буквально массивом Object []?

Нет, вам нужно создавать перегрузки только для примитивных типов, например int[], long[] и т. Д., И это только в том случае, если это требуется вашим требованием.вышеупомянутый метод должен быть в состоянии потреблять Object[], String[], Integer[], Double[] и т. д. *

Это последний, как работает массив объектов?Основываясь на имени, которое я предполагаю, это массив, который может содержать объекты, но я не уверен, что это означает на практике.

Имя метода не имеет ничего общего с тем, что может содержать массив,Аргумент метода - это массив Object, и это так просто.

Чтение, которое вы можете найти полезным:

0 голосов
/ 13 декабря 2018

Object[] - это, в основном, просто массив объектов (за лучшее объяснение здесь, пожалуйста, ----> ☐)

Шутки в сторону, в Java любой объект является производным от класса Object, поэтомув основном этот массив может хранить любой объект любого класса.Это в основном полезно, когда вы просто хотите переносить экземпляр (или несколько экземпляров) разных классов, но тип указанного экземпляра не важен.

Допустим, у вас есть несколько классов, которые не обязательно связаны:

Class Dog {
    String name;

    public Dog(String name) {
        this.name = name
    }

    public String toString() {
        return "Hello! I am a dog called " + this.name;
    }
}

Class Refrigerator {
    public Refrigerator() {
    }

    public String toString() {
        return "I am a refrigerator";
    }
}

Поскольку оба класса неявно получены из Object, а Object реализует метод toString(), вы можете переопределить этот метод в обоих ваших объявлениях классов.

Затем вы можете сохранить любой их экземпляр в Object и вызвать метод toString(), например, так:

Dog myDog = new Dog("Spike");
Object anyObject = myDog;
System.out.println(anyObject.toString());   //would print the result of your "toString()" method in the Dog class : 
                                            //"Hello! I am a dog called Spike"


Refrigerator myFridge = new Refrigerator();
Object secondObject = myFridge;
System.out.println(secondObject.toString());    //would print the result of your "toString()" method in the Refrigerator class : 
                                                //"I am a refrigerator"

Это позволяет вам создать метод, который принимает любой объект и обрабатывает ихто же самое и назначьте любой объект в аргументе:

public void printWhatYouAre(Object o) {
    System.out.println(o.toString());
}

public void doingSomething() {
    Dog myDog = new Dog("Spike");
    Refrigerator myFridge = new Refrigerator();

    printWhatYouAre(myDog);
    printWhatYouAre(myFridge); //would print the same as above
}

В вашем случае, ваш метод должен только переставить массив, что означает, что ему даже не нужен метод toString, и при этом он не должен знатьчто за объектыПросто нужно сохранить массив чего-либо в другом массиве чего-то в другом порядке.


Здесь - хорошее чтение о полиморфизме в Java, который в основном применим влюбой язык, но используемые примеры написаны на Java. Весь сайт на самом деле является довольно хорошим справочником, поэтому стоит взглянуть, особенно на те ООП-разделы, которые больше всего связаны с вашим постом.;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...