OOP:变量范围的边界
OOP: Bounds of a variable's scope
考虑以下 java 代码:
public class Main() { //Line 1
public static void main(String[] args) { //Line 2
System.out.println("Hello World."); //Line 3
//Line 4
int c = 10; //Line 5
System.out.println(c); //Line 6
} //Line 7
} //Loin 8
变量c的作用域在哪几行?第 2-7 行或第 5-6 行?
这提出了变量作用域是否可以先于变量声明本身的问题。潜在地,可以将范围定义为可以使用变量的代码区域(第 5-6 行)。
但这也引发了一个问题,即作用域是为一段代码中的所有变量定义的(基本上是用括号定义的作用域)还是为每个变量独立定义的?
范围的正确解释是什么,这种解释的理由是什么?
变量作用域定义了可以访问变量的代码部分。 Java 有几个不同的范围。你问的是local variable block scope
。 Java 有其他范围,如 class scope
.
Every declaration that introduces a name has a scope (§6.3), which is the part of the program text within which the declared entity can be referred to by a simple name.
所以这不仅仅是关于变量。 类 也受此约束(例如 inner classes
)。
至于你的具体问题。
scope is defined generically for all the variable's in a section of code (basically scope being defined by brackets)
没有,但是
- 一些括号中定义的变量在外面是不可见的
- 括号内不能定义两个同名变量
defined for each variable independently
是每个自己的变量在定义之前对代码不可见,所以每个范围都不同
On what lines does the scope of variable c exist? Lines 2-7 or Lines 5-6?
5-6。如果您在第 3 行中编写类似 System.out.println(c)
的内容,编译器将向您显示错误。
考虑以下 java 代码:
public class Main() { //Line 1
public static void main(String[] args) { //Line 2
System.out.println("Hello World."); //Line 3
//Line 4
int c = 10; //Line 5
System.out.println(c); //Line 6
} //Line 7
} //Loin 8
变量c的作用域在哪几行?第 2-7 行或第 5-6 行?
这提出了变量作用域是否可以先于变量声明本身的问题。潜在地,可以将范围定义为可以使用变量的代码区域(第 5-6 行)。
但这也引发了一个问题,即作用域是为一段代码中的所有变量定义的(基本上是用括号定义的作用域)还是为每个变量独立定义的?
范围的正确解释是什么,这种解释的理由是什么?
变量作用域定义了可以访问变量的代码部分。 Java 有几个不同的范围。你问的是local variable block scope
。 Java 有其他范围,如 class scope
.
Every declaration that introduces a name has a scope (§6.3), which is the part of the program text within which the declared entity can be referred to by a simple name.
所以这不仅仅是关于变量。 类 也受此约束(例如 inner classes
)。
至于你的具体问题。
scope is defined generically for all the variable's in a section of code (basically scope being defined by brackets)
没有,但是
- 一些括号中定义的变量在外面是不可见的
- 括号内不能定义两个同名变量
defined for each variable independently
是每个自己的变量在定义之前对代码不可见,所以每个范围都不同
On what lines does the scope of variable c exist? Lines 2-7 or Lines 5-6?
5-6。如果您在第 3 行中编写类似 System.out.println(c)
的内容,编译器将向您显示错误。