繁体   English   中英

如何从Java的另一个类中调用某些东西并使用它的Array?

[英]How to call on something from another class in Java and use it's Array?

我正在制作一个计算器,并具有称为加法,减法,乘法和除法的类,以及另一个名为Calculation的类,需要它们全部从Calculation中获取数据,然后将其更改为Operator的代码示例:

public static void addition(){
    calculation(); //imports calculation

    for(int counter=0; counter < list.size(); counter++){
        answer += list.get(counter);
    }
    System.out.println("The sum of these numbers is " + answer);
}

我简化了Calculation类,因此更容易理解:

public static void calculation(){
    List<Double> list = new ArrayList<Double>();

do{
   list.add(scan.nextDouble());
}while(true)

此后,我希望能够在我的Addition类中使用List,但是我一直在列表上看到“无法解析列表”的错误,并且它希望我创建一个局部变量。 我希望它从Calculation中获取列表,然后允许我更改其结果。

如何允许它在我的Addition类中使用“列表”?

好的,所以我认为您对Java方法的工作原理有基本的误解。 当您调用calculation() ,您将执行该方法中的代码 ,然后返回addition()的同一点。

现在, listcalculation()声明,因此list的范围在该方法内部。 不能在该方法之外使用。 一旦calculation()完成,它将销毁list 如果要在calculation()完成后访问list ,则应return它。

return list;

然后,您可以按以下addition方法访问它:

List<Double> list = calculation();

编辑

我注意到在您的calculation()方法中,您有一个无限循环:

do{
   list.add(scan.nextDouble());
}while(true)

这将继续期望用户提供新的两倍。 这是不理想的,因为用户不会想要将无限个double值系列加在一起。 主要是因为那是不可能的。 那样的解析只会引起问题。 我建议将输入解析为String ,检查值是否对应于double ,然后使用Double.parseDouble()方法对其进行解析。

额外阅读

  • 我会读入用Java返回数据。 在这里查看

  • 我还将研究Scope 范围是大多数编程语言中的基本原理,因此最好使您掌握它。 在这里阅读。

  • 最后,我将研究方法调用。 您似乎认为方法调用会导入代码 ,而不是执行代码 在这里阅读。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM