黑马程序员技术交流社区
标题:
数据的共享问题
[打印本页]
作者:
周敏2011nc
时间:
2011-11-10 10:41
标题:
数据的共享问题
有一个类,它有一个成员变量,以及多种方法,如果在一个测试类中new 出多个该类的对象,这些new出来的对象之间的关系?
代码如下:
public class EnjoyClass{
private int count = 1;
public Integer changeCount(int count){
this.count = count;
}
public void rueslut(){
System.out.println(count);
}
........
}
public Class TestEnjoyClass(){
public static void main(String[] args){
EnjoyClass ec1 = new EnjoyClass();
EnjoyClass ec2 = new EnjoyClass();
EnjoyClass e23 = new EnjoyClass();
ec1.rueslut();
ec2.changeCount(10);
ec2.rueslut();
e2.changeCount(20);
ec1.rueslut();
}
}
EnjoyClass类的中成员变量值的改变对ec1,ec2和ec3造成的影响?
ec1,ec2,ec3是否拥有同一个count变量?
e1,e2,e3 new出来后在内存中的区别?
作者:
byronsong
时间:
2011-11-10 15:42
new e1,e2,e3,是在堆内存中分别开辟出了一片空间,分别是e1,e2,e3这3个对象,系统为这些对象分配了独有的地址值。这3个对象通过EnjoyClass类建立出来,属性和方法都和EnjoyClass所具有的方法一样,但却都是相对独立的方法和属性,彼此没有任何关系,所以说count变量并不是同一个。各自的值初始时都是和EnjoyClass中一样,但各自都可以通过自己对象来调用或者改变,相互之间没有影响。
如果改变EnjoyClass类中的变量的值,就需要重新编译,才会对建立对象的初始值造成改变。
通俗点说,EnjoyClass就像一张制造汽车的图纸一样,建立对象的过程就是按着图纸造汽车的过程,每一辆汽车都是独立的相互没有影响,各自进行改造不会对图纸或者其他汽车造成任何影响。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2