Java - 私有范围

时间:2015-01-31 07:58:29

标签: java scope

在JS中,您可以这样做:

(function() {
    var x = 7;
})();

console.log(x);

这将记录未定义,因为x仅在其自身的小范围内定义。

在java中做同样事情的原始/最佳/正常方式是什么?

不是这个,因为我觉得它看起来很丑陋:

...
public static void main(String[] args) {
    do {
       int x = 7;
    } while (false) {}

    System.out.println(x);
}
...

感谢。

2 个答案:

答案 0 :(得分:2)

JavaScript是一种解释型语言,因此您将在运行时遇到这些错误。不同,Java是一种编译语言,因此编译器在编译时捕获了这种错误。

在运行时Java程序中不可能出现此错误。

答案 1 :(得分:-1)

如果你想要x是私有的,那么你可以将它声明为私有 //如果你不希望x是私有的话,你可以给出任何访问说明符

private int x;

and can initialize it later 
as

public static void main(String[] args) {
    do {
       x = 7;
    } while (false) {}

    System.out.println(x);
}

您的代码:

 public static void main(String[] args) {
        do {
          int x = 7;
        } while (false) {}

        System.out.println(x);
    }

这将抛出未定义的异常,因为该变量是在do内部定义的,因此它的作用域只有在执行循环时才能进行,因此无法在外部访问。