Java-专用作用域
在JS中,您可以执行以下操作,例如:Java-专用作用域,java,scope,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.o
(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);
}
...
谢谢。如果您希望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内部定义的,因此其作用域仅在do循环之前,因此无法在外部访问。JavaScript是一种解释语言,因此在运行时会出现此类错误。不同的是,Java是一种编译语言,因此编译器在编译时捕获这种错误
在运行时的Java程序中不可能出现这种错误。他要求的是方法范围变量,而不是类字段。为什么要向下投票?请确切地解释为什么没有足够的研究工作。真的,如果你这样认为的话,你会早些加上那条评论。@你到底在问什么?你的问题有一个标题,上面写着私有作用域,而在你要问的关于变量作用域的框中?@Murplyx你已经有了一个变量作用域,应该足以让变量作用域出错了,但是有没有比丑陋的while循环甚至不是循环更令人窒息的方法呢?@Murplyx你想要一个平滑的方法来得到错误?!我可以问一下原因吗?这不是ror的问题,而是要在java中获得与JS相同的代码。正如我所说的,这是不可能的。两种语言遵循完全不同的概念。