Задать вопрос
@qweq123

Как вызвать список ArrayList в нестатическом метода другого класса?

Как вызвать список ArrayList(или элементы списка) из класса Main метода main() в методе positiveTriangleCheckTest() класса AreaTriangleTest?

код с классом Main:
public class Main {

    public static int a;
    public static int b;
    public static int c;

    public static int s;



    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a: ");
        a = sc.nextInt();
        System.out.print("Enter b: ");
        b = sc.nextInt();
        System.out.print("Enter c: ");
        c = sc.nextInt();

        ArrayList arrayList = new ArrayList();

        arrayList.add(a);
        arrayList.add(b);
        arrayList.add(c);

        System.out.println(arrayList);

        System.out.println(" s = " + new Main().areaOfATriangle());
    }

    public static int areaOfATriangle() {


        double p = (a + b + c) * 1/2;
        int s = (int) sqrt(p * (p - a) * (p - b) * (p - c));
        return s;

    }
}


код с классом AreaTriangleTest :
public class AreaTriangleTest extends Main {
   @Test
     public  void positiveTriangleCheckTest() {
        if (a + b > c & a + c > b & b + c > a)
        System.out.println("Треугольник существует");
        else
            System.out.println("Треугольник не существует");

    }
}
  • Вопрос задан
  • 157 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
compilator
@compilator
Senior Data Engineer
Сделайте для своей логики класс, например AreaTriangle с листом внутри. После того как прочитаете числа из консоли, создайте экземпляр этого класса, передав туда прочитанные числа. Так же в этом классе реализуйте не статический метод areaOfATriangle().
Таким образом вы избавитесь от неудобств связанных со static и сделаете свою логику более пригодной для тестирования.
В тесте спокойно сможете создать экземпляр своего класса, передав (например через конструктор) туда тестовые данные, вызвать areaOfATriangle (вы же его хотите протестировать, верно ?)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы