我想我明白了混淆的地方。也許這會有所幫助。
首先,我認爲你應該理解關於Java的一些非常重要的東西。
您的主要方法是運行的FIRST方法。
所以我們來簡單介紹一下如何在沒有IDE的情況下創建Java程序。 首先,您將代碼寫入文本文件,並在完成後將其重命名爲arraysAndMethods.java。接下來我們需要把你的代碼放到一個可以被計算機使用的表單中,它首先通過命令行從下面的代碼中編譯成字節代碼:
javac arraysAndMethods.java
編譯完成後,你可以用這個命令運行程序:
java arraysAndMethods
如果沒有問題,程序將運行。 你說你想把變量傳入主方法中?這裏是你如何做到這一點的命令行:
java arraysAndMethods 45.6 38.2 5.5 105.3
看你的主要方法,它採用下列參數:(String args[])
所以你的情況,該45.6 38.2 5.5 105.3
將被傳遞到您的主要方法爲一個字符串數組。第一項是45.6
,其次是38.2
,然後是5.5
,最後是105.3
。 它會看起來像這樣的陣列:["45.6"],["38.2"],["5.5"],["105.3"]
但他們都是字符串和不是雙打。
所有這一切都是說,如果你想將某些東西傳遞給你的主要方法,你需要通過命令行來完成,或者查看你的個人IDE(如Eclipse,Netbeans等)。 )處理。
所以回顧一下:main方法中的參數是從控制檯進來的,除非有其他的規範被創建,並且在你的情況下它返回一個double類型的數組。
我知道這是相當冗長的,但忍耐着我,我差不多完成了。
當一個Java程序運行時(我在這裏簡化了一下),它進入主方法並執行它看到的第一行。當它完成後,它會進入下一行,等等,直到它到達主方法的末尾。然後程序完成。
所以一切都必須在主要方法中完成。儘管可以從主方法調用其他類和方法。
現在,你有解釋,這裏是我會做什麼來修復您的代碼:
public class arraysAndMethods {//Changed from arraysAndMethods to ArraysAndMethods because classes are always capitalized
public static void printArray(double[] arr) {//Added static so this could be used within the same class as the main method.
//int x = arraysAndMethods.main(double[i] arr); No need for this line
for (int i = 0; i < arr.length; i++)// Changed "studGrades.lenght" to arr.length
System.out.print(arr[i] + " ");//Changed "studGrades" to arr
}// end of printArray method
public static void main(String args[]){// Changed the return type to "void". No need to return the double array.
java.util.Scanner input = new java.util.Scanner(System.in); // input scanner
System.out.println("What is the size of the class?");
int n = input.nextInt();
double[] arr = new double[n];// declare and initialize array to have n many elements
for (int i = 0; i < arr.length;i++) {// input grades for each students
System.out.println("What is the grade of student #" + (i+1));
arr[i] = input.nextDouble();
} // end of for loop
printArray(arr);
//return arr; No need for this line
}// end of main method
}// end of class
請務必當你準備好和贊成票任何答案或建議您標記的最佳答案感覺有幫助。不僅僅是對於這個問題,你在哪裏是原始的海報,而是針對其他問題的線索。
'int x = arraysAndMethods.main(double [i] arr);'main的輸入是字符串數組,你是如何向方法發送一個double的?最好將方法的名稱從'main'改爲別的。 – Reza 2014-10-17 18:59:16
你爲什麼要問一個問題兩次?http://stackoverflow.com/questions/26429681/java-main-method-called – Reza 2014-10-17 20:00:16