2015-11-19 84 views
-1

爲什麼不能在方法外使用System.out.println和當我嘗試在其他類中使用我的主類的方法時,它顯示標識符未找到 可能有更好的方法來做到這一點。但我想知道這裏有什麼不對爲什麼我不能使用System.out.println方法,當我嘗試在其他類中使用我的主類的方法時,它顯示標識符未找到

package arraytest;   //package declared 
import java.util.Scanner; // for input 

public class Arr {   // this is my main class 

    void min(int arr[]) 
    { 
     int min=arr[0]; 

     for(int i=1;i<arr.length;i++) 
     { if(min>arr[i]) 
     min=arr[i]; 
     } 
    System.out.println(min); 

    } 

    public static void main(String[] args) 
    { 

     Array a=new Array(); 
     a.inputData(); 
     a.display(); 
     a.min(); 
    } 
} 



class Array 
{ 

     int arr[]=new int[5]; 
     Scanner sc= new Scanner(System.in); 
     // System.out.println(arr.length); will not work why? 

     void inputData() 
     { 
      for(int i=0;i<arr.length;i++) 
      { 
       arr[i]=sc.nextInt(); 
      } 

     } 

     void display() 
     { 
      for(int i=0;i<arr.length;i++) 
      { 
       System.out.println(arr[i]); 
      } 

     } 

    void min() 
    {   
    Arr a=new Arr();  
    a.min(int arr[]); // this shows error 
    } 

} 
+1

你想在你的min()方法中完成什麼? – gonzo

+0

http://stackoverflow.com/questions/12062481/why-cant-i-do-assignment-outside-a-method –

+0

找到數組中的最小值 –

回答

1

你不能把代碼放在那裏。你的代碼必須在方法中。上面的2行是聲明,System.out.println是代碼。代碼必須進入一個方法。''''''''''''''''

如果您的arr是靜態的,您可以使用靜態塊,但事實並非如此。

+0

好的謝謝我得到了我的第一個問題的答案。但第二部分仍然不清楚 –

0

變化如下面你分鐘方法,

void min() { 
    Arr a = new Arr(); 
    a.min(arr); // this shows error 
} 

這是你如何傳遞數組的方法的參考。

相關問題