3.4 变量如何初始化
在C、C++、VB、PowerBuilder等语言中,都会提到变量的初始化,有关对象类型的变量初始化,将在后面的章节详细讲述,这里将把基本类型变量的初始化作为本节的主要内容。
【实例3.11】基本类型变量的初始化工作,就是给变量赋值。为了能够更加清晰地看到变量如何初始化,以及初始化时需要注意的知识点,下面通过实例来演示。
01 ///通过不同类型的数据的输出来查看变量如何初始化
02 ///所有的变量都是全局变量
03 public class var0
04 {
05 byte x;
06 short y;
07 int z;
08 long a;
09 float b;
10 double c;
11 char d;
12 boolean e;
13 public static void main(String[]args)
14 {
15 var0 m=new var0();
16 System.out.println("打印数据x="+m.x);
17 System.out.println("打印数据y="+m.y);
18 System.out.println("打印数据z="+m.z);
19 System.out.println("打印数据a="+m.a);
20 System.out.println("打印数据b="+m.b);
21 System.out.println("打印数据c="+m.c);
22 System.out.println("打印数据d="+m.d);
23 System.out.println("打印数据e="+m.e);
24 }
25 }
【代码说明】第5~12行定义了8个变量,它们分别对应8种数据类型。我们并没有为其设置初始值。第13~23行直接在控制台输出这些变量,读者可以在下面的运行效果中发现有的变量具备默认值,但有的变量什么也不输出。
【运行效果】
打印数据x=0
打印数据y=0
打印数据z=0
打印数据a=0
打印数据b=0.0
打印数据c=0.0
打印数据d=
打印数据e=false
【实例3.12】从以上例子可以看出,作为全局变量,无须初始化,系统自动给变量赋值。除了字符型数据被赋值为空,布尔型数据被赋值为false,其他一律赋值为0。下面再看一段程序代码。
01 ///通过不同类型的数据的输出来查看变量如何初始化
02 ///所有的变量都是局部变量
03 public class var1
04 {
05 void printnumber()
06 {
07 byte x;
08 short y;
09 int z;
10 long a;
11 float b;
12 double c;
13 char d;
14 boolean e;
15 }
16 public static void main(String[]args)
17 {
18 var1 m=new var1();
19 System.out.println("打印数据x="+m.x);
20 System.out.println("打印数据y="+m.y);
21 System.out.println("打印数据z="+m.z);
22 System.out.println("打印数据a="+m.a);
23 System.out.println("打印数据b="+m.b);
24 System.out.println("打印数据c="+m.c);
25 System.out.println("打印数据d="+m.d);
26 System.out.println("打印数据e="+m.e);
27 }
28)
【代码说明】第7~14行定义了8个变量,但其被定义在printnumber()方法中,属于局部变量。第19~26行在没有初始化这些变量的时候,在控制台输出这些变量,其实是不正确的。
【运行效果】这个程序段编译时就会报错,原因是所有局部变量都没有初始化。
从以上两段程序代码得出一个结果:全局变量可以不用进行初始化赋值工作,而局部变量必须要进行初始化赋值工作。