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

#java #arraylist #processing

#java #arraylist #обработка

Вопрос:

Всякий раз, когда я пытаюсь добавить a country в свой ArrayList<country> , я продолжаю получать эту ошибку: unexpected token: ( и она выделяет мою countries.add строку. Я не уверен, почему это происходит.

 class country  {
    private int mland, mwaters; //mtotalborders;
    private String mcenter;

    country(int earth, int aqua, String yn)  {
        mland = earth;
        mwaters = aqua;
        mcenter = yn;
    }
    public int getLand()  {
        return mland;
    }
    public int getWaters()  {
        return mwaters;
    }
    public int getTotalBorders()  {
        return mland mwaters;
    }
    public String getCenter()  {
        return mcenter;
    }
}

country Turkey = new country(16, 7, "No");
country France = new country(22, 4, "No");
country England = new country(17, 9, "No");
country Germany = new country(26, 4, "Yes");
country Austria = new country(28, 1, "Yes");
country Italy = new country(17, 8, "Yes");
country Russia = new country(23, 3, "No");
ArrayList<country> countries = new ArrayList<country>();
countries.add(Turkey);
 

Комментарии:

1. Имена классов должны начинаться с заглавной буквы, а объекты — нет. Следующий стиль кода помогает вам понимать другой код и помогает другим читать ваш. вот руководство 🙂

2. Имя класса должно начинаться с символа верхнего регистра, поэтому страна должна быть названа как Country .

3. Так я должен использовать только первую страну или каждый раз? Я написал каждую страну с заглавной буквы и названия стран в нижнем регистре и все равно получил ту же ошибку.

4. Использование a String с двумя значениями «Да» или «Нет» — довольно плохая идея. Рассмотрите возможность использования a boolean или, возможно enum , вместо. Однако это не связано с проблемой, с которой вы столкнулись.

Ответ №1:

Вам нужно поместить свой код в метод — вы, вероятно, хотите использовать main метод — см. Ниже.

     ......

    public String getCenter()  {
        return mcenter;
    }

    public static void main(String[] args){
        country Turkey = new country(16, 7, "No");
        country France = new country(22, 4, "No");
        country England = new country(17, 9, "No");
        country Germany = new country(26, 4, "Yes");
        country Austria = new country(28, 1, "Yes");
        country Italy = new country(17, 8, "Yes");
        country Russia = new country(23, 3, "No");
        ArrayList<country> countries = new ArrayList<country>();
        countries.add(Turkey);
    }
}
 

Примечание: правильное соглашение заключается в том, чтобы писать имена с заглавной Class буквы и указывать имена переменных в нижнем регистре.

Для этого потребуется изменить свое Class имя в коде — см. Ниже.

 class Country  {
    private int mland, mwaters; //mtotalborders;
    private String mcenter;

    Country(int earth, int aqua, String yn)  {
        ......
 

Также в любое время, когда вы ссылаетесь на Class имя. Например.

 Country turkey = new Country(16, 7, "No");
 

Комментарии:

1. При обработке они, вероятно, должны быть в setup методе, а не в основной функции.

2. В качестве дополнения: вы также можете поместить countries.add в блок инициализатора, если хотите, чтобы они добавлялись при запуске.

3. @JakeKing Учитывая характер вопроса, я действую в предположении, что это вводное упражнение hw, поэтому здесь приведены основы.

Ответ №2:

Lufval, вы пытаетесь написать код вне определения класса. Объявления глобальных переменных в порядке, исполняемые операторы — нет.

Комментарии:

1. Java не имеет глобальных переменных вне классов. Я думаю, вы имеете в виду попытку написать код вне метода.