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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

        为什么输出的是 迈克 韩国  红杉 韩国
不应该是 迈克 美国  红杉  韩国的吗
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);
}
}

2 个回复

倒序浏览

回帖奖励 +3


输出迈克,美国,红杉美国
country是静态变量,在方法区存放,当第一次创建对象p1给country修改值的时候,就把country修改为美国,所有对象共享静态变量,所以红杉也是美国
回复 使用道具 举报


。。。。。。手一抖,写错了,应该输出迈克韩国,红杉韩国,图片上的解释很详细,考点在于静态变量被类的所有对象共享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马