Как вернуть / распечатать метод нескольких объектов в JAVA? - PullRequest
0 голосов
/ 11 июля 2020

Я новичок в Java, и мне интересно, могу ли я вывести расстояние между моим героем и каждым городом сразу? Как мог выглядеть метод, который я ищу?

City city = new City();
City city1 = new City();
City city2 = new City();
City city3 = new City();
System.out.println(city.distance(hero)); // works fine for a single city = 21.1 something
System.out.println(City.noOfCitys); // works fine = 4
System.out.println(City.distances(hero)); // should output all distances at once for example as string

Мой класс города уже подсчитывает созданные объекты с помощью stati c noOfCitys

package adventure;

public class City {
    
    static int noOfCitys = 0; 
    { 
        noOfCitys += 1; 
    } 
    
    private String name = "Stadt";
    private int posX = 15;
    private int posY = 15;
    
    public String getName(){
        return this.name;
    }
    
    public void setName(String name){
        this.name = name;
    }

    public int getPosX(){
        return this.posX;
    }
    
    public void setPosX(int posX){
        this.posX = posX;
    }
    
    public int getPosY(){
        return this.posY;
    }
    
    public void setPosY(int posY){
        this.posY = posY;
    }
    
    
    public String distance(Adventurer hero) {
        return ""+Math.sqrt(((this.posX-hero.getX())*(this.posX-hero.getX()))+((this.posY-hero.getY())*(this.posY-hero.getY())));
    }
}

Дополнительная информация: я уже изучил несколько ответы на аналогичный вопрос, но понятия не имели, как добавить к моему конкретному вопросу.

1 Ответ

0 голосов
/ 16 июля 2020

Предложение от @funky (я его немного адаптировал) сработало как шарм. Спасибо.

        City[] city = new City[3];
        Hero hero = new Hero();
        
        city[0] = new City("Men-nefer",290,165);
        city[1] = new City("Heliopolis",262,170);
        city[2] = new City("Merimda",250,130);
        
        System.out.println(city[0].distance(hero));
        System.out.println(city[1].distance(hero));
        System.out.println(city[2].distance(hero));
...