首頁

2013年6月2日 星期日

**{ Android }**JAVA*当中变量什么时候需要初始化?~!

**{ Android }**JAVA*
当中变量什么时候需要
初始化?~!

*^1. 对于类的成员变量,
不管程序有没有显式的
进行初始化,Java虚拟机
都会先自动给它初始化为
默认值。 
 默认值如下:
             Boolean      false
             Char           '\u0000'(null)
             byte            (byte)0
             short           (short)0
             int               0
             long            0L
             float            0.0f
             double        0.0d
2. 局部变量声明之后,Java虚拟机就不
会自动给它初始化为默认值,因此局部变
量的使用必须先经过显式的初始化。
      但是需要声明的是:对于只负责接收一
个表达式的值的局部变量可以不初始化,
参与运算和直接输出等其它情况的局部变量
需要初始化。
通过下面这个测试可以看到JVM对哪些数据
初始化,哪写数据不初始化:
public class TestStatic {
 static int x; //类的成员变量,JVM负责
初始化 * static int method()
 {
    int y=0;  //此处必须自己初始化,
它不属于类成员变量,是个method的局
部变量,JVM不负责初始化
    return y;
 }
 public static void main
(String[] args) {
     TestStatic as=new TestStatic();
     int z=0;  //此处必须自己初始化,它不
属于类成员变量,是个主函数里的局部
变量,JVM不负责初始化
     int aa=3; //此处aa参与了运算,
所以必须初始化
     aa=aa+2;
     int a=1,b=2,max; //max只是负责接收
表达式的值,不需要初始化
     max=a>b?2:1;
     System.out.println(max); //1     System.out.println(aa); //5   
 System.out.println("z="+z); //z=0     System.out.println("x="+as.x);
 //x=0
    System.out.println("y=
"+as.method()); //y=0 }
}
总结为一句话便是:
 类里定义的数据成员称为属性,属性可不赋
初值,若不赋初值则JAVA会按上表为其
添加默认值;方法里定义的数据成员称为
变量,变量在参与运算之前必须赋初值~~!
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

沒有留言:

張貼留言


if you like make fds, wellcome you here~~anytime***

my free place for everyones who want the good software,

come & download them~ wellcome!!