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

java規定初始化

編輯:關於JAVA

如果想自己為變量賦予一個初始值,又會發生什麼情況呢?為達到這個目的,一個最直接的做法是在類內部定義變量的同時也為其賦值(注意在C++裡不能這樣做,盡管C++的新手們總“想”這樣做)。在下面,Measurement類內部的字段定義已發生了變化,提供了初始值:
 

class Measurement {
  boolean b = true;
  char c = 'x';
  byte B = 47;
  short s = 0xff;
  int i = 999;
  long l = 1;
  float f = 3.14f;
  double d = 3.14159;
  //. . .


亦可用相同的方法初始化非基本(主)類型的對象。若Depth是一個類,那麼可象下面這樣插入一個變量並進行初始化:

class Measurement {
Depth o = new Depth();
boolean b = true;
// . . .

若尚未為o指定一個初始值,同時不顧一切地提前試用它,就會得到一條運行期錯誤提示,告訴你產生了名為“違例”(Exception)的一個錯誤(在第9章詳述)。
甚至可通過調用一個方法來提供初始值:

class CInit {
int i = f();
//...
}

當然,這個方法亦可使用自變量,但那些自變量不可是尚未初始化的其他類成員。因此,下面這樣做是合法的:

class CInit {
int i = f();
int j = g(i);
//...
}

但下面這樣做是非法的:

class CInit {
int j = g(i);
int i = f();
//...
}

這正是編譯器對“向前引用”感到不適應的一個地方,因為它與初始化的順序有關,而不是與程序的編譯方式有關。
這種初始化方法非常簡單和直觀。它的一個限制是類型Measurement的每個對象都會獲得相同的初始化值。有時,這正是我們希望的結果,但有時卻需要盼望更大的靈活性。

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