A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周敏2011nc 黑马帝   /  2011-11-10 10:41  /  1617 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有一个类,它有一个成员变量,以及多种方法,如果在一个测试类中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出来后在内存中的区别?

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

1 个回复

倒序浏览
      new e1,e2,e3,是在堆内存中分别开辟出了一片空间,分别是e1,e2,e3这3个对象,系统为这些对象分配了独有的地址值。这3个对象通过EnjoyClass类建立出来,属性和方法都和EnjoyClass所具有的方法一样,但却都是相对独立的方法和属性,彼此没有任何关系,所以说count变量并不是同一个。各自的值初始时都是和EnjoyClass中一样,但各自都可以通过自己对象来调用或者改变,相互之间没有影响。
    如果改变EnjoyClass类中的变量的值,就需要重新编译,才会对建立对象的初始值造成改变。
    通俗点说,EnjoyClass就像一张制造汽车的图纸一样,建立对象的过程就是按着图纸造汽车的过程,每一辆汽车都是独立的相互没有影响,各自进行改造不会对图纸或者其他汽车造成任何影响。
   

评分

参与人数 1技术分 +2 收起 理由
宁超 + 2 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马