为什么我不能在方法之外使用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
}
}
您不能将代码放在那里。您的代码必须位于方法内部。上面的2行是声明,System.out.println
是代码。
代码必须进入方法内部
如果您的arr
是静态的,您可以使用静态块,但它不是。
如下更改最小方法,
void min() {
Arr a = new Arr();
a.min(arr); // this shows error
}
这就是将数组的引用传递给方法的方式。