public class Cygnus{
static int value = 9; //注意value是静态的成员变量
public static void main(String[] args) throws Exception{
new Cygnus().printValue();
} private void printValue(){
int value = 69;
System.out.println(this.value);
}
}这个程序会有下面哪种结果?
A. 编译错误
B. 打印9
C. 打印69
D. 运行时抛出异常
不明白的先了解下this是啥意思
如果System.out.println(value);
这时候输出的是局部变量value的值结果是9
所以打印this.vlaue 会是9,
int value = 69;
System.out.println(this.value);
}
}
这里面得int vaule = 69算一个局部变量吧?
结果是9是对的。。static变量是在这个class第一次加载的时候就初始化,且在一个虚拟机中只初始化这一次。在java语言中,不建议使用this.value这种方式来引用,但也不是绝对禁止的。。所以是9
private String user;
private String password; public String getUser() {
return user;
} public void setUser(String user) {
this.user = user;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}
打印的是当前对象的属性,不用多说,当前对象引用的时候,已经初始化为9.所以打印出9了
另外,大家可以测试一下,去掉static结果是一样的,这也就说明了楼上的正确、
static在本题中没什么意思的
就算是去掉static 一样是打印9;
new 类();这个时候这个this才会起到作用。
晕 static的就不是对象的属性了?什么逻辑啊,要你这么理解的话是不是Arrays的几个静态方法都不是Arrays类的方法了?