Дробный класс не может быть применен к данным типам? - PullRequest
0 голосов
/ 30 октября 2019

код выдает следующую ошибку: метод mostCommonDivisor в классе Fraction не может быть применен к данным типам;и затем следует

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

Я не очень уверен, почему ошибкатам я попытался изменить несколько вещей без удачи


class Fraction{
    private int numerator;
    private int denominator;

    public Fraction(int _num1, int _num2){
        numerator = _num1;
        denominator = _num2;
    }

    public int greatestCommonDivisor(int num1, int num2){
        int greatestCommon = 1;
        for(int i = 1; i <= num1 && i <= num2; i++){
            if(num1 % i == 0 && num2 % i == 0)
            greatestCommon = i;}
            return greatestCommon;
        }
}

public class testing2
{
    public static void main(String[] arg)
    {
        Scanner in = new Scanner(System.in);

        int num11 = in.nextInt();
        int num22 = in.nextInt();

        Fraction gcd = new Fraction(num11, num22);
        System.out.println(gcd.greatestCommonDivisor());
    }
}

Ответы [ 2 ]

2 голосов
/ 30 октября 2019

причина довольно проста:

Вы должны вызывать метод следующим образом

System.out.println(gcd.greatestCommonDivisor(num11, num22));

почему?

, потому что ваш метод определен как

int greatestCommonDivisor(int num1, int num2)

Итак, просто передайте параметры, которые вы прочитали, используя сканер, и все готово! :)

2 голосов
/ 30 октября 2019

Вероятно, метод greatestCommonDivisor() должен выглядеть следующим образом:

public int greatestCommonDivisor() {
    int greatestCommon = 1;
    for (int i = 1; i <= numerator && i <= denominator; i++) {
        if (numerator % i == 0 && denominator % i == 0)
            greatestCommon = i;
    }
    return greatestCommon;
}

Здесь вы не используете переменные-члены класса Fraction (предоставляются в конструкторе). И я бы предложил переименовать имена переменных numerator и denominator в более точные имена, такие как: firstNumber и secondNumber и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...