Java入門 第五節(類與物件下)

2021-08-19 21:01:19 字數 1867 閱讀 5632

直接在類中宣告的變數叫成員變數(又稱全域性變數)

如果未對成員變數設定初始值,則系統會根據成員變數的型別自動分配初始值:int分配初始值0、boolean分配初始值false,而自定義型別則分配初始值null。

成員變數定義後,其作用域是其所在的整個類。

成員變數的定義沒有先後順序,但是最好將成員變數的定義集中在類的頂部。

方法中的引數、方法中定義的變數和**塊中定義的變數統稱為區域性變數。

區域性變數的作用域範圍從定義的位置開始到其所在語句塊結束。

如果區域性變數的名字與全域性變數的名字相同,則全域性變數被隱藏,即這個全域性變數在同名區域性變數所在方法內暫時失效。

如果在區域性變數的作用域範圍內訪問該成員變數,則必須使用關鍵字this來引用成員變數。

區域性變數在使用以前必須顯式初始化或賦值,區域性變數沒有預設值。

宣告區域性變數時,資料型別前除final外不允許有其他關鍵字,即其定義格式為: [final] 資料型別 變數名 = 初始值;

對於static關鍵字,最主要的是把握以下幾點:

總的要把握:用static修飾的成員變數、**塊、方法在類載入的時候執行,沒有用static修飾的成員變數、**塊、方法在建立物件的時候執行。而類載入發生在前,此時還沒有建立物件,所以靜態無法直接呼叫非靜態。例如:

(1)、靜態方法不能直接呼叫非靜態方法,可以間接通過建立該方法(指非靜態方法)所在類的物件來呼叫;非靜態方法可以直接呼叫靜態方法;

(2)、靜態**塊不能直接呼叫非靜態方法;可以間接通過建立該方法(指非靜態方法)所在類的物件來呼叫;靜態**塊可以直接呼叫靜態方法;

(3)、靜態方法或者靜態**塊不能直接使用非靜態成員變數,可以間接通過建立該成員變數的物件來呼叫;靜態方法或者靜態**塊只能直接使用靜態變數;

看如下**:

public class teacher

}建立類時,如果沒有顯式定義構造方法,則該類會存在乙個預設的無參構造方法;

可以在類中宣告乙個或多個有參構造方法,但每個構造方法在引數個數或引數資料型別上要有所差別

this代表對當前物件的乙個引用,this實質是乙個帶詞,代指的就是它所屬的物件。

this關鍵字用於呼叫屬性、方法及本類中構造方法。下面是幾個例子:

用new建立並初始化物件步驟:

給物件的例項變數(非「常量」)分配記憶體空間,預設初始化成員變數;

成員變數宣告時的初始化;

初始化塊初始化(又稱為構造**塊或非靜態**塊);

構造方法初始化

第五節 21型別化DataSet

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...

第五節(下) Struts2 校驗

一。說明 資料校驗,對客戶端訪問的引數進行資料校驗,如果請求資料型別無法轉換或不在合法範圍內都屬於資料校驗失敗。但在struts2中資料型別轉換和合法性的校驗分別放在兩個部分 執行。請求首先通過型別轉換 將引數賦值到action屬性,再通過資料校驗方法對action屬性進行合法性校驗。如果資料在型別...

Scala入門到精通 第五節 函式與閉包

一 函式字面量 值函式 二 匿名函式 三 函式的簡化 四 函式引數 四 閉包 函式字面量 function literal 也稱值函式 function values 指的是函式可以賦值給變數。一般函式具有如下形式 而函式字面量具有如下形式 函式字面量 function literal 左側的表示輸...