黑马程序员技术交流社区
标题:
你们知道这个输出结果吗?《Java编程思想》
[打印本页]
作者:
丁一
时间:
2013-3-21 17:20
标题:
你们知道这个输出结果吗?《Java编程思想》
本帖最后由 丁一 于 2013-3-21 18:03 编辑
买了本编程思想看,有个题与大家分享,你们知道这个输出结果吗?
class Tank{
int level;
}
public class Cs {
public static void main(String [] args)
{
Tank t1=new Tank();
Tank t2=new Tank();
t1.level = 9;
t2.level =47;
System.out.println("t1.level="+t1.level);
System.out.println("t2.level="+t2.level);
t1=t2;
System.out.println("t1.level="+t1.level);
System.out.println("t2.level="+t2.level);
t1.level =27;
System.out.println("t1.level="+t1.level);
System.out.println("t2.level="+t2.level);
}
}
复制代码
作者:
戴乾刚
时间:
2013-3-21 17:39
答案:t1.level=9
t2.level=47
t1.level=47
t2.level=47
t1.level=27
t2.level=27
class Tank{
int level;
}
public class Cs {
public static void main(String [] args)
{
Tank t1=new Tank();
Tank t2=new Tank();
t1.level = 9;
t2.level =47;
System.out.println("t1.level="+t1.level);
System.out.println("t2.level="+t2.level);
t1=t2; //t1,t2指向同一个对象
System.out.println("t1.level="+t1.level);
System.out.println("t2.level="+t2.level);
t1.level =27; //因为之前t1,t2指向了同一个对象,所以输出值都是27
System.out.println("t1.level="+t1.level);
System.out.println("t2.level="+t2.level);
}
}
复制代码
作者:
丁一
时间:
2013-3-21 18:03
戴乾刚 发表于 2013-3-21 17:39
答案:t1.level=9
t2.level=47
t1.level=47
{:soso_e179:}
作者:
王龙涛
时间:
2013-3-21 18:08
class Tank{
int level;
}
public class Cs {
public static void main(String [] args)
{
Tank t1=new Tank();//创建对象
Tank t2=new Tank();//在内存中创建新对象
t1.level = 9;//对象调用成员变量
t2.level =47;
System.out.println("t1.level="+t1.level);//9
System.out.println("t2.level="+t2.level);//47
t1=t2; //赋值动作,t2的地址值赋给了t1,即t1指向了t2的对象,所以值是t2中的47
System.out.println("t1.level="+t1.level);//47
System.out.println("t2.level="+t2.level);//47
t1.level =27; //由于t1,t2指向的都是同一个对象,所以下面都是27
System.out.println("t1.level="+t1.level);27
System.out.println("t2.level="+t2.level);27
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2