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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

还有两三天考试了,不知道怎么办才好,求分析这个题目:Demo {
public static void main(String[] args) {
Person p1 = new Person();   
p1.name = “麦克”;      
p1.country = "美国";      
Person p2 = new Person();
p2.name = "红杉";      
p2.country = "韩国";   
p1.speak();
p2.speak();
}
}
class Person {
String name;                  
static String country  =  中国;                  
public void speak() {           
System.out.println(name + "..." + country);
}
}
A、红杉…中国    麦克…中国
B、红杉…null        麦克…null
C、麦克…美国    红杉…中国
D、麦克…韩国    红杉…韩国


点评

执行以下代码,你就找到答案了!  发表于 2016-9-7 19:40

4 个回复

倒序浏览
执行以下代码,你就找到答案了!
回复 使用道具 举报
country是静态变量,也是全局变量,在Class类加载的时候就赋初值“中国”,p1.country全局变量赋值成“美国”,当你p2.country赋值时,全局变量成”韩国“,前面的p1.country也变为”韩国“了,所以结果为:”麦克“...“韩国”,”红杉“,”韩国“,选D
回复 使用道具 举报
yigezhifu 发表于 2016-9-7 22:15
country是静态变量,也是全局变量,在Class类加载的时候就赋初值“中国”,p1.country全局变量赋值成“美国 ...

楼上说的对,country是静态变量,不管是哪个对象赋予其值时,都会覆盖原有的初始值,覆盖的值成为静态变量的值,所以输出值时总是输出  输出前最后赋予的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马