/*
错误原因:
main()函数是static即静态
静态是在类创建对象前就已经出现所以他只能调用同样是静态的函数
*/
class ArrayDemo1{
public static void main(String[] args){
int[] x={13,45,65,23,78,12};
show1(x);
}
//非static调用错误
public void show(int [] x){
for(int i=0;i<x.length;i++){
if(i==x.length-1){
System.out.println(x[i]);
}else{
System.out.print(x[i]+" ,");
}
}
}
//static函数调用没问题
public static void show1(int [] x){
for(int i=0;i<x.length;i++){
if(i==x.length-1){
System.out.println(x[i]);
}else{
System.out.print(x[i]+" ,");
}
}
}
}
class ArrayDemo2{
public static void main(String[] args){
int[] x={13,45,65,23,78,12};
ArrayTool.show1(x);//静态调用
//ArrayTool.show(x);//非法调用因为show不是静态函数
//---------------------------------//
/*
调用非静态成员时候需要先创建对象
如果ArrayTool类定义了私有的构造函数就不能创建ArrayTool类的对象
private ArrayTool(){}
*/
ArrayTool at=new ArrayTool();
at.show(x);
}
}
转载于:https://blog.51cto.com/renlei/1830411