作用域是您可以引用变量的地方。块定义了
block scope一个变量,该变量在一个块内部定义,将仅在该块内部定义,并且在块结束后不能引用它。
因此,在这段代码中,如果您尝试执行以下操作:
x = 10;if(x ==10) { // start new scopeint y = 20; // known only to this blockx = y * 2;}y = 5; // error y is out of scope, not it is not defined因为这里拥有的是局部作用域
,所以java中的其他种类的作用域都是
class scope(例如),所以类的成员具有类作用域,因此可以在类内部的任何地方访问它。
范围的基本规则是:
- 参数声明的范围是该声明在其中出现的方法的主体。
- 局部变量声明的范围是从声明出现的位置到该块的末尾。
- 在for语句的标头的初始化部分中出现的局部变量声明的范围是for语句的主体以及标头中的其他表达式。
- 方法或字段的范围是类的整个主体。这使类的非静态方法可以使用该类的字段和其他方法。



