黑马程序员技术交流社区

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

作者: hjlucky111    时间: 2016-6-7 23:27
标题: 求解答

class 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);
}
}
作者: 我是你岁哥❤环    时间: 2016-6-7 23:51
运行结果:
麦克...韩国
红杉...韩国
解释:
static String country  =  "中国";     定义的是一个静态成员变量country,这个country变量存储在内存的方法区中,被所有Person类的对象共享,当p1.country时,country的值被美国赋值,当p2.country时,country的值被改变为韩国,所以当p1调用speak();这个方法的时候,此时country的值时韩国






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