當類的成員變數沒有指定初始化值時,在例項化時會初始化乙個預設的值,而方法的區域性變數一定要進行初始化,否則編譯器會報錯。
初始化順序
靜態資料初始化
非靜態資料初始化
構造器初始化
當對多種初始化方式對同乙個變數進行了初始化,該變數的值會被覆蓋,例如乙個非靜態成員變數會首先被初始化為乙個預設值,當構造器再對其初始化時,就會覆蓋掉原來的預設值。
public
class maker
//①private
static string staticstr;
static
//③public
maker()
}
靜態**塊和靜態變數的初始化是一樣的,同樣優先順序的初始化會從上到下進行 。同時靜態資料的初始化也不是一開始就進行的,而是程式第一次要用到這個類時才進行。
陣列的初始化
int array = new
int[100];
for(int i=0;iinteger a =
//可以用來定義陣列,也可以作為引數傳遞
integer b = new integer
//eg
//f() 錯誤
f(new integer);//成功
初始化與清理的理解七
1 列舉型別 enum關鍵字,它使得我們在需要群組並使用列舉型別集時,可以很方便的處理。在此之前,你需要建立乙個整型常量集,但是這些列舉值並不會必然的將其自身的取值限制在這個常量集的範圍之內,因此它們顯得更有風險,且更難以使用。由於列舉型別的例項是常量,因此按照命名慣例它們都用大寫字母表示 如果在乙...
初始化與清理的理解七
1 列舉型別 enum關鍵字,它使得我們在需要群組並使用列舉型別集時,可以很方便的處理。在此之前,你需要建立乙個整型常量集,但是這些列舉值並不會必然的將其自身的取值限制在這個常量集的範圍之內,因此它們顯得更有風險,且更難以使用。由於列舉型別的例項是常量,因此按照命名慣例它們都用大寫字母表示 如果在乙...
java 初始化和清理
區別過載方法可通過 1.引數不同 2.引數相同,順序不同 過載的引數是基本型別時,可提公升也可窄化轉換 char型略不同,公升至int型 package com.learn public class demo06 class dog public void bark float f,int x pu...