是否可以在类之外初始化变量?
问题描述:
编辑:是否有可能或有用的初始化类外的变量? 例如,如果我有这样的代码:是否可以在类之外初始化变量?
static int example = 1;
public class test {
public static void main(String []args) {
System.out.println("I have " + example + " question!");
}
还是更多有用做到这一点就像这样:
public class test {
static int example = 1;
public static void main(String []args) {
System.out.println("I have " + example + " question!");
}
如果这两种方式都是可能的,有什么区别? 感谢您提前
答
在Java中,不允许在类声明之外声明变量,并且会导致编译错误。
您必须使用您发布的第二个代码段。下面是你的代码的编辑的版本,使其工作:
public class test {
private static int example = 1;
public static void main(String []args) {
System.out.println("I have " + example + " question!");
}
}
答
没有没有你的代码片断都可以工作。第一个将不起作用,因为Java没有全局变量,第二个将不起作用,因为main是静态方法并且静态方法不能访问非static的类变量
答
因为Java不支持全局变量。 Java设计时考虑了OOPS原则,因此,Java中的每个变量都是本地的或者是类的成员。
所以你不能在类之外声明变量。
你的第一个例子不会编译。 –
你试过了吗? – shmosel
这两个示例都不会编译 – baao