-1

在看了很多基础教程之后,我决定是时候尝试制作一些我自己的简单应用程序来帮助我理解 OOP 并记住我到目前为止所学的内容。

我的尝试是制作一个具有主类和 2 个对象类的应用程序。

我有 Main.java,它只调用 Performer.java 和 Calculations.java。

现在我正在处理我的 Performer.java 对象。

我希望 Performer.java 从用户那里获得 5 个整数,然后我希望能够将它作为一个数组返回并通过我的 Calculations.java 运行它,这将执行一些简单的任务,比如计算平均值和总数。

我将我的方法设置为公开,如果我理解正确,这应该允许我从应用程序的其他任何地方访问这些变量。

我试过把它作为

返回数组列表[] = {u1,u2,u3,u4,u5};

这给了我一个错误“需要枚举标头”

import java.util.Scanner;

public class Performer {

    public static int getUnit(){
        Scanner scan = new Scanner(System.in);

        System.out.println("Enter the first number: ");
        int u1 = scan.nextInt();

        System.out.println("Enter the first number: ");
        int u2 = scan.nextInt();

        System.out.println("Enter the first number: ");
        int u3 = scan.nextInt();

        System.out.println("Enter the first number: ");
        int u4 = scan.nextInt();

        System.out.println("Enter the first number: ");
        int u5 = scan.nextInt();

        return u1, u2, u3, u4, u5;  <--------Confusing Part
    }
}

我的第二次尝试是将它们作为单独的变量返回,但这告诉我预期的类型是 int。我认为是因为这些变量 scan.nextInt()。

我可以做些什么来返回一个可以通过其他对象的数组?

谢谢!

4

7 回答 7

5

你可以使用List或数组。

尝试这个 -

public static List<Integer> getUnit(){
    List<Integer> list = new ArrayList<>();
    System.out.println("Enter the first number: ");
    list.add(scan.nextInt());
    ...

    return list;
}
于 2013-05-07T07:01:26.830 回答
5

将getUnit()的返回值改为int[],返回值如下:

return new int[] {u1, u2, u3, u4};

如果要返回一个List,可以设置返回值List<Integer>,返回值如下:

return Arrays.asList(u1, u2, u3, u4);

请注意,Arrays.asList 返回一个不可变的列表,因此您不能从中添加或删除值。

于 2013-05-07T07:01:59.503 回答
1

由于您是编程新手,首先让我清除您代码中的一些错误。这一行在这里:

 return u1, u2, u3, u4, u5;  <--------Confusing Part

在您使用 return 语句的地方,return 一次只允许传递一个值,因此您不能同时传递所有 u1,u2,u3,u4。

其他编码人员已在上面提供了解决方案:您可以将 getUnit() 方法的返回类型更改为整数数组并返回该数组的引用,或者您可以更改 getUnit() 方法的返回类型到一个整数列表并返回列表的引用。

由于您是编码新手并且您不了解 ArrayList,因此这里有一个链接: Java ArrayList 类

于 2016-10-08T09:24:04.747 回答
0

尝试这个

`public static int[] getUnit() {

    int[] unit = new int[5];
    Scanner in = new Scanner(System.in);
    for (int i = 0; i < unit.length; i++) {
        System.out.println("Enter element number " + (i + 1) + ":");
        unit[i] = in.nextInt();
    }
    System.out.println("All unit entered");
    return unit;
}`

我猜这就是你想要的。

于 2013-05-07T07:16:15.057 回答
0

好吧,首先,您的函数的返回类型是int. int[]您至少需要它来表示您要返回一个整数数组,而不是单个整数。

然后,您需要弄清楚 Java 中的数组字面量语法。

然后,您应该考虑 Java 集合类是否更适合您正在尝试做的事情。查看一些有关如何构建ArrayList.

于 2013-05-07T07:02:33.833 回答
0

替换您令人困惑的部分:

return new int[]{u1, u2, u3, u4, u5};

和函数签名:

public static int[] getUnit()
于 2013-05-07T07:07:19.363 回答
-1

你也可以这样做:

public static int[] getUnit(){
        Scanner scan = new Scanner(System.in);


        System.out.println("Enter the first number: ");
        int u1 = scan.nextInt();
        System.out.println("Enter the first number: ");
        int u2 = scan.nextInt();
        System.out.println("Enter the first number: ");
        int u3 = scan.nextInt();
        System.out.println("Enter the first number: ");
        int u4 = scan.nextInt();
        System.out.println("Enter the first number: ");
        int u5 = scan.nextInt();
        int[] array ={ u1, u2, u3, u4, u5};

        return  array;
        }
        }
于 2013-05-07T07:02:36.677 回答