学姐问了一个问题,为什么输出都是0000啊。
代码如下
public class Main {
public static void main(String[] args) {
Scanner s=new Scanner(System.in); int moveNum=s.nextInt();
int[] a=new int[10];
System.out.println(a);
Main m=new Main();
m.input(a);
System.out.println(a);
m.remove(moveNum, a);
m.print(a);
}
public void input(int[] a){
Scanner s=new Scanner(System.in);
// int moveNum=s.nextInt();
a = new int[10];
System.out.println(a);
for(int i=0;i<10;i++){
a[i]=s.nextInt();
}
s.close();
}
public void remove(int moveNum,int[] a){
if(moveNum>0){
for(int i=0;i<moveNum;i++){
int n=a[9];
for(int j=9;j>0;j--){
a[j]=a[j-1];
}
a[0]=n;
}
}else{
for(int i=0;i<Math.abs(moveNum);i++){
int n=a[0];
for(int j=0;j<10;j++){
a[j]=a[j+1];
}
a[9]=n;
}
}
}
public void print(int[] a){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
原因是,通过两次new,变量a获得了不同的地址。