在编写程序时,通常需要使用一个“别名”来表示某种类型的可变值,这就是“变量”。 

我们在前面的程序中已经在很多的地方用到了“变量”。比如,在前面的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,在你编写好代码后,会自动检查未初始化的局部变量,并以警告的方式来提醒你,给这个局部变量赋值!