偶然发现了一个以前没注意的问题,大家看看
来源: 互联网 发布时间:2015-07-05
本文导语: public class Untitled1 { String a="ok!"; public Untitled1() { } public static void main(String[] args) { System.out.println(a); } } 文件名为:Untitled1.java 此程序会发生错误 将String a="ok!";移入main方法内,则问题解决 ——请问是...
public class Untitled1 {
String a="ok!";
public Untitled1() {
}
public static void main(String[] args) {
System.out.println(a);
}
}
文件名为:Untitled1.java
此程序会发生错误
将String a="ok!";移入main方法内,则问题解决
——请问是不是在main()方法内无法访问类的成员变量,即无法访问a?为什么?
|
public class Untitled1 {
String a="ok!";
public Untitled1() {
}
public static void main(String[] args) {
Untitled1 U=new Untitled1();
System.out.println(U.a);
}
}
String a="ok!";
public Untitled1() {
}
public static void main(String[] args) {
Untitled1 U=new Untitled1();
System.out.println(U.a);
}
}
|
我还以为是什么大发现那……
main方法是static的,java规定,在静态方法里面直接使用的外部变量必须也是静态的才行。
你将String a = "ok";改成
static String a = "ok";
就行!!
main方法是static的,java规定,在静态方法里面直接使用的外部变量必须也是静态的才行。
你将String a = "ok";改成
static String a = "ok";
就行!!
|
因为public static void main(String[] args) ,这个方法是静态方法,非静态方法和变量不得在里面使用。除非是在静态方法里面直接定义的!