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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luojiawen 中级黑马   /  2016-7-5 19:39  /  933 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
}
}

求输出结果是什么

17 个回复

正序浏览
麦克..韩国
回复 使用道具 举报
luojiawen 发表于 2016-7-6 22:40
这点细节你都看到哈哈.好细心,不过忽略这个的话,应该是什么结果

麦克韩国   红杉韩国
回复 使用道具 举报
静态变量看你调用时上一次的赋值,,,,,,,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-5 22:59
编译不过去的    static String country  =  中国;       有问题,应该写成static String country  =  “中 ...

这点细节你都看到哈哈.好细心,不过忽略这个的话,应该是什么结果
回复 使用道具 举报
hlhdidi 发表于 2016-7-5 19:51
因为country是静态变量,每个对象只有一个.因此在一个对象进行修改后,会影响到当前类的所有对象.但是name ...

还是不懂...
回复 使用道具 举报
编译不过去的    static String country  =  中国;       有问题,应该写成static String country  =  “中国”;  
回复 使用道具 举报
后面又赋值了,最后输出的应该是speak方法前的最后一次赋值的结果,~~能这么理解吧
回复 使用道具 举报
luojiawen 发表于 2016-7-5 20:27
static String country  =  中国
静态country的值是中国哦

你赋值了啊...
回复 使用道具 举报
hubei3805979 发表于 2016-7-5 20:54
什么都不说  程序执行了就直达

哈哈,简单粗暴
回复 使用道具 举报
luojiawen 发表于 2016-7-5 20:27
static String country  =  中国
静态country的值是中国哦

什么都不说  程序执行了就直达
回复 使用道具 举报
hlhdidi 发表于 2016-7-5 19:51
因为country是静态变量,每个对象只有一个.因此在一个对象进行修改后,会影响到当前类的所有对象.但是name ...

static String country  =  中国
静态country的值是中国哦
回复 使用道具 举报

因为country是静态变量,每个对象只有一个.因此在一个对象进行修改后,会影响到当前类的所有对象.但是name是成员变量,每个对象有自己的独有的成员变量
回复 使用道具 举报 1 0
hlhdidi 发表于 2016-7-5 19:44
麦克..韩国
红杉..韩国

确定?为什么呢
回复 使用道具 举报
麦克..韩国
红杉..韩国
回复 使用道具 举报
有没有谁说一下??
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马