黑马程序员技术交流社区

标题: 大神来看看 [打印本页]

作者: luojiawen    时间: 2016-7-5 19:39
标题: 大神来看看
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);
}
}

求输出结果是什么
作者: luojiawen    时间: 2016-7-5 19:42
有没有谁说一下??
作者: hlhdidi    时间: 2016-7-5 19:44
麦克..韩国
红杉..韩国
作者: luojiawen    时间: 2016-7-5 19:48
hlhdidi 发表于 2016-7-5 19:44
麦克..韩国
红杉..韩国

确定?为什么呢
作者: hlhdidi    时间: 2016-7-5 19:51
luojiawen 发表于 2016-7-5 19:48
确定?为什么呢

因为country是静态变量,每个对象只有一个.因此在一个对象进行修改后,会影响到当前类的所有对象.但是name是成员变量,每个对象有自己的独有的成员变量
作者: luojiawen    时间: 2016-7-5 20:27
hlhdidi 发表于 2016-7-5 19:51
因为country是静态变量,每个对象只有一个.因此在一个对象进行修改后,会影响到当前类的所有对象.但是name ...

static String country  =  中国
静态country的值是中国哦
作者: hubei3805979    时间: 2016-7-5 20:54
luojiawen 发表于 2016-7-5 20:27
static String country  =  中国
静态country的值是中国哦

什么都不说  程序执行了就直达
作者: luojiawen    时间: 2016-7-5 21:07
hubei3805979 发表于 2016-7-5 20:54
什么都不说  程序执行了就直达

哈哈,简单粗暴
作者: hlhdidi    时间: 2016-7-5 22:05
luojiawen 发表于 2016-7-5 20:27
static String country  =  中国
静态country的值是中国哦

你赋值了啊...
作者: warku    时间: 2016-7-5 22:18
后面又赋值了,最后输出的应该是speak方法前的最后一次赋值的结果,~~能这么理解吧
作者: xfbyxq    时间: 2016-7-5 22:59
编译不过去的    static String country  =  中国;       有问题,应该写成static String country  =  “中国”;  
作者: 新人—小明同学    时间: 2016-7-6 21:29
hlhdidi 发表于 2016-7-5 19:51
因为country是静态变量,每个对象只有一个.因此在一个对象进行修改后,会影响到当前类的所有对象.但是name ...

还是不懂...
作者: luojiawen    时间: 2016-7-6 22:40
xfbyxq 发表于 2016-7-5 22:59
编译不过去的    static String country  =  中国;       有问题,应该写成static String country  =  “中 ...

这点细节你都看到哈哈.好细心,不过忽略这个的话,应该是什么结果
作者: 坏坏坏男孩    时间: 2016-7-6 23:30
啥?啥啥?
作者: 微--尘    时间: 2016-7-6 23:41
麦克...韩国
红杉...韩国

作者: syso信任    时间: 2016-7-7 09:09
静态变量看你调用时上一次的赋值,,,,,,,p1,p2调用时上一次都是韩国,所以国籍都是韩国.....
Person p1 = new Person();   
p1.name = “麦克”;        
p1.country = "美国";   
p1.speak();----------------------------->>>>>>这样就是美国     
Person p2 = new Person();
p2.name = "红杉";        
p2.country = "韩国";   

p2.speak();--------------------------->>>>>>>韩国




这种
Person p1 = new Person();   
p1.name = “麦克”;   
p1.speak();---------------------------->>>>>中国     
p1.country = "美国";        
Person p2 = new Person();
p2.name = "红杉";        
p2.country = "韩国";   

p2.speak();------------------------->>>>.韩国
作者: xfbyxq    时间: 2016-7-7 22:31
luojiawen 发表于 2016-7-6 22:40
这点细节你都看到哈哈.好细心,不过忽略这个的话,应该是什么结果

麦克韩国   红杉韩国
作者: 影子冷锋55555    时间: 2016-7-7 22:33
麦克..韩国




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