程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java成員初始化

java成員初始化

編輯:關於JAVA

Java盡自己的全力保證所有變量都能在使用前得到正確的初始化。若被定義成相對於一個方法的“局部”變量,這一保證就通過編譯期的出錯提示表現出來。因此,如果使用下述代碼:

void f() {
int i;
i++;
}

就會收到一條出錯提示消息,告訴你i可能尚未初始化。當然,編譯器也可為i賦予一個默認值,但它看起來更象一個程序員的失誤,此時默認值反而會“幫倒忙”。若強迫程序員提供一個初始值,就往往能夠幫他/她糾出程序裡的“臭蟲”。
然而,若將基本類型(主類型)設為一個類的數據成員,情況就會變得稍微有些不同。由於任何方法都可以初始化或使用那個數據,所以在正式使用數據前,若還是強迫程序員將其初始化成一個適當的值,就可能不是一種實際的做法。然而,若為其賦予一個垃圾值,同樣是非常不安全的。因此,一個類的所有基本類型數據成員都會保證獲得一個初始值。可用下面這段小程序看到這些值:

 

//: InitialValues.java
// Shows default initial values

class Measurement {
  boolean t;
  char c;
  byte b;
  short s;
  int i;
  long l;
  float f;
  double d;
  void print() {
    System.out.println(
      "Data type      Inital value\n" +
      "boolean        " + t + "\n" +
      "char           " + c + "\n" +
      "byte           " + b + "\n" +
      "short          " + s + "\n" +
      "int            " + i + "\n" +
      "long           " + l + "\n" +
      "float          " + f + "\n" +
      "double         " + d);
  }
}

public class InitialValues {
  public static void main(String[] args) {
    Measurement d = new Measurement();
    d.print();
    /* In this case you could also say:
    new Measurement().print();
    */
  }
} ///:~


輸入結果如下:

 

Data type      Inital value
boolean        false
char
byte           0
short          0
int            0
long           0
float          0.0
double         0.0


其中,Char值為空(NULL),沒有數據打印出來。
稍後大家就會看到:在一個類的內部定義一個對象句柄時,如果不將其初始化成新對象,那個句柄就會獲得一個空值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved