5个回答
展开全部
楼主,你这个问题需要理解两个概念:
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、类的实例
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,如果这个数组定义的是常量的话,那么没有办法更改
2,如果该数组定义的修饰为public(这种情况很少),可以直接调用类对象
3,如果该数组定义私有private,则必须要有set方法,调用类对象的set方法可以修改
2,如果该数组定义的修饰为public(这种情况很少),可以直接调用类对象
3,如果该数组定义私有private,则必须要有set方法,调用类对象的set方法可以修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
得到数组引用,修改完直接赋值引用就行。自己写一个类就行,把要修改的类作为引用对象就可以啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先看能不能得到数组的引用,如果可以,直接改不就完了么。如果不可以,那就改不了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先要导入这个包 然后构造这个类的引用
追问
构造这个类的引用? 我是
新手不懂?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询