33.Java局部变量
在编写程序时,通常需要使用一个“别名”来表示某种类型的可变值,这就是“变量”。
我们在前面的程序中已经在很多的地方用到了“变量”。比如,在前面的Student类中,就定义了变量“name”、“sex”等。
另外,在定义变量的时候,有几个地方需要注意:变量名称区分大小写;变量名称不能重复等。
根据变量的作用范围,Java将变量分为了局部变量和全局变量。这里先说说局部变量。
变量可以被定义为只在某个程序块或只在方法体内部有效,这种类型的变量通常被称为“局部变量”。
局部变量的作用范围有限,只在相应的方法体内或程序块内有效,超出程序块,这些变量都无效。
所谓程序块,就是用“{”和“}”包含起来的代码块。它是一个单独的模块,和方法有点类似,但不像方法一样可以用方法名来调用。
在这个程序块中的变量也是局部变量,即使这个程序体处于类的定义中。
先看下面一段代码示例:
public class Block {
static int j = 4;
{
int i = 4;
}
public void printit() {
System.out.println(i);// 出错,因为i是局部变量,不能用于变量所在的“局部”的范围之外
}
}
其中的变量i就是局部变量,它只在自己所处的代码块起作用。
声明变量的时候,首先需要指明该变量的数据类型。变量类型后面,跟着此变量的名称,它的名称必须是一个符合Java命名规范的标识符。然后,可以给这个变量赋一个值,当然,这个值的数据类型必须和变量的数据类型一致。
可以同时声明几个同一数据类型的变量,变量之间用“,”隔开:
int i,j,k;
局部变量的另外一种情况是,此变量定义在方法中,此时,此变量的作用范围只局限于此方法体内。
看下面这个示例:
public class Test
{
static int j = 4;
{
int i = 4;
}
public void a() {
int k = 100;
}
public void b() {
System.out.println(k);// 出错,k的作用范围只局限于方法a中。
}
}
因为变量k是定义在方法a中的,所以它的作用范围只局限在方法a中。在方法b中试图使用这个变量,在编译的时候将会报错。
局部变量在方法或代码块执行时创建,方法或代码块执行结束时销毁。
局部变量在使用前必须初始化。这点必须注意。初始化即给这个变量赋值。基本上现在完善的IDE,在你编写好代码后,会自动检查未初始化的局部变量,并以警告的方式来提醒你,给这个局部变量赋值!
推荐阅读
-
python函数局部变量用法实例分析
-
C#:(变量)字段和局部变量的作用域冲突
-
从局部变量和全局变量开始全面解析Python中变量的作用域
-
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
-
PHP变量作用域(全局变量&局部变量)&global&static关键字用法实例分析
-
C# 7.0之ref locals and returns(局部变量和引用返回)
-
Python3.5局部变量与全局变量作用域实例分析
-
awk实现Left、join查询、去除重复值以及局部变量讲解例子
-
为什么要将局部变量的作用域最小化?
-
关于内部类引用局部变量的一些注意事项