java try块内定义的变量的作用域是什么?为什么在try块之外无法访问它?
在下面的Java程序中,即使成员“ x”在try块之外定义,也可以在try块内部访问它。如果是“
y”,则在try块内定义。但是在try块之外无法访问它。为什么会这样呢?
package com.shan.interfaceabstractdemo;public class ExceptionDemo {
public static void main(String[] args) {
int x = 10;
try {
System.out.println("The value of x is:" + x);
int y = 20;
} catch (Exception e) {
System.out.println(e);
}
System.out.println("The value of y is:" + y);
}
}
输出为:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: y cannot be resolved to a variable
at com.felight.interfaceabstractdemo.ExceptionDemo.main(ExceptionDemo.java:12)
回答:
任何{}
块都定义Java中的作用域。因此,y
在try块内声明的任何变量(例如)都只能在try块内访问。
x
在包含try块的外部块(即整个main
方法的块)中声明,因此可以在try块内部访问它。
以上是 java try块内定义的变量的作用域是什么?为什么在try块之外无法访问它? 的全部内容, 来源链接: utcz.com/qa/423355.html