(Начинающий Java) класс, интерфейс или enum

Вопрос:Простите меня, чтобы опубликовать вопрос, очень похожий на тот, который я опубликовал вчера вечером. Я упростил проблему, чтобы спросить что-то более конкретное: Я получаю ошибку (класс, интерфейс или enum expected), когда я использую следующий код: import java.util.*; ArrayList eggys = new ArrayList; public class EggTest{ public static void main(String [] args){ egg a = new

Вопрос:

Простите меня, чтобы опубликовать вопрос, очень похожий на тот, который я опубликовал вчера вечером. Я упростил проблему, чтобы спросить что-то более конкретное:

Я получаю ошибку (класс, интерфейс или enum expected), когда я использую следующий код:

import java.util.*; ArrayList<egg> eggys = new ArrayList<egg>; public class EggTest{ public static void main(String [] args){ egg a = new egg(); egg b = new egg(); eggys.add(a); eggys.add(b); for (egg eggo :eggys){ System.out.println(eggo.size); } } }

Вывод компилятора:

eggys.java:4: class, interface, or enum expected ArrayList<egg> eggys = new ArrayList<egg>; ^ 1 error

Я ничего не делаю правильно. Может ли кто-нибудь помочь мне выяснить, как использовать ArrayList?

Лучший ответ:

Java – это чисто объектно-ориентированное langauage, что означает, что любые/все свойства должны принадлежать сущности i.e class/interface/enums. В вашем случае вы определили свойство/переменную, как указано ниже, которое не относится ни к классу /enum/interface, и поэтому компилятор java жалуется на него.

ArrayList<egg> eggys = new ArrayList<egg>;

Вы не можете использовать это свойство как глобальные переменные на других языках программирования. Явный объектно-ориентированный характер Java не позволяет этого.

Также, как упоминалось в комментарии ниже, “skiwi”, у вас также есть синтаксическая ошибка в определении ArrayList. Вам не хватает скобок в конце. Его следует исправить следующим образом:

ArrayList<egg> eggys = new ArrayList<egg>(); Ответ №1

Вы можете объявлять переменные только внутри класса или метода; а не как код верхнего уровня.

Ответ №2

В отличие от других языков, таких как C или С++, вы не можете ставить переменные или другие объявления вне класса или функции:

public class EggTest{ public static void main(String [] args){ egg a = new egg(); egg b = new egg(); List<egg> eggys = new ArrayList<egg>(); eggys.add(a); eggys.add(b); for (egg eggo :eggys){ System.out.println(eggo.size); } } }

В этом случае локальная переменная выглядит как лучший выбор.

Ответ №3

Две вещи:

  • Поместите эту строку внутри класса

    ArrayList<egg> eggys = new ArrayList<egg>;

  • В приведенной выше строке отсутствует(). Это должно быть:

    ArrayList<egg> eggys = new ArrayList<egg>();

Ответ №4

сделайте это следующим образом.

import java.util.*; public class EggTest{ ArrayList<egg> eggys = new ArrayList<egg>(); public static void main(String [] args){ egg a = new egg(); egg b = new egg(); eggys.add(a); eggys.add(b); for (egg eggo :eggys){ System.out.println(eggo.size); } } }

ИЛИ

import java.util.*; public class EggTest{ public static void main(String [] args){ ArrayList<egg> eggys = new ArrayList<egg>(); egg a = new egg(); egg b = new egg(); eggys.add(a); eggys.add(b); for (egg eggo :eggys){ System.out.println(eggo.size); } } }

Второй метод может использоваться только в том случае, если вы обращаетесь к переменной ArrayList только внутри основного метода.

Ошибка, которую вы получаете, заключается только в том, что вы пытаетесь объявить свою переменную ArrayList как объявление верхнего уровня. переменные в java могут быть объявлены только внутри класса
или метод.

Ответ №5

Интересно, что список яиц делает над классом. В Java вы не можете объявлять переменные выше нормального класса.

Оцените статью
Добавить комментарий