在java中如何在一个类中改变另一个类(在另一个包中)中的数组原始值?

修改之后再次引用该数组的数据,为什么变回原始值?

楼主,你这个问题需要理解两个概念:
1、类的实例
2、访问域
一个类如下:
public class Test{
public static int a=10;
publicint b=20;
}

一个类要被使用,就必须有实例。
Test t1=new Test();
new Test()为t1这个引用在内存里面划分了一块空间出来,专门用来保存这个类的信息。
于是我们可以使用t1.b,它的值为20。
如果我们操作t1.b=30,那么t1这个实例里的b就改变为了30。
再写一行
Test t2=new Test();
new Test()的引用为t2。则t2.b的值为20,而非30,因为t1和t2的内存空间是独立的,相互不会影响。
同样我们对t2.b=40,也不会影响到t1.b的值。

那么a的值呢?
t1.a=30会是什么结果?
结果是t2.a也会为30。
如果你使用的是eclipse,那么在t1.a下面会出现一个黄线。
这是说明,使用方法不标准

事实上你用Test.a就可以了。
我们可以看到,a前面有static这个标签,这是说明a是一个静态的给所有Test实例用的变量。
既是说,它既不属于t1这个引用所指向的内存,也不属于t2。
它属于一个单独的为Test所用的static内存区域。

回到楼主的问题
1、访问域来说,你需要有办法访问到另一个类的数据,即是说,那个类的数据为public,或者提供了修改它的public方法(setXXX)
2、如果该值为static的,则你只需要调用 类名.属性名=你期望的值,就可以修改
3、如果该值不为static,则你只能修改它的某个实例的这个属性的值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-23
1,如果这个数组定义的是常量的话,那么没有办法更改
2,如果该数组定义的修饰为public(这种情况很少),可以直接调用类对象
3,如果该数组定义私有private,则必须要有set方法,调用类对象的set方法可以修改
第2个回答  2012-11-23
得到数组引用,修改完直接赋值引用就行。自己写一个类就行,把要修改的类作为引用对象就可以啊。
第3个回答  2012-11-23
首先看能不能得到数组的引用,如果可以,直接改不就完了么。如果不可以,那就改不了。
第4个回答  2012-11-23
先要导入这个包 然后构造这个类的引用追问

构造这个类的引用? 我是
新手不懂?