Java 如何在不多次执行该方法的情况下将返回值传递给其他类
我有一门课:Java 如何在不多次执行该方法的情况下将返回值传递给其他类,java,class,return-value,Java,Class,Return Value,我有一门课: 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; }} 如何传递just n
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;
}}
如何传递just numberOfObjects变量,而不必在每次需要该变量时提示用户再次输入新数量的对象
我正在做的是:
public class B {
Provider provider = new Provider();
int numberOfObjects= Provider.getNumberofObjects(); }
但是由于我在这个类的多个方法中使用numberOfobjects,每次我都会被提示输入新值。将变量作为实例变量(在类级别定义),而不是在方法中使用它一种方法是将结果缓存在提供程序中,并在所有后续调用中返回它,如下所示:
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()
方法时才向用户请求号码;所有后续调用都使用在第一次调用中读取的编号
请注意,我将
getNumberofObjects()
方法设置为非静态,因此需要将new Provider()
传递给需要该编号的类。读取不同类/方法中的对象编号,并将其存储在那里。然后,在创建提供程序的新实例时,设置此对象数。不需要类的实例来调用类的静态方法。请注意,您甚至没有使用provider变量。@GriffeyDog OP没有使用provider
类的任何实例来执行provider.getNumberofObjects()代码>否,但他正在创建一个:提供者提供者=新提供者()代码>+1尽管我可能会跳过布尔值,只需将数字初始化为Integer.MIN_值,然后检查该值而不是布尔值。@splungebob我知道下次我这样做时,我们的一个QA会输入-2147483648来烦我;-)哈哈,我说,那就换成长跑吧!