黑马程序员技术交流社区
标题:
还有好多不会,代码写了隔天就忘
[打印本页]
作者:
13885045482
时间:
2016-9-7 19:34
标题:
还有好多不会,代码写了隔天就忘
还有两三天考试了,不知道怎么办才好,求分析这个题目: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、麦克…韩国 红杉…韩国
作者:
choseisstart
时间:
2016-9-7 19:39
执行以下代码,你就找到答案了!
作者:
yigezhifu
时间:
2016-9-7 22:15
country是静态变量,也是全局变量,在Class类加载的时候就赋初值“中国”,p1.country全局变量赋值成“美国”,当你p2.country赋值时,全局变量成”韩国“,前面的p1.country也变为”韩国“了,所以结果为:”麦克“...“韩国”,”红杉“,”韩国“,选D
作者:
&天马星空ぁ
时间:
2016-9-7 22:49
yigezhifu 发表于 2016-9-7 22:15
country是静态变量,也是全局变量,在Class类加载的时候就赋初值“中国”,p1.country全局变量赋值成“美国 ...
楼上说的对,country是静态变量,不管是哪个对象赋予其值时,都会覆盖原有的初始值,覆盖的值成为静态变量的值,所以输出值时总是输出 输出前最后赋予的值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2