2011-06-02 65 views
0

嗨我寫了一個方法來計算一個數字出現在一個數組中的次數。問題是它在與主程序寫在同一個類中時有效但在寫入不同的課程時不起作用。方法只適用於主類但不從其他類調用時

public class Digits { 


    public static void main(String[] args) { 
     int []b={1,1,1,1,2}; 

    int c= Digits.numberCount(b,5); 
    System.out.println(c); 
    } 




     public static int numberCount(int[]numbers,int number){ 
    int count=0; 
    for(int i=0;i<numbers.length;i++){ 
     if(number==numbers[i]) 
      count++; 
    } 
    return count; 
      } 

} 

它工作在以上的例子,但是當沒有當我試圖從另一個類,但在同一個項目

public class DigitsA { 
    private int[]numbersrange; 


    public DigitsA(){ 
     numbersrange=new int[9]; 

    } 

    public static int numberCount(int[]numbers,int number){ 
     int count=0; 
     for(int i=0;i<numbers.length;i++){ 
      if(number==numbers[i]) 
       count++; 
     } 
     return count; 
    } 

} 
+4

定義「不起作用」。 – EboMike 2011-06-02 01:41:40

+1

你打電話的方法是第二個例子嗎? – RMT 2011-06-02 01:42:10

+0

你如何在第二個例子中調用該方法? – 2011-06-02 01:43:35

回答

1

你似乎混淆使用方法...以下是你將如何使用它,再加上看到使用的foreach循環,使你的代碼更清潔:

public class Digits 
{ 

    public static void main(String[] args) 
    { 
     int[] b = { 1, 1, 1, 1, 2 }; 
     int c = Digits.numberCount(b, 5); 
     System.out.println(c); 
    } 

    public static int numberCount(int[] numbers, int number) 
    { 
     int count = 0; 
     for (int element : numbers) 
     { 
      if (number == element) 
       count++; 
     } 
     return count; 
    } 
} 

然後打電話......

public class Caller { 

    public static void main(String[] args) 
    { 
     int[] b = { 1, 2, 3}; 
     int c = Digits.numberCount(b, 2); 
     System.out.println(c); 
    } 
} 
+0

這甚至不會編譯。兩個公共類在同一個文件中,甚至每個main.please編輯它。 – Algorithmist 2011-06-02 02:00:04

+0

@Algorithmist - 他不指示任何人將兩個類放在一個文件中。 – 2011-06-02 03:03:20

+0

確定 - 我已經分開了課程 – Bohemian 2011-06-02 04:05:02

相關問題