当前位置:编程学习 > JAVA >>

数组初始化的问题 在线等。。。


public class C {
private int[] arr=new int[4];

public static void main(String[] args) {
new C().run();
}

public void setArr(int[] arr) {
this.arr = arr;
}
public void getArr() {
for(int i=0;i<4;i++){
System.out.println(arr[i]);
}
}
public void run() {
int[] a= {1,2,3,4};
new C().setArr(a);
new C().getArr();

}

}

为什么输出都是0????? --------------------编程问答-------------------- new C().setArr(a);
new C().getArr();
你 getArr是新new出来的,不是上面那个,上面那个赋值没用的!
你要么改成private static int[] arr = new int[4];
要么改成
C c = new C();
c.setArr(a);;
c.getArr();
--------------------编程问答--------------------

new C().setArr(a);
new C().getArr();

上面创建了两个不同的对象,你改变的只是第一个对象的arr属性的值,然后打印的是第二个对象的arr数组里面的值,改成下面试试:

setArr(a);
getArr();
--------------------编程问答-------------------- 同意楼上的!!! --------------------编程问答-------------------- new C()
new两次,已经是两个不同对象了。好比你盖了一个房子,在这个房子里放了点家具。然后你又盖了个房子,想在这个房子里找刚才放的家具。。。 --------------------编程问答-------------------- 两个new…… --------------------编程问答-------------------- 两个new 访问的都不是一个对象啊亲。。。。。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,