我的二维数组具体的个数在键盘输入,怎么在输入n和m的值后调用函数,谢谢
原先还没注意,原来你的s()方法里面本来就有错误,会导致数组越界。如果n=5,m=6,你取值顶多只能取a[4][5],而你直接把n和m传进去了。
毛病太多了,你可以把代码修改一下:
public class AA{//类名最好还是用大写代替,养成好习惯
int n,m;
int a[][];
public AA(Scanner in){
n = in.nextInt();
m = in.nextInt();
a = new int[n][m];
}
public void s(){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=1;
System.out.println(a[i][j]);//这样就会输出好多1了。
}
}
}
public void main(String[] args){
Scanner in = new Scanner(System.in);
AA aa = new AA(in);
aa.s();
}
}
没看懂你的意思 不知道你是不是想在键盘输入二维数组的大小的m,n ,如果是的话 你可以给个二维数组的初始化函数 init( int m,int n){
a[][] =new int[m][n]
}就可以了
方法一:在void s()方式前加上static,在main方法最后一行添加s();
方法二:在main方法最后一行添加aa a_a = new aa(); a_a.s();
另外,你只在main方法中给m与n赋值了,并没有给二维数组赋值(二维数组的长度n、m还是原先的0),所以你按上面写的方法直接运行的话,
肯定是会报数组越界错误的。
http://www.cnblogs.com/iamAnonymous/p/6051769.html
谢谢各位了,新手上路,挺难的