2

我有课:

public class Provider { 
public static int getNumberofObjects() {
    Scanner in = new Scanner(System.in);

    System.out.print("Input Number of Objects: ");

    int numberOfObjects = in.nextInt();

    return numberOfObjects;
}}

如何在每次需要此变量时都无需提示用户再次输入新的对象数量来传递刚刚的 numberOfObjects 变量?

我正在做的是:

public class B {
Provider provider = new Provider();

int numberOfObjects= Provider.getNumberofObjects(); }

但是由于我在这个类的多个方法中使用了 numberOfobjects,所以每次都会提示我输入新值。

4

2 回答 2

6

一种方法是将结果缓存在提供程序中,并在所有后续调用中返回它,如下所示:

public class Provider { 
    boolean gotNumber = false;
    int theNumber;
    public int getNumberofObjects() {
        if (!gotNumber) {
            Scanner in = new Scanner(System.in);
            System.out.print("Input Number of Objects: ");
            theNumber = in.nextInt();
            gotNumber = true;
        }
        return theNumber;
    }
}

此实现仅在第一次getNumberofObjects()调用该方法时向用户请求号码;所有后续调用都theNumber在第一次调用中使用 read。

请注意,我将getNumberofObjects()方法设置为非静态的,因此您需要将其传递new Provider()给需要该数字的类。

于 2013-09-24T14:31:18.947 回答
0

将变量作为实例变量(在类级别定义)而不是在方法中使用它

于 2013-09-24T14:31:11.367 回答