黑马程序员技术交流社区

标题: 关于++的执行理解,看不懂 [打印本页]

作者: 似水浮生    时间: 2016-6-12 23:10
标题: 关于++的执行理解,看不懂
        为什么输出的是 迈克 韩国  红杉 韩国
不应该是 迈克 美国  红杉  韩国的吗
class tses {
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);
}
}


作者: Realize    时间: 2016-6-12 23:50

输出迈克,美国,红杉美国
country是静态变量,在方法区存放,当第一次创建对象p1给country修改值的时候,就把country修改为美国,所有对象共享静态变量,所以红杉也是美国
作者: Realize    时间: 2016-6-12 23:58


。。。。。。手一抖,写错了,应该输出迈克韩国,红杉韩国,图片上的解释很详细,考点在于静态变量被类的所有对象共享




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