黑马程序员技术交流社区

标题: 自测试题求解答 [打印本页]

作者: kcufow    时间: 2016-4-11 16:45
标题: 自测试题求解答
请解答,最后能分析一下过程。谢谢!

无标题.png (150.73 KB, 下载次数: 2)

无标题.png

作者: zhongyuxin1011    时间: 2016-4-11 18:06
麦克...韩国
红彬...韩国
作者: 洋葱头头    时间: 2016-4-11 18:11
zhongyuxin1011 发表于 2016-4-11 18:06
麦克...韩国
红彬...韩国

给出具体分析过程 版主会加分的哦
作者: liunianruoshui    时间: 2016-4-11 19:06
麦克...韩国
红杉...韩国
因为静态变量存储在方法区中而非堆中创建的两个对象中,静态变量初始值为“中国”,经过两次赋值先变为“美国”,后变为“韩国’,而最终值为”韩国“;两次调用,变量name分别来自对中的两个对象中,而变量country的值来自相同的方法区中,都是最终值“韩国”。
作者: ameanboy    时间: 2016-4-11 20:51
country与类相关,name与对象相关
作者: kcufow    时间: 2016-4-12 10:59
ameanboy 发表于 2016-4-11 20:51
country与类相关,name与对象相关

具体能分析一下吗?
作者: ameanboy    时间: 2016-4-12 11:26
kcufow 发表于 2016-4-12 10:59
具体能分析一下吗?

country与类相关,一个类(不管有多少对象)都指向同一个country; name与对象相关,每个对象有自己的name值
作者: woaikk991100    时间: 2016-4-12 12:27
麦克...韩国
红杉...韩国

因为country是在方法区中的,是静态的,先于对象存在.
而给country赋值,无论对象是啥,country是公用的.
调用speak()方法,打印的country 是同一个,无论对象是谁.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2