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

修改之后再次引用该数组的数据,为什么变回原始值?... 修改之后再次引用该数组的数据,为什么变回原始值? 展开
 我来答
anrainie
推荐于2017-10-14 · TA获得超过1012个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:362万
展开全部
楼主,你这个问题需要理解两个概念:
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,则你只能修改它的某个实例的这个属性的值。
百度网友9abd129
2012-11-23 · TA获得超过356个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:145万
展开全部
1,如果这个数组定义的是常量的话,那么没有办法更改
2,如果该数组定义的修饰为public(这种情况很少),可以直接调用类对象
3,如果该数组定义私有private,则必须要有set方法,调用类对象的set方法可以修改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
love网店专员
2012-11-23 · TA获得超过357个赞
知道小有建树答主
回答量:775
采纳率:84%
帮助的人:119万
展开全部
得到数组引用,修改完直接赋值引用就行。自己写一个类就行,把要修改的类作为引用对象就可以啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
peipei_1991
2012-11-23
知道答主
回答量:6
采纳率:0%
帮助的人:3.4万
展开全部
首先看能不能得到数组的引用,如果可以,直接改不就完了么。如果不可以,那就改不了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刹那江上水
2012-11-23 · 超过11用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:29.3万
展开全部
先要导入这个包 然后构造这个类的引用
追问
构造这个类的引用? 我是
新手不懂?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式