视频: 陈纯:区块链技术的特点 2024
Java开发人员在遇到块访问问题时经常会遇到问题,以便找出应用程序为何行为异常。基本的准则是,你在块内创建的任何变量只在该块内定义。例如,当您查看下面的代码时,您会看到一个典型的块访问方案。
//在块内创建一个变量。 for(int i = 0; i <10; i ++)//显示该变量的值。系统。出。 println(“我的价值是:”+ i); //在块外访问不起作用。系统。出。 println(“我的价值是:”+ i);
这个例子显示了for循环(一个块类型)中的值,没有问题。但是,试图访问块外部是不可接受的,因为变量没有定义。编译器会捕获这个错误。
<! - 1 - >另外一个潜在的问题是在应用程序中定义了一个变量,而且在一个程序块中定义了一个变量。因为这种情况可能会产生问题,新版本的Java将不允许这里显示的代码:public static void main(String [] args){//定义一个变量。 int i = 0; //在块内创建一个变量for(int i = 0; i <10; i ++)//显示该变量的值。系统。出。 println(“我的价值是:”+ i); //在块外访问不起作用。系统。出。 println(“我的价值是:”+ i);}
编译器不会总是阻止你在脚下射击自己。在许多情况下,开发人员对变量做了一些处理,并不了解后果。例如,下面的代码在Java中是完全合法的。
<! - 2 - >
public static void main(String [] args){//定义一个变量。 int i = 0; //在块内创建一个变量for(i = 0; i <10; i ++)//显示该变量的值。系统。出。 println(“我的价值是:”+ i); //在块外访问不起作用。系统。出。 println(“i的值是:”+ i);}由于for循环声明中的条件,for循环显示值0到9。 System的最终调用。出。 println()显示值10,而不是0或9,如一些开发人员可能预期的。
重点在于你必须考虑一个块如何与一个变量一起工作,以确定你是否可以访问该变量以及从块中退出时将包含的值。