OOP:变量的界';s范围
考虑以下java代码:OOP:变量的界';s范围,oop,variables,scope,computer-science,principal,Oop,Variables,Scope,Computer Science,Principal,考虑以下java代码: public class Main() { //Line 1 public static void main(String[] args) { //Line 2 System.out.println("Hello World."); //Line 3 //Line 4 in
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有几个不同的作用域。您要询问的是
局部变量块范围
。Java还有其他作用域,如类作用域
还有
每个引入名称的声明都有一个范围(§6.3),该范围是程序文本的一部分,在该程序文本中,声明的实体可以通过简单的名称引用
所以这不仅仅是关于变量。类也受此约束(例如,内部类
)
至于你的具体问题
作用域是为一段代码中的所有变量定义的(基本上用括号定义作用域)
不,但是
- 某些括号中定义的变量在外部不可见
- 不能在括号内定义两个同名变量
是5-6。如果在第3行中编写类似于
System.out.println(c)
的代码,编译器将向您显示一个错误。5到6。范围以变量声明开始。如果在函数/方法中声明它,则它仅在此函数/方法中可见。如果在类中声明它,则每个类成员(该类中的函数/方法)都可以使用它。对于类范围的变量,也可以通过谷歌搜索public
、protected
和private
。