Как я могу получить значение результата в перегрузке Java - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу написать программу так, чтобы, если входное значение было true, оно добавляло a и b, а если входное значение было false, оно вычитало b из a.Кроме того, когда это ArrayList, если вход true, он выбирает максимальное значение, а если вход false, он выбирает минимальное значение.

public class Source7_3 {

    public static void main(String[] args) {
        OverLoading mm = new OverLoading();

        int[] a = new int[10];
        for (int i = 0; i < a.length; i++)
            a[i] = (int) (Math.random() * 100) + 1;

        System.out.println("dist(" + mm.a + ", " + mm.b + ", " + true + ") = ");
        System.out.println("dist(" + mm.a + ", " + mm.b + ", " + false + ") = ");
        System.out.println("dist(arr, " + true + ") = ");
        System.out.println("dist(arr, " + false + ") = ");
    }
}

class OverLoading {

    int a = (int) (Math.random() * 100) + 1;
    int b = (int) (Math.random() * 100) + 1;

    int dist(int a, int b, boolean d) {
        return d == true ? a + b : a - b;
    }

    int dist(int[] a, boolean d) {
        for (int j = 0; j < a.length; j++) {
            int max, min;
            max = min = a[0];
            if (max < a[j])
                max = a[j];
            if (min > a[j])
                min = a[j];
            return true ? max : min;
        }
    }

}

Но яне могу получить значение результата .. Как я могу получить его?Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018
class OverLoading
{
    int a = (int) (Math.random() * 100) + 1;
int b = (int) (Math.random() * 100) + 1;

int dist(int a, int b, boolean d) {
    return d == true ? a + b : a - b;
}

int dist(int[] a, boolean d) {
        int max, min;
        max = min = a[0];
    for (int j = 0; j < a.length; j++) {
        if (max < a[j])
            max = a[j];
        if (min > a[j])
            min = a[j];
    }
    return  d == true ? max : min;
}
}

public class HelloWorld{

    public static void main(String[] args) {
    OverLoading mm = new OverLoading();

    int[] a = new int[10];
    System.out.println("\n");
    for (int i = 0; i < a.length; i++)
    {
        a[i] = (int) (Math.random() * 100) + 1;
        System.out.println(a[i]);
    }
    System.out.println("\n");
    System.out.println("dist(" + mm.a + ", " + mm.b + ", " + true + ") = "+mm.dist(mm.a,mm.b,true));
    System.out.println("dist(" + mm.a + ", " + mm.b + ", " + false + ") = "+mm.dist(mm.a,mm.b,false));
    System.out.println("dist(arr, " + true + ") = "+mm.dist(a,true));
    System.out.println("dist(arr, " + false + ") = "+mm.dist(a,false));
}
}
0 голосов
/ 27 ноября 2018

Я думаю, что вы пытаетесь вызвать эти методы, но в данный момент вы просто добавляете Strings

System.out.println("dist(" + mm.a + ", " + mm.b + ", " + true + ") = ");

, может быть

System.out.println(mm.dist(mm.a, mm.b, true);

и поскольку поля a и b являются частью класса, нет необходимости передавать их

...