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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 丁一 于 2013-3-21 18:03 编辑

买了本编程思想看,有个题与大家分享,你们知道这个输出结果吗?
  1. class Tank{
  2.         int level;
  3. }

  4. public class Cs {
  5.         public static void main(String [] args)
  6.         {
  7.                 Tank t1=new Tank();
  8.                 Tank t2=new Tank();
  9.                 t1.level = 9;
  10.                 t2.level =47;
  11.                 System.out.println("t1.level="+t1.level);
  12.                 System.out.println("t2.level="+t2.level);
  13.                 t1=t2;
  14.                 System.out.println("t1.level="+t1.level);
  15.                 System.out.println("t2.level="+t2.level);
  16.                 t1.level =27;
  17.                 System.out.println("t1.level="+t1.level);
  18.                 System.out.println("t2.level="+t2.level);
  19.         }

  20. }
复制代码

3 个回复

倒序浏览
答案:t1.level=9
t2.level=47
t1.level=47
t2.level=47
t1.level=27
t2.level=27
  1. class Tank{
  2.     int level;
  3. }

  4. public class Cs {
  5.     public static void main(String [] args)
  6.     {
  7.             Tank t1=new Tank();
  8.             Tank t2=new Tank();
  9.             t1.level = 9;
  10.             t2.level =47;
  11.             System.out.println("t1.level="+t1.level);
  12.             System.out.println("t2.level="+t2.level);
  13.             t1=t2;  //t1,t2指向同一个对象
  14.             System.out.println("t1.level="+t1.level);
  15.             System.out.println("t2.level="+t2.level);
  16.             t1.level =27; //因为之前t1,t2指向了同一个对象,所以输出值都是27
  17.             System.out.println("t1.level="+t1.level);
  18.             System.out.println("t2.level="+t2.level);
  19.     }

  20. }
复制代码
回复 使用道具 举报
戴乾刚 发表于 2013-3-21 17:39
答案:t1.level=9
t2.level=47
t1.level=47

{:soso_e179:}
回复 使用道具 举报
  1. class Tank{
  2.         int level;
  3. }

  4. public class Cs {
  5.         public static void main(String [] args)
  6.         {
  7.                 Tank t1=new Tank();//创建对象
  8.                 Tank t2=new Tank();//在内存中创建新对象
  9.                 t1.level = 9;//对象调用成员变量
  10.                 t2.level =47;
  11.                 System.out.println("t1.level="+t1.level);//9
  12.                 System.out.println("t2.level="+t2.level);//47
  13.                 t1=t2;    //赋值动作,t2的地址值赋给了t1,即t1指向了t2的对象,所以值是t2中的47
  14.                 System.out.println("t1.level="+t1.level);//47
  15.                 System.out.println("t2.level="+t2.level);//47
  16.                 t1.level =27;  //由于t1,t2指向的都是同一个对象,所以下面都是27
  17.                 System.out.println("t1.level="+t1.level);27
  18.                 System.out.println("t2.level="+t2.level);27
  19.         }

  20. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马