2015-07-03 54 views
0

我正在學習JAVA,並試圖製作一個程序,對任意數量的整數進行求和和平均。我已完成兩種方法對於這一點,即需要的條目數:調用方法錯誤

private Scanner takeNumberOfEntries(){ 
    Scanner numberOfEntries = new Scanner(System.in); 
    System.out.println("Number of entries:"); 

    while (!numberOfEntries.hasNextInt()){ 
     System.out.println("Enter the right format"); 
     numberOfEntries.next(); 
    } 
    return numberOfEntries; 
} 

並將其傳遞到另一個,它讀取在陣列的輸入,並將其存儲:

private void summingAndAveraging(Scanner numberOfEntries){ 
    int entryCountLimit = numberOfEntries.nextInt(); 
    int[] inputArray = new int[entryCountLimit]; 

    System.out.println("Enter the integer values"); 

    for (int i = 0; i < entryCountLimit ; i++){ 
     Scanner inputValues = new Scanner(System.in); 
     while (!inputValues.hasNextInt()){ 
      System.out.println("fu k you, enter again:"); 
      inputValues.next(); 
     } 

     inputArray[i] = (int) inputValues.nextInt(); 
    } 

} 

當我嘗試在主要調用它,我會得到錯誤。我都試過:

takeNumberOfEntries instant = new takeNumberOfEntries(); 

掃描實例=新takeNumberOfEntries();

我不知道我在做什麼錯。

+4

請註明你所得到的錯誤消息。您可能還想擴大標題,使其更具體。 – 2015-07-03 16:38:29

+0

不能調用與'new'關鍵字的方法......這是用於創建對象... – Codebender

+0

它說:在這條線的多個標誌 \t - takeNumberOfEntries解決不了 \t的類型 \t - takeNumberOfEntries不能得到解決 \t一種類型 –

回答

0

你不能實例化一個函數。你必須實例化一個類然後調用一個函數。

public class Class { 

public void function() { 

} 

public static void main(String[] args) { 
    Class instance = new Class(); 

    instance.function(); 
} 

}

0

你不能實例化一個函數,而不是你只能實例化一個類。

takeNumberOfEntries()是一個函數。

如果定義myClass如下,可以實例化使用new的實例如下所示:

public class myClass{ 

} 

MyClass instance = new Myclass; 
+0

是的,但調用函數是問題 –

0

這裏有兩個問題,一個句法和一個概念(其可以變成一個語法問題後來)。

第一個 - 你必須實例化一個類之前,你可以調用任何功能。實例化這些特定方法存在的類。

MyClass myClass = new MyClass(); 

第二 - 你不想讓這些方法保持private。除了該類聲明外,它們將不可見。至少將summingAndAveraging更改爲public,以便可以在其他地方調用它。