Я подсмотрел ответ, теперь жалею, так как сам не разобрался. 1)В методе min(int a, int b) через оператора if/else находим наименьшее число - это понятно. 2)Результат метода min(int a, int b) возвращаем в метод min(int a, int b, int c, int d), верно? 3)Далее, присваиваем переменные методу min(int a, int b) и...половине метода min(int a, int b, int c, int d)? Так можно? 4)Почему программа начинает работать, после того, как мы пишем return min(x,y);? Мы же по факту сравнили только переменные a и b в методе min(int a, int b). Как происходит сравнение всех 4-ех переменных? Заранее спасибо за помощь. P.S. Извиняюсь, что выкладываю рабочий код, но без него возможно было бы не понятно, о чем я говорю.
public class Main {
    public static int min(int a, int b, int c, int d) {
        //напишите тут ваш код
        int x = min(a,b);
        int y = min(c,d);
        return min(x,y);

    }

    public static int min(int a, int b) {
        //напишите тут ваш код
        if(a<b)
        return a;
        else
        return b;

    }

}