簡體   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