上QQ阅读APP看书,第一时间看更新
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行在没有初始化这些变量的时候,在控制台输出这些变量,其实是不正确的。
【运行效果】这个程序段编译时就会报错,原因是所有局部变量都没有初始化。
从以上两段程序代码得出一个结果:全局变量可以不用进行初始化赋值工作,而局部变量必须要进行初始化赋值工作。